From 70b582aa5fefd80487e9398c24c01cf0b715f53b Mon Sep 17 00:00:00 2001 From: Patrick D Date: Thu, 23 Apr 2015 23:23:54 +0200 Subject: [PATCH 0001/3440] Added go-socket.io to we frameworks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 159893b294c..750b0cbaeee 100644 --- a/README.md +++ b/README.md @@ -695,6 +695,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API * [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's * [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go +* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. * [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. * [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants. From 3cf0fb296e354e0c8f4666317c2c0ab71395c302 Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Thu, 23 Apr 2015 20:40:06 -0300 Subject: [PATCH 0002/3440] fixed duplicate link #366 --- README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 750b0cbaeee..405073f4165 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,6 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno - [Twitter](#twitter) - [Websites](#websites) - [Tutorials](#tutorials) - - [Windows](#windows) ## Audio/Music @@ -126,7 +125,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. -* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on [termbox-go](https://github.com/nsf/termbox-go) and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). +* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). ## Configuration @@ -191,7 +190,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno ## Database Drivers -*Libraries for connecting and operating databases. (see [Testing](#testing) for mock drivers)* +*Libraries for connecting and operating databases. * Relational Databases * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql. @@ -352,14 +351,11 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [gologex](https://github.com/chzyer/gologex) - An golang log lib, supports tracking and level, wrap by standard log lib -* [hiprus](https://github.com/nubo/hiprus) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a channel in [Hipchat](https://hipchat.com). * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas writen in golang. -* [logrus](https://github.com/sirupsen/logrus) - Structured, pluggable logging 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/). * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. * [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. -* [slackrus](https://github.com/johntdyer/slackrus) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a channel in [Slack](https://slack.com). * [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/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program. From f7e8bda8301426717b822c05f5864bf37fb3935d Mon Sep 17 00:00:00 2001 From: Enrico Bianchi Date: Fri, 24 Apr 2015 14:47:39 +0200 Subject: [PATCH 0003/3440] Added ini library --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 405073f4165..4c8f590cddc 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files * [viper](https://github.com/spf13/viper) - Go configuration with fangs +* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files + ## CSS Preprocessors From 1f53453863a20596dfc10251452d3db686fd5efe Mon Sep 17 00:00:00 2001 From: Enrico Bianchi Date: Fri, 24 Apr 2015 14:58:57 +0200 Subject: [PATCH 0004/3440] Added Firebird RDMS SQL driver --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4c8f590cddc..454ae2c07bb 100644 --- a/README.md +++ b/README.md @@ -203,6 +203,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. + * [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go * NoSQL Databases * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. From e7b6082734dd95da520f3efe2bd78e0d0bd2c76c Mon Sep 17 00:00:00 2001 From: fzerorubigd Date: Fri, 24 Apr 2015 19:28:59 +0430 Subject: [PATCH 0005/3440] add go-couchdb --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 405073f4165..32947646fb8 100644 --- a/README.md +++ b/README.md @@ -206,6 +206,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. * [go-couchbase](https://github.com/couchbaselabs/go-couchbase) - Couchbase client in Go + * [go-couchdb](https://github.com/fjl/go-couchdb) - Yet another CouchDB HTTP API wrapper for Go * [gocql](http://gocql.github.io) - A 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 @@ -514,7 +515,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [cbor](https://github.com/2tvenom/cbor) - Golang library for working with cbor 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. + * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. * [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. * [mapstructure](https://github.com/mitchellh/mapstructure) - Go library for decoding generic map values into native Go structures. @@ -892,5 +893,3 @@ Where to discover new Go libraries. ## Windows * [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang - - From 0bd325181d6aa286bdb7132eb120280ea6d7bfb5 Mon Sep 17 00:00:00 2001 From: Enrico Bianchi Date: Sat, 25 Apr 2015 20:22:16 +0200 Subject: [PATCH 0006/3440] Ordered lists --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 454ae2c07bb..97f86f38202 100644 --- a/README.md +++ b/README.md @@ -136,9 +136,9 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. * [envconf](https://github.com/ian-kent/envconf) - Configuration from environment * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy +* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files * [viper](https://github.com/spf13/viper) - Go configuration with fangs -* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files ## CSS Preprocessors @@ -195,6 +195,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for connecting and operating databases. * Relational Databases + * [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 prototype in go language. @@ -203,7 +204,6 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. - * [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go * NoSQL Databases * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. From 287c46abbff4973d6376d9aead69a8154a14d42f Mon Sep 17 00:00:00 2001 From: Julien Feltesse Date: Sun, 26 Apr 2015 17:37:12 +0200 Subject: [PATCH 0007/3440] update the url of github projects that have moved --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index a0d75d270cf..3703e65c0a1 100644 --- a/README.md +++ b/README.md @@ -151,8 +151,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Generic data structures and algorithms for databases in Go.* * [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. -* [bloom](https://github.com/dataence/bloom) - Bloom filters implemented in Go. -* [encoding](https://github.com/dataence/encoding) - Integer Compression Libraries for Go. +* [bloom](https://github.com/surge/bloom) - Bloom filters implemented in Go. +* [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go * [trie](https://github.com/derekparker/trie) - Trie implementation in Go @@ -162,7 +162,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. * [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. * [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store. -* [forestdb](https://github.com/couchbaselabs/goforestdb) - Go bindings for ForestDB. +* [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. * [goleveldb](https://github.com/syndtr/goleveldb) - An 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. @@ -205,7 +205,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * NoSQL Databases * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. - * [go-couchbase](https://github.com/couchbaselabs/go-couchbase) - Couchbase client in Go + * [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 * [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra. * [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language. @@ -352,7 +352,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. -* [gologex](https://github.com/chzyer/gologex) - An golang log lib, supports tracking and level, wrap by standard log lib +* [gologex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas writen in golang. * [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. @@ -452,7 +452,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for using OpenGL in Go.* * [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL. Requires an external dependency GLEW. -* [glfw3](https://github.com/go-gl/glfw3) - Go bindings for GLFW 3. +* [glfw3](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. * [glow](https://github.com/go-gl/glow) - Go binding generator and bindings for OpenGL. * [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. @@ -566,7 +566,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [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 * [gomock](https://code.google.com/p/gomock/) - Mocking framework for the Go programming language. - * [mockhttp.go](https://github.com/tv42/mockhttp.go) - Mock object for Go http.ResponseWriter + * [mockhttp.go](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter * Fuzzing and delta-debugging/reducing/shrinking * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values @@ -631,7 +631,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. -* [go-debug](https://github.com/visionmedia/go-debug) - Conditional debug logging for Golang libraries & applications +* [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-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. @@ -678,7 +678,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for manipulating video.* -* [aac/h264](https://github.com/go-av/codec) - Golang aac/h264 encoder and decoder. +* [aac/h264](https://github.com/nareix/codec) - Golang aac/h264 encoder and decoder. * [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. @@ -814,7 +814,7 @@ Software written in Go. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. * [plubi](https://github.com/norwack/plubi) - A Golang Plugin Based IRC Bot. * [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. -* [Seaweed File System](https://github.com/chrislusf/weed-fs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. +* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) * [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. From 1c97968769aba12ceec789e7ae3210b2d6e55234 Mon Sep 17 00:00:00 2001 From: Julien Feltesse Date: Sun, 26 Apr 2015 23:17:09 +0200 Subject: [PATCH 0008/3440] update the name of the packages that have been renamed --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3703e65c0a1..585eb3f1d70 100644 --- a/README.md +++ b/README.md @@ -352,8 +352,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. -* [gologex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas writen in golang. +* [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib * [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. @@ -452,7 +452,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for using OpenGL in Go.* * [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL. Requires an external dependency GLEW. -* [glfw3](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. +* [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. * [glow](https://github.com/go-gl/glow) - Go binding generator and bindings for OpenGL. * [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. @@ -566,7 +566,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [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 * [gomock](https://code.google.com/p/gomock/) - Mocking framework for the Go programming language. - * [mockhttp.go](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter + * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter * Fuzzing and delta-debugging/reducing/shrinking * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values From afbf9db07e78f411695c6083547f6f245b5c32f7 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sun, 26 Apr 2015 14:26:40 -0700 Subject: [PATCH 0009/3440] Fix Markdown formatting issue. Fix missing closing * symbol. Issue pointed out in https://github.com/avelino/awesome-go/pull/373#issuecomment-96436497. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 585eb3f1d70..5bdff7f1fc5 100644 --- a/README.md +++ b/README.md @@ -190,7 +190,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno ## Database Drivers -*Libraries for connecting and operating databases. +*Libraries for connecting and operating databases.* * Relational Databases * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql. From 29df4ced4da854c137ac0a1ab661ddba29deea52 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sun, 26 Apr 2015 14:31:07 -0700 Subject: [PATCH 0010/3440] Update OpenGL section. The OpenGL repos have had an overhaul earlier this year. This update is to reflect the changes. Update descriptions of go-gl/gl and go-gl/glfw repos. Remove glow. It is an internal generator tool used to generate the go-gl/gl bindings; most users will not need to know about it unless they are interested in generating custom bindings or fixing issues. But in that case they can find out about glow from the go-gl/gl repository, since it's described in the README. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 5bdff7f1fc5..46d04079fd9 100644 --- a/README.md +++ b/README.md @@ -451,9 +451,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for using OpenGL in Go.* -* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL. Requires an external dependency GLEW. +* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). * [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. -* [glow](https://github.com/go-gl/glow) - Go binding generator and bindings for OpenGL. * [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. From e17c2d1589cc92b0e9477117f7e8ec54a021e79f Mon Sep 17 00:00:00 2001 From: Mario Kostelac Date: Mon, 27 Apr 2015 20:03:48 +0100 Subject: [PATCH 0011/3440] add logrus as a standalone lib --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2a43fa2776d..eb758d69baf 100644 --- a/README.md +++ b/README.md @@ -359,6 +359,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas writen in golang. * [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib +* [logrus](https://github.com/sebest/logrus) - a 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/). * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. From 63c4232dcc717e30e7418b1880e8a18a41abefb6 Mon Sep 17 00:00:00 2001 From: Mario Kostelac Date: Mon, 27 Apr 2015 20:17:47 +0100 Subject: [PATCH 0012/3440] fix link to original repo (instead of fork) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eb758d69baf..7e61ae9c253 100644 --- a/README.md +++ b/README.md @@ -359,7 +359,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas writen in golang. * [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib -* [logrus](https://github.com/sebest/logrus) - a structured logger for Go. +* [logrus](https://github.com/Sirupsen/logrus) - a 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/). * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. From 98bb4dc3927765a610f6e9fd3cb078ff7da93828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Aparicio?= Date: Wed, 29 Apr 2015 22:02:44 +0200 Subject: [PATCH 0013/3440] feat(images): add bimg and imaginary packages --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7e61ae9c253..c5efea0fa8c 100644 --- a/README.md +++ b/README.md @@ -347,7 +347,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. * [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes * [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. - +* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips +* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing ## Logging From 2bcf650e105c15a41655c72e83e8377000b41622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 30 Apr 2015 00:00:34 +0200 Subject: [PATCH 0014/3440] Add xurls to the text processing category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7e61ae9c253..67c4f357f3f 100644 --- a/README.md +++ b/README.md @@ -601,6 +601,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * Utility * [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. * [govalidator](https://github.com/asaskevich/govalidator) - package of string validators and sanitizers for Go lang. + * [xurls](https://github.com/mvdan/xurls) - Extract urls from text ## Third-party APIs From f0d8097301b6282ba448f5ef0c7086fc0cb4a881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Aparicio?= Date: Thu, 30 Apr 2015 11:02:22 +0200 Subject: [PATCH 0015/3440] fix(images): reorder alphabetically --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c5efea0fa8c..f8dcc963eda 100644 --- a/README.md +++ b/README.md @@ -332,6 +332,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for manipulating images.* +* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. * [gift](https://github.com/disintegration/gift) - Package of image processing filters. * [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. @@ -340,6 +341,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. * [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. +* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing * [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. * [img](https://github.com/hawx/img) - A selection of image manipulation tools. * [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go @@ -347,8 +349,6 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. * [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes * [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. -* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips -* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing ## Logging From b20693506d4fec397f7c76ba82b67b3692747926 Mon Sep 17 00:00:00 2001 From: Igor Anic Date: Thu, 30 Apr 2015 11:32:56 +0200 Subject: [PATCH 0016/3440] Adding gofreetds, MSSQL database driver. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7e61ae9c253..fdfc16776bd 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [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 prototype in go language. + * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. * [go-pgsql](https://github.com/lxn/go-pgsql) - A PostgreSQL client package for the Go Programming Language. * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. From 84d14c680461cf0bcb5ff2acd04abdacecaa6f64 Mon Sep 17 00:00:00 2001 From: Igor Anic Date: Thu, 30 Apr 2015 11:37:21 +0200 Subject: [PATCH 0017/3440] Reordering alphabetically --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fdfc16776bd..0a8f6290a42 100644 --- a/README.md +++ b/README.md @@ -202,11 +202,11 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [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 prototype in go language. - * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. * [go-pgsql](https://github.com/lxn/go-pgsql) - A PostgreSQL client package for the Go Programming Language. * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. + * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. * NoSQL Databases From 05d7b1c3da0ed12242eee01619419820747fca02 Mon Sep 17 00:00:00 2001 From: "Chayim I. Kirshen" Date: Fri, 1 May 2015 14:27:23 -0400 Subject: [PATCH 0018/3440] added gigo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 67590c3329f..d622990e486 100644 --- a/README.md +++ b/README.md @@ -482,6 +482,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for package and dependency management.* +* [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. * [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) - A simple dependency manager for Go (golang), inspired by Bundler. From c2dde06fc85c5e3ff79a4716cee6c6d3d03dbaf5 Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Sun, 3 May 2015 17:16:54 -0600 Subject: [PATCH 0019/3440] Add caddy, a web server At request of mholt/caddy#45 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d622990e486..3468d4ca7b3 100644 --- a/README.md +++ b/README.md @@ -534,6 +534,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno ## Server Applications * [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. * [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. * [nsq](http://nsq.io/) - A realtime distributed messaging platform From 56755b083952861bd491c2c6a90cbe23ef7e635e Mon Sep 17 00:00:00 2001 From: Patrick D Date: Tue, 5 May 2015 15:45:35 +0200 Subject: [PATCH 0020/3440] Added go-multierror to Miscellaneous go-multierror by hashicorp - put it to miscellaneous because the other categories don't fit for me --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 750b0cbaeee..af4f426a8c7 100644 --- a/README.md +++ b/README.md @@ -407,6 +407,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. From 9b9b8b83d514e12f6a51b47ea4b6df3091af090f Mon Sep 17 00:00:00 2001 From: Patrick D Date: Tue, 5 May 2015 17:36:00 +0200 Subject: [PATCH 0021/3440] added logutils to Logging category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af4f426a8c7..7bc163722e7 100644 --- a/README.md +++ b/README.md @@ -356,6 +356,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas writen in golang. * [logrus](https://github.com/sirupsen/logrus) - Structured, pluggable logging 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/). +* [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. * [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. From e9781f7e21562d67838dd070b9cb5026f5e850c8 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Tue, 5 May 2015 17:42:26 +0200 Subject: [PATCH 0022/3440] added mdns package to networking category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7bc163722e7..179113d8776 100644 --- a/README.md +++ b/README.md @@ -447,6 +447,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [gotcp](https://github.com/gansidui/gotcp) - A Go package for quickly writing tcp applications * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. * [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces +* [mdns](https://github.com/hashicorp/mdns) - Simple mDNS (Multicast DNS) client/server library in Golang * [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster From c0268167b160ec47c8d38681c9a2b087187d62ef Mon Sep 17 00:00:00 2001 From: Dariush Abbasi Date: Wed, 6 May 2015 00:08:43 +0430 Subject: [PATCH 0023/3440] Add gobooks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 111cceefcf4..7e00a8f067c 100644 --- a/README.md +++ b/README.md @@ -870,6 +870,7 @@ Where to discover new Go libraries. * [Build Web Application with Golang](http://astaxie.gitbooks.io/build-web-application-with-golang/) * [Building Web Apps With Go](http://codegangsta.gitbooks.io/building-web-apps-with-go/) * [Go Bootcamp](http://golangbootcamp.com) +* [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books * [Learning Go](http://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) * [Network Programming With Go](http://jan.newmarch.name/go/) From 1385fbf4eab6d78532d426eae8e3ae5286e7e93d Mon Sep 17 00:00:00 2001 From: Jonathon Klobucar Date: Wed, 6 May 2015 07:30:59 -0700 Subject: [PATCH 0024/3440] Add Apcera termtables project to CLI section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a46eb0bde9..27f7435d30b 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. +* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/visionmedia/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). From f839ae8ac7526b95cc1dab5f716b4fc6fe0e44a7 Mon Sep 17 00:00:00 2001 From: "Juan B. Rodriguez" Date: Wed, 6 May 2015 11:56:13 -0500 Subject: [PATCH 0025/3440] Add pubsub --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 27f7435d30b..cd82a1f2426 100644 --- a/README.md +++ b/README.md @@ -405,6 +405,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. * [NATS](https://github.com/apcera/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. * [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs +* [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. * [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. * [Uniqush-Push](https://github.com/uniqush/uniqush-push) - A redis backed unified push service for server-side notifications to mobile devices. * [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). From a5a02ca3de0bd7e2c6bbba04c0ef19b0a534285f Mon Sep 17 00:00:00 2001 From: "Juan B. Rodriguez" Date: Wed, 6 May 2015 12:38:27 -0500 Subject: [PATCH 0026/3440] Add go-tmdb --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 27f7435d30b..154e9330105 100644 --- a/README.md +++ b/README.md @@ -636,6 +636,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [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 +* [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) ## Utilities From 380b30aaad2265ba41bd94bc91255e294f20fca0 Mon Sep 17 00:00:00 2001 From: Wei-Ting Kuo Date: Thu, 7 May 2015 21:08:46 +0800 Subject: [PATCH 0027/3440] Update README.rd Add a SASS compatible --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 27f7435d30b..70d160733aa 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for preprocessing CSS files* * [gcss](https://github.com/yosssi/gcss) - Pure Go CSS Preprocessor. +* [c6](https://github.com/c9s/c6) - High performance SASS compatible-implementation compiler written in Go ## Data Structures From 410ac469edd355f556c2860eb2d89ddd7905ea40 Mon Sep 17 00:00:00 2001 From: Wei-Ting Kuo Date: Fri, 8 May 2015 13:27:59 +0800 Subject: [PATCH 0028/3440] sorted by alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70d160733aa..a3ecf5e36f4 100644 --- a/README.md +++ b/README.md @@ -149,8 +149,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for preprocessing CSS files* -* [gcss](https://github.com/yosssi/gcss) - Pure Go CSS Preprocessor. * [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. ## Data Structures From 5618301faade073bbfad15a571394de68c60418a Mon Sep 17 00:00:00 2001 From: Mauricio Souza Lima Date: Fri, 8 May 2015 10:40:54 -0300 Subject: [PATCH 0029/3440] remove go-pgsql as its incomplete and not actively maintained --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 27f7435d30b..46c09d855d2 100644 --- a/README.md +++ b/README.md @@ -206,7 +206,6 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [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 prototype in go language. * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. - * [go-pgsql](https://github.com/lxn/go-pgsql) - A PostgreSQL client package for the Go Programming Language. * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). From 707edbefaa9297d8b086fcec0361a3b64600ce82 Mon Sep 17 00:00:00 2001 From: Ruben Vermeersch Date: Sat, 9 May 2015 22:23:47 +0200 Subject: [PATCH 0030/3440] Add sql-migrate --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52cc1a7f3a1..53a9b86790a 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. * [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., +* [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. * [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.* From 786c532ecb805ad28238db1c2173b131a5e83e6d Mon Sep 17 00:00:00 2001 From: Patrick D Date: Mon, 11 May 2015 08:15:59 +0200 Subject: [PATCH 0031/3440] Add cli by mitchellh --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 179113d8776..66b3b98f23c 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for building standard or basic Command Line applications* * [cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. +* [cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. * [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. From 39a0ba89844e02fa4b3977044b96a530e30a370d Mon Sep 17 00:00:00 2001 From: Alix Axel Date: Tue, 12 May 2015 10:14:15 +0200 Subject: [PATCH 0032/3440] added genex package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 53a9b86790a..7eafb2f6c98 100644 --- a/README.md +++ b/README.md @@ -614,6 +614,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. * [govalidator](https://github.com/asaskevich/govalidator) - package of string validators and sanitizers for Go lang. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text + * [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings ## Third-party APIs From d4e455a43b60cb0e6ad1dac24ffaec4000696750 Mon Sep 17 00:00:00 2001 From: Alix Axel Date: Tue, 12 May 2015 10:45:10 +0200 Subject: [PATCH 0033/3440] alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7eafb2f6c98..080076d23ff 100644 --- a/README.md +++ b/README.md @@ -599,6 +599,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [github_flavored_markdown](http://godoc.org/github.com/shurcooL/go/github_flavored_markdown) - GitHub Flavored Markdown renderer in Go. * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer * [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 * [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. @@ -614,7 +615,6 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. * [govalidator](https://github.com/asaskevich/govalidator) - package of string validators and sanitizers for Go lang. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text - * [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings ## Third-party APIs From 70b8425918c57830b045b16bf9d769d0c3f186db Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Tue, 12 May 2015 10:13:40 -0600 Subject: [PATCH 0034/3440] Add Security category and BadActor --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 080076d23ff..272028b3e30 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno - [Package Management](#package-management) - [Resource Embedding](#resource-embedding) - [Science and Data Analysis](#science-and-data-analysis) + - [Security](#security) - [Serialization](#serialization) - [Template Engines](#template-engines) - [Testing](#testing) @@ -526,6 +527,13 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [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) + +## Security + +*Libraries that are used to help make your application more secure.* + +* [BadActor](https://github.com/jaredfolkins/badactor) - An in-memory, application-driven jailer built in the spirit of fail2ban + ## Serialization *Libraries and tools for binary serialization* From a418caf94ae8bfa170960b27298f3d06ede27c63 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Tue, 12 May 2015 21:40:39 +0200 Subject: [PATCH 0035/3440] changed naming of same package names visit https://github.com/avelino/awesome-go/pull/392 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 66b3b98f23c..027c8c55641 100644 --- a/README.md +++ b/README.md @@ -112,8 +112,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for building standard or basic Command Line applications* -* [cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. -* [cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. +* [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. +* [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. * [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. From 4d83ff94d175cfabb9fa315628fec8691856dc5d Mon Sep 17 00:00:00 2001 From: Patrick D Date: Tue, 12 May 2015 22:57:24 +0200 Subject: [PATCH 0036/3440] corrected alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 027c8c55641..2328e19d84c 100644 --- a/README.md +++ b/README.md @@ -112,9 +112,9 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries for building standard or basic Command Line applications* +* [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. -* [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. ### Advanced Console UIs From 7e261a9c67f122ca16b81accad46490b324a20ea Mon Sep 17 00:00:00 2001 From: Karol Duleba Date: Tue, 12 May 2015 22:42:15 +0100 Subject: [PATCH 0037/3440] Add markbates/goth auth library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 080076d23ff..239ef607b38 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. +* [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. From 40e186c0159a5e94a2bdfb9b1eb636fd1dd3fec1 Mon Sep 17 00:00:00 2001 From: Alex Browne Date: Tue, 12 May 2015 20:02:02 -0400 Subject: [PATCH 0038/3440] Add albrow/zoom --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 080076d23ff..a6fefe953fc 100644 --- a/README.md +++ b/README.md @@ -484,6 +484,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. +* [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. ## Package Management From 2b0ddb000164acaad0ccf71634dadd4ad8736b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Depierrepont?= Date: Thu, 14 May 2015 11:05:05 +0200 Subject: [PATCH 0039/3440] add go-dkim --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c20a1b48677..0705a4569cb 100644 --- a/README.md +++ b/README.md @@ -256,6 +256,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno *Libraries that implement email creation and sending* * [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go. +* [go-dkim](https://github.com/toorop/go-dkim) - A DKIM library, to sign & verify email. * [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. * [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface * [smtp](https://github.com/mailhog/smtp) - SMTP server protocol state machine From 94f4d6391530180132e1b1d638be00c6c2029b0a Mon Sep 17 00:00:00 2001 From: "Juan B. Rodriguez" Date: Fri, 15 May 2015 06:50:40 -0500 Subject: [PATCH 0040/3440] Add mlog --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0705a4569cb..e77a416dc5c 100644 --- a/README.md +++ b/README.md @@ -373,6 +373,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. +* [mlog](https://github.com/jbrodriguez/mlog) - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. * [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. * [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/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program. From 4a1d52c9ceae10ff7b9f0a63b477df104b77c0e8 Mon Sep 17 00:00:00 2001 From: Simon Eskildsen Date: Sat, 16 May 2015 01:32:50 +0000 Subject: [PATCH 0041/3440] other-software: add toxiproxy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d160ec0931c..84695e3421a 100644 --- a/README.md +++ b/README.md @@ -852,6 +852,7 @@ Software written in Go. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) * [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. +* [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. * [websysd](http://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) From 7a56b4d23a7f5e0ff846cfe8cbad070500a9efc8 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Fri, 15 May 2015 23:09:56 -0700 Subject: [PATCH 0042/3440] Update import path of github_flavored_markdown package. It has moved out into a standalone repo. See shurcooL/go#19 for rationale. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 84695e3421a..f54da6f8a48 100644 --- a/README.md +++ b/README.md @@ -607,7 +607,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * Specific Formats * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go - * [github_flavored_markdown](http://godoc.org/github.com/shurcooL/go/github_flavored_markdown) - GitHub Flavored Markdown renderer in Go. + * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer * [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 From 5a682a0524a1a3b5400766a5542cbae30e24f14d Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Sat, 16 May 2015 12:02:08 -0700 Subject: [PATCH 0043/3440] Add gommon/gytes to the list Signed-off-by: Vishal Rana --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f54da6f8a48..486118fad41 100644 --- a/README.md +++ b/README.md @@ -619,6 +619,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [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) - A library for generating random strings from regular expressions. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. + * [gommon/gytes](https://github.com/labstack/gommon/tree/master/gytes) - Format bytes to string. * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. * [Slugify](https://github.com/avelino/slugify) - A Go slugify application that handles string. * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). From 7076e8199a6bed800584804fa1af77e16371d028 Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Sat, 16 May 2015 12:04:42 -0700 Subject: [PATCH 0044/3440] Updated Echo's description Signed-off-by: Vishal Rana --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 486118fad41..d50e5a5a950 100644 --- a/README.md +++ b/README.md @@ -721,7 +721,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. -* [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) + micro web framework in Go. +* [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. * [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. * [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API * [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's From 4119a1de8cbb6b7047a1dddcfebf032d5fa7c38b Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Sat, 16 May 2015 13:24:49 -0700 Subject: [PATCH 0045/3440] Fixed order for gommon/gytes Signed-off-by: Vishal Rana --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d50e5a5a950..77603881cce 100644 --- a/README.md +++ b/README.md @@ -616,10 +616,10 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. + * [gommon/gytes](https://github.com/labstack/gommon/tree/master/gytes) - Format bytes to string. * [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) - A library for generating random strings from regular expressions. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. - * [gommon/gytes](https://github.com/labstack/gommon/tree/master/gytes) - Format bytes to string. * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. * [Slugify](https://github.com/avelino/slugify) - A Go slugify application that handles string. * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). From 38a99fbf5debf02873fbda3d44161a17b86325e5 Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Sun, 17 May 2015 01:01:21 -0300 Subject: [PATCH 0046/3440] migrate channel to gophers slack --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f54da6f8a48..1f9374ccd16 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A curated list of awesome Go frameworks, libraries and software. Inspired by [aw Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! -Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freenode.net/?channels=awesome-go). +[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! #### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!* From c8f46a2ed242f092e1da6fcae60fb96b72d11288 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Sun, 17 May 2015 15:08:51 +0200 Subject: [PATCH 0047/3440] add godotenv by joho --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2328e19d84c..4e3b79bee20 100644 --- a/README.md +++ b/README.md @@ -641,6 +641,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. +* [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. * [gopencils](https://github.com/bndr/gopencils) - Small and simple package to easily consume REST APIs. From d424e0a2518429a96b554e4a6037a59240d72d79 Mon Sep 17 00:00:00 2001 From: Raul Ascencio Date: Sun, 17 May 2015 22:02:43 -0600 Subject: [PATCH 0048/3440] Add willf/bloom - bloom filters implementation. It's a little bit more popular than surge/bloom. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1f9374ccd16..a13a6307b9a 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,7 @@ 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/surge/bloom) - Bloom filters implemented in Go. +* [willf/bloom](https://github.com/willf/bloom) - Another implemenation of Bloom filters. * [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing From e106cde9742dec9e949637ac3ad1d3cf06e8acbe Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 18 May 2015 15:07:19 +1000 Subject: [PATCH 0049/3440] add gocb --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1f9374ccd16..16e990dafa1 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. * [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/couchbaselabs/gocb) - Official Couchbase Go SDK * [gocql](http://gocql.github.io) - A 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 From 910d5d66b32a7e1800f5b63ab9ecfd47b1f9b257 Mon Sep 17 00:00:00 2001 From: Raul Ascencio Date: Sun, 17 May 2015 23:49:49 -0600 Subject: [PATCH 0050/3440] Add ryszard/goskiplist. A better implementation of skiplist in go. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1f9374ccd16..3f3dec957c0 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go +* [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go * [trie](https://github.com/derekparker/trie) - Trie implementation in Go ## Database From 50b3f686c17eff103a30adc51d3f3223e7b987e3 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Mon, 18 May 2015 08:00:31 -0700 Subject: [PATCH 0051/3440] Replace own hardware section with go-hardware link. Resolves #409. --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e6fb1f94dff..aeb5ec17ef9 100644 --- a/README.md +++ b/README.md @@ -333,10 +333,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Hardware -*Libraries for interacting with hardware.* +*Libraries, tools, and tutorials for interacting with hardware.* -* [embd](https://github.com/kidoman/embd) - Embedded Programming Framework supporting Raspberry Pi, Beaglebone Black, etc. -* [gobot](https://github.com/hybridgroup/gobot) - Framework for robotics, physical computing, and the Internet of Things +See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive list. ## Images From 3fb74e4cecdf4bddf5822d41e4c8ba02c6bf444d Mon Sep 17 00:00:00 2001 From: Raul Ascencio Date: Mon, 18 May 2015 09:03:33 -0600 Subject: [PATCH 0052/3440] Fixed goskiplist position. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3f3dec957c0..d0772e87ec4 100644 --- a/README.md +++ b/README.md @@ -163,9 +163,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [bloom](https://github.com/surge/bloom) - Bloom filters implemented in Go. * [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. +* [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go -* [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go * [trie](https://github.com/derekparker/trie) - Trie implementation in Go ## Database From e275cdc3c7fac5779419928aa3a7ec547256e5a1 Mon Sep 17 00:00:00 2001 From: Raul Ascencio Date: Mon, 18 May 2015 09:07:58 -0600 Subject: [PATCH 0053/3440] updated position for willf/bloom repo. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a13a6307b9a..4768e07e811 100644 --- a/README.md +++ b/README.md @@ -161,12 +161,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/surge/bloom) - Bloom filters implemented in Go. -* [willf/bloom](https://github.com/willf/bloom) - Another implemenation of Bloom filters. * [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go * [trie](https://github.com/derekparker/trie) - Trie implementation in Go +* [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. ## Database From 66f1569fb8b964b6aac19a3519b137b653616e01 Mon Sep 17 00:00:00 2001 From: Joseph Naegele Date: Mon, 18 May 2015 14:42:01 -0400 Subject: [PATCH 0054/3440] add brewerydb under Third-party APIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6fb1f94dff..cc1b51ff96d 100644 --- a/README.md +++ b/README.md @@ -635,6 +635,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for accessing third party APIs.* * [aws-sdk-go](https://github.com/awslabs/aws-sdk-go) - The official AWS SDK for the Go programming language. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. +* [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. * [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. From f3510e8ed374d097114c9bd9f1bfce477fc7e438 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 19 May 2015 10:42:55 +1000 Subject: [PATCH 0055/3440] add couchcache --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6fb1f94dff..82435d574d4 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. * [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. +* [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server. * [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. From ba9b085e812af314b8807f19ea5f782a530d4872 Mon Sep 17 00:00:00 2001 From: Matteo Parmi Date: Wed, 20 May 2015 20:51:44 +0200 Subject: [PATCH 0056/3440] Adds boxed in Other Software --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e6fb1f94dff..bcf56dfa61c 100644 --- a/README.md +++ b/README.md @@ -833,7 +833,7 @@ Software written in Go. ### Other Software - +* [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine * [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 * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. From 2311e933eabb024f0ff899ba1b08e4ef72273462 Mon Sep 17 00:00:00 2001 From: James Polera Date: Wed, 20 May 2015 23:24:10 -0400 Subject: [PATCH 0057/3440] add gonameparts --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6fb1f94dff..b1259154ec5 100644 --- a/README.md +++ b/README.md @@ -618,6 +618,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. + * [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts * [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) - A library for generating random strings from regular expressions. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. From 3468d23112a167983f6815eb6a4ff496c5813a8b Mon Sep 17 00:00:00 2001 From: Allan Larangeiras Date: Thu, 21 May 2015 07:21:25 -0300 Subject: [PATCH 0058/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5782adcc864..e189644a7f2 100644 --- a/README.md +++ b/README.md @@ -613,6 +613,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer * [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 + * [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. * [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. From 64ddee3e017c9a73f0d4892f5ab11fb56537b7f0 Mon Sep 17 00:00:00 2001 From: Daniel Perez Date: Thu, 21 May 2015 20:45:29 +0900 Subject: [PATCH 0059/3440] Add structomap package to Serializer category. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5782adcc864..f07c11fe2b5 100644 --- a/README.md +++ b/README.md @@ -550,6 +550,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goprotobuf](https://github.com/golang/protobuf) - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. * [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 +* [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. ## Server Applications From cd5fea308a99c3a1b40a776da883ed4b7eca8958 Mon Sep 17 00:00:00 2001 From: Allan Larangeiras Date: Thu, 21 May 2015 08:56:47 -0300 Subject: [PATCH 0060/3440] Adding go-cron --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e189644a7f2..55844c89400 100644 --- a/README.md +++ b/README.md @@ -670,6 +670,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. +* [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. From 9f28dfe7cc264a0032e34cda744f237a9567099e Mon Sep 17 00:00:00 2001 From: James Polera Date: Thu, 21 May 2015 08:34:55 -0400 Subject: [PATCH 0061/3440] Added gonameparts --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5782adcc864..e1a7ea743a5 100644 --- a/README.md +++ b/README.md @@ -619,6 +619,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. * [gommon/gytes](https://github.com/labstack/gommon/tree/master/gytes) - Format bytes to string. + * [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts * [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) - A library for generating random strings from regular expressions. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. From 6f0c799b6b973000f63ed5810eec96d5b6251789 Mon Sep 17 00:00:00 2001 From: "H.G. Giorgis" Date: Fri, 22 May 2015 01:03:44 -0400 Subject: [PATCH 0062/3440] Add giorgisio/goav --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7de35b5fe96..e1632991347 100644 --- a/README.md +++ b/README.md @@ -721,6 +721,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [aac/h264](https://github.com/nareix/codec) - Golang aac/h264 encoder and decoder. * [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. +* [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. From d2816c46d60f3eb5beff932ea2512f9e18a9c1a0 Mon Sep 17 00:00:00 2001 From: Allan Larangeiras Date: Fri, 22 May 2015 10:57:03 -0300 Subject: [PATCH 0063/3440] Changing alphabetical order --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 55844c89400..a34c86ecbc1 100644 --- a/README.md +++ b/README.md @@ -613,7 +613,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer * [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 - * [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. * [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. @@ -623,6 +622,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A library for generating random strings from regular expressions. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. + * [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. * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. * [Slugify](https://github.com/avelino/slugify) - A Go slugify application that handles string. * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). @@ -667,10 +667,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. +* [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. -* [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. From 894b5c61c6029d03f8435303cc39d083e567bf0f Mon Sep 17 00:00:00 2001 From: Tim Cooper Date: Fri, 22 May 2015 13:08:49 -0300 Subject: [PATCH 0064/3440] add gopher-lua --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1632991347..fb500394888 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-lua](https://github.com/Shopify/go-lua) - A port of the Lua 5.2 VM to pure 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) - a Lua 5.1 VM and compiler written in Go * [otto](https://github.com/robertkrimen/otto) - A JavaScript interpreter written in Go * [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go From e60e737b67c9f6238cb9e1a7f0c9d003c9f8955d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Bohusl=C3=A1vek?= Date: Sat, 23 May 2015 14:32:24 +0200 Subject: [PATCH 0065/3440] add dupl --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb500394888..cfbe3f47e83 100644 --- a/README.md +++ b/README.md @@ -789,6 +789,7 @@ Go software and plugins. ## Code Analysis * [doc](http://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. +* [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. * [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. From ce87a6472658518b263e25f7acf1fe3aa328e751 Mon Sep 17 00:00:00 2001 From: Didip Kerabat Date: Sat, 23 May 2015 06:33:10 -0700 Subject: [PATCH 0066/3440] Add tollbooth to list of middlewares. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb500394888..0cda44f871a 100644 --- a/README.md +++ b/README.md @@ -769,6 +769,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API * [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST +* [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler * [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends #### Libraries for creating HTTP middlewares From 4657a117fd3fcc02bf040fb181b6c727b8d7133f Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sat, 23 May 2015 16:40:18 -0700 Subject: [PATCH 0067/3440] Add TARGA image format decoder/encoder package. There is no other tga encoder/decoder package in the awesome-go list, so I think it would be beneficial to add it. This is the only and best tga package I know of. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 476724d21ba..8a21e64168e 100644 --- a/README.md +++ b/README.md @@ -362,6 +362,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. * [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes * [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. +* [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. ## Logging From dc332efe7263aea039f6da248092c15ca0cf4f98 Mon Sep 17 00:00:00 2001 From: Seth Ammons Date: Sun, 24 May 2015 08:54:59 -0700 Subject: [PATCH 0068/3440] Update README.md Add SendGrid to list of email libraries. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a21e64168e..b5cc21fccd2 100644 --- a/README.md +++ b/README.md @@ -265,6 +265,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. * [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface * [smtp](https://github.com/mailhog/smtp) - SMTP server protocol state machine +* [SendGrid] (https://github.com/sendgrid/sendgrid-go) - SendGrid's Go library ## Embeddable Scripting Languages From 22f9494a11b6debc63a700999564a56f6a74742b Mon Sep 17 00:00:00 2001 From: Seth Ammons Date: Sun, 24 May 2015 08:57:16 -0700 Subject: [PATCH 0069/3440] Update README.md put in alpha order --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b5cc21fccd2..33d0e974b34 100644 --- a/README.md +++ b/README.md @@ -264,8 +264,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-dkim](https://github.com/toorop/go-dkim) - A DKIM library, to sign & verify email. * [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. * [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 -* [SendGrid] (https://github.com/sendgrid/sendgrid-go) - SendGrid's Go library + ## Embeddable Scripting Languages From 6fcec59a0aadc4b404e9d5a2babeb477a2f3b049 Mon Sep 17 00:00:00 2001 From: Asdine El Hrychy Date: Mon, 25 May 2015 14:10:17 +0200 Subject: [PATCH 0070/3440] add go-plus plugin for Atom --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 33d0e974b34..8e997ddbaf5 100644 --- a/README.md +++ b/README.md @@ -814,6 +814,7 @@ Go software and plugins. * [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. * [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. * [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. +* [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting ## Software Packages From 42b40a4b8fd499fe212e186c9660081e9deb269b Mon Sep 17 00:00:00 2001 From: Asdine El Hrychy Date: Mon, 25 May 2015 16:34:13 +0200 Subject: [PATCH 0071/3440] alphabetical --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8e997ddbaf5..cd635121463 100644 --- a/README.md +++ b/README.md @@ -808,13 +808,13 @@ Go software and plugins. ## Editor Plugins * [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. +* [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting * [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language * [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. * [velour](https://github.com/velour/velour) - An IRC client for the acme editor. * [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. * [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. * [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. -* [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting ## Software Packages From 0d3c53b84d5e3b0e5c412f90f3b9fa93bce56879 Mon Sep 17 00:00:00 2001 From: miolini Date: Mon, 25 May 2015 20:43:45 +0300 Subject: [PATCH 0072/3440] Add link to Jsonf: Console tool for highlighted formatting and struct query fetching JSON. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 33d0e974b34..bb89f80576d 100644 --- a/README.md +++ b/README.md @@ -688,6 +688,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. +* [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. * [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. From 1d114aabf0be27ad378b67d6d43766a5ace7de9f Mon Sep 17 00:00:00 2001 From: Seth Ammons Date: Mon, 25 May 2015 13:29:34 -0700 Subject: [PATCH 0073/3440] Update README.md add pestor for http client calls (retries, backoff, and concurrency) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd635121463..2c09b69a6f0 100644 --- a/README.md +++ b/README.md @@ -694,6 +694,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ngrok](https://github.com/inconshreveable/ngrok) - Introspected tunnels to localhost. * [okrun](https://github.com/xta/okrun) - go run error steamroller * [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 * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. From f7d28f93b15775518f5e2dd19decf3905f460c37 Mon Sep 17 00:00:00 2001 From: Geert-Johan Riemer Date: Tue, 26 May 2015 14:03:26 +0200 Subject: [PATCH 0074/3440] Add go-flags --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c09b69a6f0..ac1058ff154 100644 --- a/README.md +++ b/README.md @@ -431,6 +431,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. From 6e64446521ad2388e5271c65d4de7702098760c1 Mon Sep 17 00:00:00 2001 From: Geert-Johan Riemer Date: Tue, 26 May 2015 14:05:26 +0200 Subject: [PATCH 0075/3440] Add yubigo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c09b69a6f0..30798d6da35 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. +* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. ## Command Line From f9c2217322d5dc57fd3411a5e8bde6658951d586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joonathan=20M=C3=A4gi?= Date: Tue, 26 May 2015 16:05:14 +0300 Subject: [PATCH 0076/3440] Added GCache --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c09b69a6f0..297c83eeabb 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server. * [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. +* [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. * [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. * [goleveldb](https://github.com/syndtr/goleveldb) - An 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. From 54d0ec772db3723372cee9930a85f6fbb8c60b50 Mon Sep 17 00:00:00 2001 From: Shlomi Noach Date: Thu, 28 May 2015 09:59:14 +0200 Subject: [PATCH 0077/3440] Added orchestrator under "database tools" section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 297c83eeabb..73c614a4f58 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,7 @@ 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. * [goose](https://bitbucket.org/liamstask/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. +* [orchestrator](https://github.com/outbrain/orchestrator) - MySQL replication topology manager & visualizer * [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., * [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. From 1854288eaa79e8ce4c478c0ca8e23a2d770a9d1a Mon Sep 17 00:00:00 2001 From: eau Date: Thu, 28 May 2015 17:42:38 +0200 Subject: [PATCH 0078/3440] added 2 packages --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 297c83eeabb..719677bc751 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. +* [peterh/liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. ### Advanced Console UIs @@ -863,6 +864,7 @@ Software written in Go. * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine * [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. +* [naclpipe](http://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. From ed35a7617fe9f05bb2454b063ba1c3d9dcf983db Mon Sep 17 00:00:00 2001 From: Diego Bernardes de Sousa Pinto Date: Thu, 28 May 2015 16:44:32 -0300 Subject: [PATCH 0079/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 83b32f1530a..e9e1261ab94 100644 --- a/README.md +++ b/README.md @@ -169,6 +169,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing * [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) - An in-memory LRU string-interface{} map with expiration for golang * [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. ## Database From 8bc9eed3783762f27fd50478450ba7c8eb992ba2 Mon Sep 17 00:00:00 2001 From: Henrique Menezes Date: Fri, 29 May 2015 22:31:48 -0300 Subject: [PATCH 0080/3440] Add go-xkg/xkg --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 83b32f1530a..a53d6f03558 100644 --- a/README.md +++ b/README.md @@ -440,6 +440,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber * [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. ## Natural Language Processing From 0eac71deccaa416ddc0449e3ce740e9d62b3c911 Mon Sep 17 00:00:00 2001 From: Nithin Meppurathu Date: Mon, 1 Jun 2015 09:54:32 -0400 Subject: [PATCH 0081/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a53d6f03558..5d93c973868 100644 --- a/README.md +++ b/README.md @@ -672,6 +672,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) +* [Google Analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting ## Utilities From 35143f5f142f2a498a42629d648e571feddf9f62 Mon Sep 17 00:00:00 2001 From: Preetam Jinka Date: Wed, 3 Jun 2015 09:52:17 -0400 Subject: [PATCH 0082/3440] Add a few of VividCortex's projects --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a53d6f03558..0799404ba3e 100644 --- a/README.md +++ b/README.md @@ -515,6 +515,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goop](https://github.com/nitrous-io/goop) - A simple dependency manager for Go (golang), inspired by Bundler. * [gopm](https://github.com/gpmgo/gopm) - Go Package Manager * [gpm](https://github.com/pote/gpm) - Barebones dependency manager for Go. +* [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 @@ -531,12 +532,14 @@ 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) +* [ewma](https://github.com/VividCortex/ewma) - Exponentially-weighted moving averages * [geom](https://github.com/skelterjohn/geom) - 2D geometry for golang * [go-fn](https://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg * [go-gt](https://code.google.com/p/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://code.google.com/p/gocomplex/) - A complex number library for the Go programming language. * [gofrac](https://github.com/anschelsc/gofrac) - A (goinstallable) fractions library for go with support for basic arithmetic. +* [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) - A pure Go graph theory library(data structure, algorith visualization) @@ -685,6 +688,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. +* [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons * [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. @@ -697,13 +701,16 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. +* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers * [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 * [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 +* [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. +* [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [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 @@ -766,6 +773,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. * [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. * [ServeMux](http://servemux.com) - Idiomatic Go http.Handler framework. +* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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. @@ -952,9 +960,9 @@ Where to discover new Go libraries. * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go * [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs +* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql * [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers - ## Windows * [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang From 63eb0ab12841c4e6cdbdbb673a466fe09b978d2f Mon Sep 17 00:00:00 2001 From: Preetam Jinka Date: Wed, 3 Jun 2015 09:53:52 -0400 Subject: [PATCH 0083/3440] Fix newline removal --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0799404ba3e..be9e5619283 100644 --- a/README.md +++ b/README.md @@ -963,6 +963,7 @@ Where to discover new Go libraries. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql * [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers + ## Windows * [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang From fb5cac2a939407f0d722a7711ebdf735616d4144 Mon Sep 17 00:00:00 2001 From: Duke Date: Wed, 3 Jun 2015 11:28:06 -0300 Subject: [PATCH 0084/3440] Fix liner package in #433 was add liner package with ower as namespace, the namespace in cli libraries was add because there are two library with the same name in the same section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a53d6f03558..27c238f9355 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. -* [peterh/liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. +* [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. ### Advanced Console UIs From 35ad8a71fb0e05a9db3235d102e1381fe2189ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matti=20M=C3=A5rds?= Date: Wed, 3 Jun 2015 21:46:30 +0200 Subject: [PATCH 0085/3440] AWS SDK is moved from awslabs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27c238f9355..91c2e28fe1e 100644 --- a/README.md +++ b/README.md @@ -650,7 +650,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for accessing third party APIs.* -* [aws-sdk-go](https://github.com/awslabs/aws-sdk-go) - The official AWS SDK for the Go programming language. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. +* [aws-sdk-go](https://github.com/aws/aws-sdk-go) - The official AWS SDK for the Go programming language. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. * [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. From 05a13a9d60ee5db144530bc1d7bfe567de15dd4a Mon Sep 17 00:00:00 2001 From: Duke Date: Wed, 3 Jun 2015 20:18:13 -0300 Subject: [PATCH 0086/3440] Fix alphabetical order caused by #e9ef5d6 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 91c2e28fe1e..17b6ec328c1 100644 --- a/README.md +++ b/README.md @@ -119,8 +119,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. -* [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. +* [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. ### Advanced Console UIs From fdb01200baca05adde81a34ef0333b885669ca0c Mon Sep 17 00:00:00 2001 From: Nithin Meppurathu Date: Thu, 4 Jun 2015 20:24:56 -0400 Subject: [PATCH 0087/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5d93c973868..692c37f26f3 100644 --- a/README.md +++ b/README.md @@ -659,6 +659,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go +* [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. * [hipchat](https://github.com/andybons/hipchat) - This project implements a golang client library for the Hipchat API. @@ -672,7 +673,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) -* [Google Analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting ## Utilities From c244caf76a0146847c44f70e75df637b65c609fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Friedrich=20Gro=C3=9Fe?= Date: Sat, 6 Jun 2015 10:22:13 +0200 Subject: [PATCH 0088/3440] Add kingpin to Standard CLI section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9e92dfd935d..0972faf30b3 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. +* [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. From 17de54725d767108109f035bcff180f15ec9b4e0 Mon Sep 17 00:00:00 2001 From: Roland Singer Date: Sun, 7 Jun 2015 13:49:55 +0300 Subject: [PATCH 0089/3440] added glue socket library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9e92dfd935d..d0180344f8f 100644 --- a/README.md +++ b/README.md @@ -746,6 +746,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. * [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. * [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. +* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) * [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API * [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's * [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go From 392aaac2a913dd618c4f644a371cd5036526a583 Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Wed, 10 Jun 2015 17:47:40 -0600 Subject: [PATCH 0090/3440] Remove go-porterstemmer Library is not actively maintained --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9e92dfd935d..d41704348b3 100644 --- a/README.md +++ b/README.md @@ -449,7 +449,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-eco](https://code.google.com/p/go-eco/) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. -* [go-porterstemmer](https://github.com/reiver/go-porterstemmer) - A native Go clean room implementation of the Porter Stemming algorithm. * [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming 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 From cdc8810cbe7f769d6aa8eceafac3e1dee29c190c Mon Sep 17 00:00:00 2001 From: James O'Gorman Date: Sun, 14 Jun 2015 15:41:14 +0100 Subject: [PATCH 0091/3440] Add cobra to Command Line. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d41704348b3..2113053cf5e 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications* * [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. +* [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. From 018591aaa365036c1437c265b734b0a4cfa156ab Mon Sep 17 00:00:00 2001 From: Aymerick Date: Tue, 16 Jun 2015 14:24:12 +0200 Subject: [PATCH 0092/3440] Adds raymond, a complete handlebars implementation in Go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2113053cf5e..f1bb85a91ca 100644 --- a/README.md +++ b/README.md @@ -586,6 +586,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. * [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. * [Razor](https://github.com/sipin/gorazor) - Razor view engine for Golang. +* [raymond](https://github.com/aymerick/raymond) - A complete handlebars implementation in Go. * [Soy](https://github.com/robfig/soy) - Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/) From 1dec285f2920e63408126c3ed843cd3d20c80bf5 Mon Sep 17 00:00:00 2001 From: Aymerick Date: Tue, 16 Jun 2015 14:27:33 +0200 Subject: [PATCH 0093/3440] Adds douceur, a CSS inliner for your HTML emails --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2113053cf5e..0a0fd405894 100644 --- a/README.md +++ b/README.md @@ -265,6 +265,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries that implement email creation and sending* +* [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) - A DKIM library, to sign & verify email. * [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. From 0085f2fe9bf823a0436dc6791ebb4f11c113cdba Mon Sep 17 00:00:00 2001 From: Aymerick Date: Tue, 16 Jun 2015 17:43:49 +0200 Subject: [PATCH 0094/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f1bb85a91ca..38c2330ef1c 100644 --- a/README.md +++ b/README.md @@ -585,8 +585,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. * [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. * [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. -* [Razor](https://github.com/sipin/gorazor) - Razor view engine for Golang. * [raymond](https://github.com/aymerick/raymond) - A 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/) From aec05c98db6fbdf95a851a945e673340b1f62b9b Mon Sep 17 00:00:00 2001 From: Ulrich Kautz Date: Wed, 17 Jun 2015 09:41:26 +0200 Subject: [PATCH 0095/3440] Added another CLI library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3c69e04e46d..2a46c88edcd 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. +* [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. ### Advanced Console UIs From 8626c39e1fa48e4ddd98f746b724b173600615a9 Mon Sep 17 00:00:00 2001 From: David Hernandez Date: Thu, 18 Jun 2015 12:21:29 +0100 Subject: [PATCH 0096/3440] Added GolangUK conference --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2a46c88edcd..3df5814c431 100644 --- a/README.md +++ b/README.md @@ -927,6 +927,7 @@ Where to discover new Go libraries. ## Conferences * [dotGo](http://www.dotgo.io) +* [GolangUK](http://www.golanguk.com/) * [GopherCon](http://www.gophercon.com/) * [GopherCon India](http://www.gophercon.in/) From 3bdfccd16d0634a47b98836cb47fd1de5907fb31 Mon Sep 17 00:00:00 2001 From: Ben Bailey Date: Sat, 20 Jun 2015 17:46:39 -0500 Subject: [PATCH 0097/3440] fix some markdown link spacing issues --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3df5814c431..83cec8d9a04 100644 --- a/README.md +++ b/README.md @@ -273,7 +273,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-dkim](https://github.com/toorop/go-dkim) - A DKIM library, to sign & verify email. * [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. * [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 +* [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 @@ -881,8 +881,8 @@ Software written in Go. * [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. * [fleet](https://github.com/coreos/fleet) - A Distributed init System. * [gocc](https://code.google.com/p/gocc) - Gocc is a compiler kit for Go written in Go. -* [Gor] (https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. -* [heka] (https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. +* [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. +* [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine * [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. From 69fe5dfb9c666883c8eb0ea4935a7db42d9ca2f6 Mon Sep 17 00:00:00 2001 From: Ben Bailey Date: Sat, 20 Jun 2015 18:07:11 -0500 Subject: [PATCH 0098/3440] update gomock link to github --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3df5814c431..91148a00033 100644 --- a/README.md +++ b/README.md @@ -617,7 +617,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * 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 - * [gomock](https://code.google.com/p/gomock/) - Mocking framework for the Go programming language. + * [gomock](https://github.com/golang/mock) - Mocking framework for the Go programming language. * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter * Fuzzing and delta-debugging/reducing/shrinking From 3ea17e8ca6ca45c4176d6de36facb2e7d4f5ae21 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sat, 20 Jun 2015 17:34:10 -0700 Subject: [PATCH 0099/3440] Add more cross-platform wrappers for OpenGL and GLFW. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 651d968fd04..53213f099fa 100644 --- a/README.md +++ b/README.md @@ -491,6 +491,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). * [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. +* [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). +* [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. * [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. From 87924077d8d99c328766f9466b73607f98f57aaf Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sat, 20 Jun 2015 17:41:27 -0700 Subject: [PATCH 0100/3440] Add Go Package Store, an app that displays updates for the Go packages in your GOPATH. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 651d968fd04..19056b3b3bc 100644 --- a/README.md +++ b/README.md @@ -880,6 +880,7 @@ Software written in Go. * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. * [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. * [fleet](https://github.com/coreos/fleet) - A Distributed init System. +* [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. * [gocc](https://code.google.com/p/gocc) - Gocc is a compiler kit for Go written in Go. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. From 0381454d19cc5642482b6527829e903b04123a62 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sat, 20 Jun 2015 17:45:00 -0700 Subject: [PATCH 0101/3440] Add gostatus command line tool, shows the status of repositories that contain Go packages. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 651d968fd04..25a6467d810 100644 --- a/README.md +++ b/README.md @@ -827,6 +827,7 @@ Go software and plugins. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. +* [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 84ee5088fe6c4ea0e571cd383a2ace54fedfccd5 Mon Sep 17 00:00:00 2001 From: jimzhan Date: Sun, 21 Jun 2015 16:55:57 +0800 Subject: [PATCH 0102/3440] add rex framework --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ad7f95b7ec0..7bd03ad0e85 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. -* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. +* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. ## Command Line @@ -782,6 +782,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. * [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. * [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. +* [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. * [ServeMux](http://servemux.com) - Idiomatic Go http.Handler framework. * [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers From cc2706ee0e7fb53cfed49c9204a8074b8b0e5572 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Sun, 21 Jun 2015 21:25:56 +0200 Subject: [PATCH 0103/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad7f95b7ec0..f4d3ed597cd 100644 --- a/README.md +++ b/README.md @@ -623,6 +623,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A randomized testing system * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values * [gogenerate](https://github.com/arschles/gogenerate) - A Scalacheck-like library for Go * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework From 47fd1d239d6ddb3359695b4895faab50130abc91 Mon Sep 17 00:00:00 2001 From: variadico Date: Mon, 22 Jun 2015 01:01:02 -0700 Subject: [PATCH 0104/3440] add scaneo --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f4d3ed597cd..89b8388dbc6 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. -* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. +* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. ## Command Line @@ -209,6 +209,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - An idiomatic SQL builder and query library. +* [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [Squirrel](https://github.com/lann/squirrel) - Go library that helps you build SQL queries. From 17382912c187aefcf8574c990e2bfeb425cd7e48 Mon Sep 17 00:00:00 2001 From: arran ubels Date: Tue, 23 Jun 2015 16:28:23 +1000 Subject: [PATCH 0105/3440] Added vdobber's chart --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89b8388dbc6..108975535b2 100644 --- a/README.md +++ b/README.md @@ -539,6 +539,7 @@ 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) +* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. * [ewma](https://github.com/VividCortex/ewma) - Exponentially-weighted moving averages * [geom](https://github.com/skelterjohn/geom) - 2D geometry for golang * [go-fn](https://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg From 32cfc65bf7145275c213d662cb1458a6196554a1 Mon Sep 17 00:00:00 2001 From: Dalton Hubble Date: Tue, 23 Jun 2015 00:13:06 -0700 Subject: [PATCH 0106/3440] Add sling package to utilities --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89b8388dbc6..aad782cfd91 100644 --- a/README.md +++ b/README.md @@ -724,6 +724,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. +* [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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 * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. From 054e0de169e8f08fe4bd9f8617b40c2f9fd79c9e Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Tue, 23 Jun 2015 00:39:49 -0700 Subject: [PATCH 0107/3440] Add vfsgen, generates a vfsdata.go file that statically implements the given virtual filesystem. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89b8388dbc6..67ec6a4f879 100644 --- a/README.md +++ b/README.md @@ -532,6 +532,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. * [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. +* [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. ## Science and Data Analysis From 6135073e457038fd8b630ca37fddc7e139f301d1 Mon Sep 17 00:00:00 2001 From: gedi Date: Wed, 24 Jun 2015 14:39:16 +0300 Subject: [PATCH 0108/3440] new bdd testing framework reference --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index df82df2e20a..52e250fa165 100644 --- a/README.md +++ b/README.md @@ -540,7 +540,7 @@ 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) -* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. +* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. * [ewma](https://github.com/VividCortex/ewma) - Exponentially-weighted moving averages * [geom](https://github.com/skelterjohn/geom) - 2D geometry for golang * [go-fn](https://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg @@ -613,6 +613,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go * [gocheck](http://labix.org/gocheck) - A more advanced testing framework alternative to gotest. * [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. * [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. * [Hamcrest](https://github.com/rdrdr/hamcrest) - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. From e53de146700128feceeb162b282d13c6aae572d6 Mon Sep 17 00:00:00 2001 From: Rohith Date: Fri, 26 Jun 2015 12:22:45 +0100 Subject: [PATCH 0109/3440] - adding a link to the go api library for interacting with mesosphere's marathon paas --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52e250fa165..ad437ff4cf7 100644 --- a/README.md +++ b/README.md @@ -672,6 +672,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. * [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. * [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. +* [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go From 60362a3ce5cb75a2140b426ee5baf66517387140 Mon Sep 17 00:00:00 2001 From: Christoffer Hallas Date: Sun, 28 Jun 2015 10:31:58 +0200 Subject: [PATCH 0110/3440] Removes ServeMux from list of frameworks Fixes #465 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 882f49d0b8a..cfd7e356a3e 100644 --- a/README.md +++ b/README.md @@ -791,7 +791,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. -* [ServeMux](http://servemux.com) - Idiomatic Go http.Handler framework. * [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A Go framework for building JSON web services inspired by Dropwizard From a526a4994aab79122dbd50565725f05fc233cfc7 Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Sun, 28 Jun 2015 07:52:31 -0600 Subject: [PATCH 0111/3440] Submit a PR rather than an issue (closes #467) --- CONTRIBUTING.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3cd700b9898..803de68894d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,8 +5,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno # Contribution Guidelines -- **To add to the list:** Submit a pull request -- **To remove from the list:** Open an issue +- **To add, remove, or change things on the list:** Submit a pull request To set this list apart from and compliment the excellent [Go wiki Projects page](https://golang.org/wiki/Projects), awesome-go is a specially curated list for high-quality, actively maintained Go packages and resources. @@ -33,4 +32,4 @@ To stay on the list, package repositories should adhere to these quality standar ## Reporting issues -Please open an issue if you find anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, please let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental -- again, just open an issue. Thanks everyone! +Please open an issue if you would like ot discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to make the change or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. Thanks everyone! From 09d48700892889d684bc1fec1e41ecbb584cd911 Mon Sep 17 00:00:00 2001 From: Hilko Bengen Date: Sun, 21 Jun 2015 11:35:45 +0200 Subject: [PATCH 0112/3440] Add go-yara --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad7f95b7ec0..0b7a1f8bde5 100644 --- a/README.md +++ b/README.md @@ -560,6 +560,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that are used to help make your application more secure.* * [BadActor](https://github.com/jaredfolkins/badactor) - An 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)" ## Serialization From 82af26969b115ec8ee83ee0e853d7e7e5179c426 Mon Sep 17 00:00:00 2001 From: Andrii Bubis Date: Mon, 29 Jun 2015 11:39:57 -0700 Subject: [PATCH 0113/3440] Typo fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d43ada8662..aaf9c14fb54 100644 --- a/README.md +++ b/README.md @@ -384,7 +384,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. -* [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas writen in golang. +* [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. * [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib * [logrus](https://github.com/Sirupsen/logrus) - a 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/). From c5a2311f6a889dd7b6ff7f15348a0a5ac913208c Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Tue, 30 Jun 2015 22:08:02 +0300 Subject: [PATCH 0114/3440] Added gorpc to distributed systems --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aaf9c14fb54..8f941968232 100644 --- a/README.md +++ b/README.md @@ -262,6 +262,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* * [goraft](https://github.com/goraft/raft) - A Go implementation of the Raft distributed consensus protocol. +* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. From aa85013fa7ff7240c832ca6a8263091e3bdbec79 Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Sat, 4 Jul 2015 19:34:59 -0600 Subject: [PATCH 0115/3440] Clarifications to quality standards --- CONTRIBUTING.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 803de68894d..4fad5d05c68 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,16 +20,18 @@ Please contribute links to packages/projects you have used or are familiar with. ## Quality standard -To stay on the list, package repositories should adhere to these quality standards: +To be on the list, project repositories should adhere to these quality standards: -- Generally useful to the community -- Functional -- Actively maintained (even if that just means acknowledging open issues when they arise) -- Stable, or progressing toward stable -- Documented (preferably godoc.org) -- Tests are preferred (when possible) +- Working +- Generally useful to the wider community of Go programmers +- Actively maintained + - Regular, recent commits + - For finished projects, issues and pull requests are responded to +- Stableor progressing toward stable +- Thoroughly documented (README, godoc comments, etc.) +- Tests, where practical ## Reporting issues -Please open an issue if you would like ot discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to make the change or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. Thanks everyone! +Please open an issue if you would like ot discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. Thanks everyone! From 11e77b98ed6311ae54e9f4a12af793f6f3caa6db Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Sat, 4 Jul 2015 19:38:21 -0600 Subject: [PATCH 0116/3440] Update CONTRIBUTING.md --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4fad5d05c68..5c13b702577 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,12 +22,12 @@ Please contribute links to packages/projects you have used or are familiar with. To be on the list, project repositories should adhere to these quality standards: -- Working +- Code is functional - Generally useful to the wider community of Go programmers - Actively maintained - Regular, recent commits - - For finished projects, issues and pull requests are responded to -- Stableor progressing toward stable + - Or, for finished projects, issues and pull requests are responded to +- Stable or progressing toward stable - Thoroughly documented (README, godoc comments, etc.) - Tests, where practical From 094ef7c0b9b7285580ab740b6a027bc40724f3ee Mon Sep 17 00:00:00 2001 From: mrsinham Date: Sun, 5 Jul 2015 13:08:14 +0200 Subject: [PATCH 0117/3440] Third-party APIs - Google Adwords Unofficial API --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8f941968232..fa0d9f63dfb 100644 --- a/README.md +++ b/README.md @@ -678,6 +678,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go +* [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. From 727004f8c225176fe5d13ed947a078d0bf66245d Mon Sep 17 00:00:00 2001 From: Andy Grunwald Date: Sun, 5 Jul 2015 17:48:02 +0200 Subject: [PATCH 0118/3440] Add "go-trending" - Go library for accessing trending repositories and developers at Github. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8f941968232..62471359ab7 100644 --- a/README.md +++ b/README.md @@ -674,6 +674,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. * [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. * [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. + * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library From f4ded3e81b4c5905da7389ba77138d0f6bb4d11f Mon Sep 17 00:00:00 2001 From: mrsinham Date: Sun, 5 Jul 2015 17:58:11 +0200 Subject: [PATCH 0119/3440] Fixing alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fa0d9f63dfb..6c0b84dcd9f 100644 --- a/README.md +++ b/README.md @@ -671,6 +671,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [aws-sdk-go](https://github.com/aws/aws-sdk-go) - The official AWS SDK for the Go programming language. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. * [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API +* [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. * [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. * [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. @@ -678,7 +679,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go -* [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. From c28e759cf3f4f0ea12468e1b2e8fa5d1e344db86 Mon Sep 17 00:00:00 2001 From: gedi Date: Thu, 9 Jul 2015 09:12:28 +0300 Subject: [PATCH 0120/3440] add single transaction based sql driver project --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6c0b84dcd9f..392e7869b2f 100644 --- a/README.md +++ b/README.md @@ -625,6 +625,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * 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 + * [go-txdb](https://github.com/DATA-DOG/go-txdb) - Single transaction based database driver mainly for testing purposes. * [gomock](https://github.com/golang/mock) - Mocking framework for the Go programming language. * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter From 301c662dd44309f6d663e367294889cc2e02582f Mon Sep 17 00:00:00 2001 From: Greg Osuri Date: Fri, 10 Jul 2015 10:51:56 -0700 Subject: [PATCH 0121/3440] Added go-store --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6c0b84dcd9f..223f423a8e0 100644 --- a/README.md +++ b/README.md @@ -506,6 +506,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. +* [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. * [hood](https://github.com/eaigner/hood) - Database agnostic ORM for Go. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. From 2d017464f4dbd0bc0479934326fe5e7a236d9e49 Mon Sep 17 00:00:00 2001 From: StabbyCutyou Date: Sat, 11 Jul 2015 11:26:27 -0400 Subject: [PATCH 0122/3440] Adding in Buffstreams - Streaming protobuffs message data over TCP made easy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6c0b84dcd9f..b6dfbb99d95 100644 --- a/README.md +++ b/README.md @@ -474,6 +474,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with various layers of the network* +* [buffstreams](https://github.com/stabbycutyou/buffstreams) - Streaming protocolbuffer data over TCP made easy * [dns](https://github.com/miekg/dns) - Go library for working with DNS * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). * [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpacp bindings From 17c7f802f76a8edea9fe404ee23bc80eb5e42c4d Mon Sep 17 00:00:00 2001 From: Duke Date: Sun, 12 Jul 2015 20:13:44 -0300 Subject: [PATCH 0123/3440] move gocc to github repository #328 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c0b84dcd9f..939d6858433 100644 --- a/README.md +++ b/README.md @@ -894,7 +894,7 @@ Software written in Go. * [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. * [fleet](https://github.com/coreos/fleet) - A Distributed init System. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. -* [gocc](https://code.google.com/p/gocc) - Gocc is a compiler kit for Go written in Go. +* [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine From d9a39b16310b974549be3da60894d400b78f889b Mon Sep 17 00:00:00 2001 From: Greg Osuri Date: Sun, 12 Jul 2015 18:34:27 -0700 Subject: [PATCH 0124/3440] Fixed ordering for go-store --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 223f423a8e0..1e284bf8810 100644 --- a/README.md +++ b/README.md @@ -503,10 +503,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* * [BeeDB](https://github.com/astaxie/beedb) - go ORM,support database/sql interface,pq/mysql/sqlite. +* [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. * [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. -* [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. * [hood](https://github.com/eaigner/hood) - Database agnostic ORM for Go. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. From cd063c23669ae66108d7746b41d28c98cf504ddc Mon Sep 17 00:00:00 2001 From: Marc-Antoine Ruel Date: Mon, 13 Jul 2015 09:25:32 -0400 Subject: [PATCH 0125/3440] Add panicparse. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 939d6858433..3494ba05adc 100644 --- a/README.md +++ b/README.md @@ -724,6 +724,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 +* [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 * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API From c9dce99f0c7ffe6cd898d83636740716b7627e22 Mon Sep 17 00:00:00 2001 From: Matthew Cunningham Date: Mon, 13 Jul 2015 15:50:59 -0700 Subject: [PATCH 0126/3440] Added mattcunningham/gumblr --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3494ba05adc..675f1b70c07 100644 --- a/README.md +++ b/README.md @@ -693,6 +693,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) +* [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. ## Utilities From 16764e8bd57bfc0a3a84187826d158b9e03fca70 Mon Sep 17 00:00:00 2001 From: Richard Knop Date: Wed, 15 Jul 2015 15:55:24 +0100 Subject: [PATCH 0127/3440] Added Machinery to Messaging section. Machinery is an asynchronous task queue/job queue based on distributed message passing. Think of it as Celery for Golang. So called tasks (or jobs if you like) are executed concurrently either by many workers on many servers or multiple worker processes on a single server using Golang's goroutines. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 03dfa821ad1..ff9e62918ab 100644 --- a/README.md +++ b/README.md @@ -428,6 +428,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec. * [go-nsq](https://github.com/bitly/go-nsq) - the official Go package for NSQ * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. +* [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. * [NATS](https://github.com/apcera/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. * [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs * [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. From 8ff1308a089b6b29fadca9e27cb7de39c92f002a Mon Sep 17 00:00:00 2001 From: Alexandre Viau Date: Mon, 20 Jul 2015 20:00:27 -0400 Subject: [PATCH 0128/3440] goraft is unmaintained --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index ff9e62918ab..ab2a7839c02 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* -* [goraft](https://github.com/goraft/raft) - A Go implementation of the Raft distributed consensus protocol. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. From d19838c86e293edebab2fd5c4973bb358d8688e4 Mon Sep 17 00:00:00 2001 From: Peggy Li Date: Tue, 21 Jul 2015 17:21:33 -0700 Subject: [PATCH 0129/3440] Add GoCon and GothamGo to the conference list Also list the conference cities to make it clearer where they are held, since it's not always evident from the conference name. --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ab2a7839c02..3927c5e999b 100644 --- a/README.md +++ b/README.md @@ -942,11 +942,12 @@ Where to discover new Go libraries. ## Conferences -* [dotGo](http://www.dotgo.io) -* [GolangUK](http://www.golanguk.com/) -* [GopherCon](http://www.gophercon.com/) -* [GopherCon India](http://www.gophercon.in/) - +* [dotGo](http://www.dotgo.io) - Paris, France +* [GoCon](http://gocon.connpass.com/) - Tokyo, Japan +* [GolangUK](http://www.golanguk.com/) - London, UK +* [GopherCon](http://www.gophercon.com/) - Denver, USA +* [GopherCon India](http://www.gophercon.in/) - Bengaluru, India +* [GothamGo](http://gothamgo.com/) - New York City, USA ## E-Books From 55b24bb860f3157970b842c91535391cca09443b Mon Sep 17 00:00:00 2001 From: Tyler Treat Date: Tue, 21 Jul 2015 22:06:18 -0500 Subject: [PATCH 0130/3440] Add boomfilters and go-datastructures packages --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6c0b84dcd9f..b8c6394dba1 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,9 @@ 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/surge/bloom) - Bloom filters implemented in Go. +* [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams * [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. +* [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing From e99ad0b8ca1f2236f394c3a5d287607f2428bc36 Mon Sep 17 00:00:00 2001 From: Vincent Rischmann Date: Wed, 22 Jul 2015 21:58:22 +0200 Subject: [PATCH 0131/3440] Added envconfig to Configuration --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5afb06e85f9..af3d0bb3318 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. * [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. * [envconf](https://github.com/ian-kent/envconf) - Configuration from environment +* [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [ini](https://github.com/go-ini/ini) - Go package for read and write INI files * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files From 7c2b84bf5708c6ccc4eee5b63d23116ba0bd7610 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Wed, 22 Jul 2015 20:49:29 -0400 Subject: [PATCH 0132/3440] Add Basic Assertion Library Add https://github.com/bluesuncorp/assert - A Basic Assertion Library used along side native go testing, with building blocks for custom assertions --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af3d0bb3318..cd2613449be 100644 --- a/README.md +++ b/README.md @@ -613,6 +613,7 @@ 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/bluesuncorp/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code From 033e4d4e6f9e68182d2cfe4966f3c0662328e2c7 Mon Sep 17 00:00:00 2001 From: Mario Idival Date: Thu, 23 Jul 2015 09:52:03 -0300 Subject: [PATCH 0133/3440] Add poorny/translate package --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index af3d0bb3318..5631975d7cc 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Science and Data Analysis](#science-and-data-analysis) - [Security](#security) - [Serialization](#serialization) + - [Translate](#translate) - [Template Engines](#template-engines) - [Testing](#testing) - [Text Processing](#text-processing) @@ -592,6 +593,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [nsq](http://nsq.io/) - A realtime distributed messaging platform +## Translate + +* [translate](https://github.com/poorny/translate) - Go online translation package + ## Template Engines *Libraries and tools for templating and lexing.* From 67bcdc5144ee997b55586924985ffd34b0754a1b Mon Sep 17 00:00:00 2001 From: Mario Idival Date: Thu, 23 Jul 2015 12:31:38 -0300 Subject: [PATCH 0134/3440] add translate on third party api --- README.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/README.md b/README.md index 5631975d7cc..91486f992b2 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Science and Data Analysis](#science-and-data-analysis) - [Security](#security) - [Serialization](#serialization) - - [Translate](#translate) - [Template Engines](#template-engines) - [Testing](#testing) - [Text Processing](#text-processing) @@ -593,10 +592,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [nsq](http://nsq.io/) - A realtime distributed messaging platform -## Translate - -* [translate](https://github.com/poorny/translate) - Go online translation package - ## Template Engines *Libraries and tools for templating and lexing.* @@ -703,9 +698,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) +* [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. - ## Utilities *General utilities and tools to make your life easier.* From 0c35437a2b814a8296a1f101aeeeb50392bbc66f Mon Sep 17 00:00:00 2001 From: Karol Duleba Date: Sun, 26 Jul 2015 21:09:36 +0100 Subject: [PATCH 0135/3440] govalidator belongs in Validation section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 91486f992b2..8b576743edc 100644 --- a/README.md +++ b/README.md @@ -665,7 +665,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. - * [govalidator](https://github.com/asaskevich/govalidator) - package of string validators and sanitizers for Go lang. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text @@ -748,6 +747,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for validation.* +* [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs * [validator](https://github.com/bluesuncorp/validator) - Go Struct and Field validation supporting Cross Field and Cross Struct validation From 145ab53895b9d7e3879523efc20d522f98ec78ce Mon Sep 17 00:00:00 2001 From: Dean Karn Date: Sun, 26 Jul 2015 22:02:02 -0400 Subject: [PATCH 0136/3440] update library description a few weeks ago I added validation to Slice, Array and Maps contents as well as each or any level within, so just updating the library description to reflect that. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3bd2a36c2d0..4f0d29e8981 100644 --- a/README.md +++ b/README.md @@ -749,7 +749,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for validation.* * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs -* [validator](https://github.com/bluesuncorp/validator) - Go Struct and Field validation supporting Cross Field and Cross Struct validation +* [validator](https://github.com/bluesuncorp/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving ## Version Control From a8fba4089efa53567f198a8f71e36996c7c0e0fb Mon Sep 17 00:00:00 2001 From: Seif Lotfy Date: Mon, 27 Jul 2015 23:47:21 +0200 Subject: [PATCH 0137/3440] Add seiflotfy/cuckoofilter package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8b576743edc..bccf9be7931 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,7 @@ 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/surge/bloom) - Bloom filters implemented in Go. * [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams +* [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. * [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. * [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. From 031926bf02dd627b0ad452d49d8d60bae562b47b Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Tue, 28 Jul 2015 15:09:18 -0700 Subject: [PATCH 0138/3440] Add dgryski/go-jump. Closes #489. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d3afeff00e..0662582e4c5 100644 --- a/README.md +++ b/README.md @@ -265,6 +265,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* +* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. From 5bf88e626607d28bfdc3f138e68706df947056d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Moreno?= Date: Thu, 30 Jul 2015 12:47:36 +0200 Subject: [PATCH 0139/3440] Added go-nmea library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 844ca397a21..1c69a2bc161 100644 --- a/README.md +++ b/README.md @@ -714,6 +714,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons From 0ef9b7cde628e9ec6af8aca883382f2bf2b2b257 Mon Sep 17 00:00:00 2001 From: Chen Fei Date: Thu, 30 Jul 2015 21:08:53 +0800 Subject: [PATCH 0140/3440] Update README.md add kingshard --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 844ca397a21..933aade164d 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. * [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. * [goose](https://bitbucket.org/liamstask/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. +* [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/outbrain/orchestrator) - MySQL replication topology manager & visualizer * [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser From f2ab168dbeb85619e065927fd9224674fe59715c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Moreno?= Date: Thu, 30 Jul 2015 22:47:31 +0200 Subject: [PATCH 0141/3440] Move go-nmea to Text Processing --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1c69a2bc161..5f833893898 100644 --- a/README.md +++ b/README.md @@ -654,6 +654,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. @@ -714,7 +715,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons From 6f6082f3bf2ad4a7bb6b77c3eeeaa4b77452cb57 Mon Sep 17 00:00:00 2001 From: Ufocoder Date: Fri, 31 Jul 2015 12:26:04 +0500 Subject: [PATCH 0142/3440] Add anaconda Add [anaconda](https://github.com/ChimeraCoder/anaconda) library for working with Twitter 1.1 API to `Third-party APIs` section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f833893898..b9f6ad41b7c 100644 --- a/README.md +++ b/README.md @@ -677,6 +677,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for accessing third party APIs.* +* [anaconda](https://github.com/ChimeraCoder/anaconda) - A 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. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. * [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API From 0bcd461949d8338dc4e993fa113a56fb8987932a Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sun, 2 Aug 2015 16:46:05 -0700 Subject: [PATCH 0143/3440] Remove GoBuild from DevOps Tools. The website appears to be down. As far as I can tell it's no longer active, but let me know if that's not the case. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b9f6ad41b7c..d1fe3b41da2 100644 --- a/README.md +++ b/README.md @@ -883,7 +883,6 @@ Software written in Go. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. -* [GoBuild](http://gobuild.io/) - Online compile Go projects to Windows, Linux and MacOSX. * [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. * [Gogs](http://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. From 92d2ec122cea35660b4e6580ab19d36568620f41 Mon Sep 17 00:00:00 2001 From: Kyoung-chan Lee Date: Mon, 3 Aug 2015 11:41:06 +0900 Subject: [PATCH 0144/3440] Add timeutil. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b9f6ad41b7c..a797d560bb2 100644 --- a/README.md +++ b/README.md @@ -259,6 +259,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for working with dates and times.* * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. +* [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. ## Distributed Systems From 4cb6c4fd016b0c644453891d9d642d95078f99f3 Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Sun, 2 Aug 2015 21:30:20 -0600 Subject: [PATCH 0145/3440] Add grace window clause --- CONTRIBUTING.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5c13b702577..54847d5dba9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,7 +22,7 @@ Please contribute links to packages/projects you have used or are familiar with. To be on the list, project repositories should adhere to these quality standards: -- Code is functional +- Code functions as documented and expected - Generally useful to the wider community of Go programmers - Actively maintained - Regular, recent commits @@ -34,4 +34,8 @@ To be on the list, project repositories should adhere to these quality standards ## Reporting issues -Please open an issue if you would like ot discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. Thanks everyone! +Please open an issue if you would like ot discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. + +Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition but are otherwise worthy of being on the list. + +Thanks everyone! From d098efdf1327ba63920fe3898c5017db1d0a57bb Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Mon, 3 Aug 2015 13:23:28 -0400 Subject: [PATCH 0146/3440] Add Continuous Integration Section Add goveralls & overalls libraries. --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index d1fe3b41da2..517ebbe015a 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Authentication & OAuth](#authentication--oauth) - [Command Line](#command-line) - [Configuration](#configuration) + - [Continuous Integration](#continuous-integration) - [CSS Preprocessors](#css-preprocessors) - [Data Structures](#data-structures) - [Database](#database) @@ -153,6 +154,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files * [viper](https://github.com/spf13/viper) - Go configuration with fangs +## Continuous Integration + +*Tools for help with continuous integration* + +* [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. +* [overalls](https://github.com/bluesuncorp/overalls) - Multi-Package go project coverprofile for tools like goveralls ## CSS Preprocessors From d33f24f17e93b331687c3f9e89cf16d339400687 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Mon, 3 Aug 2015 22:17:41 -0300 Subject: [PATCH 0147/3440] adding env --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1fe3b41da2..e65c2e9fb1d 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for configuration parsing* * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. +* [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 * [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. From d1b6deda164f04700ec0216f2ada401325120a4d Mon Sep 17 00:00:00 2001 From: Song Gao Date: Sun, 2 Aug 2015 12:39:36 -0500 Subject: [PATCH 0148/3440] Add `colorgo`, a `go build` colorizer; also add a new section `Go Tools` --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index b9f6ad41b7c..088dea1b8bf 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Tools](#tools) - [Code Analysis](#code-analysis) - [Editor Plugins](#editor-plugins) + - [Go Tools](#go-tools) - [Software Packages](#software-packages) - [DevOps Tools](#devops-tools) - [Other Software](#other-software) @@ -867,6 +868,9 @@ Go software and plugins. * [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. * [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. +## Go Tools + +* [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. ## Software Packages From 3c45eaf2f1ee116e23f77ade9c911c83b8972eb0 Mon Sep 17 00:00:00 2001 From: Jhonathan Paulo Banczek Date: Tue, 4 Aug 2015 15:02:34 -0400 Subject: [PATCH 0149/3440] BeeDB deprecated in favor of beego orm --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9cf9f6954e2..374eebbdca6 100644 --- a/README.md +++ b/README.md @@ -511,7 +511,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* -* [BeeDB](https://github.com/astaxie/beedb) - go ORM,support database/sql interface,pq/mysql/sqlite. +* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. * [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. * [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. From 1c27e3606f64aac94e8f226adf9dfabee8a701ce Mon Sep 17 00:00:00 2001 From: Alix Axel Date: Thu, 6 Aug 2015 04:11:34 +0200 Subject: [PATCH 0150/3440] added alixaxel/pagerank --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b1efcfea8e..9b188d280a2 100644 --- a/README.md +++ b/README.md @@ -573,6 +573,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goraph](https://github.com/gyuho/goraph) - A pure Go graph theory library(data structure, algorith visualization) * [gostat](https://code.google.com/p/gostat/) - A statistics library for the go language * [mudlark-go](https://code.google.com/p/mudlark-go-pkgs/) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. +* [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go * [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) From daa742c9bace9c3e2b18cc6d8c9f5e02ada77c0e Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Thu, 6 Aug 2015 03:16:29 -0300 Subject: [PATCH 0151/3440] added awesome badge https://github.com/sindresorhus/awesome/issues/253#issuecomment-128250464 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b1efcfea8e..e039ad9557a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) +# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 7f47edab9f7bddc98671b0f8e6f5db9d6b0ca20e Mon Sep 17 00:00:00 2001 From: Baiju Muthukadan Date: Fri, 7 Aug 2015 10:54:48 +0530 Subject: [PATCH 0152/3440] GopherChina --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e039ad9557a..a6fc33419fc 100644 --- a/README.md +++ b/README.md @@ -969,6 +969,7 @@ Where to discover new Go libraries. * [dotGo](http://www.dotgo.io) - Paris, France * [GoCon](http://gocon.connpass.com/) - Tokyo, Japan * [GolangUK](http://www.golanguk.com/) - London, UK +* [GopherChina](http://gopherchina.org) - Shanghai, China * [GopherCon](http://www.gophercon.com/) - Denver, USA * [GopherCon India](http://www.gophercon.in/) - Bengaluru, India * [GothamGo](http://gothamgo.com/) - New York City, USA From 38ac2b0906d380a66f47ed7725f83c87016bb991 Mon Sep 17 00:00:00 2001 From: Hung Nguyen Viet Date: Sat, 8 Aug 2015 14:00:26 +0700 Subject: [PATCH 0153/3440] use https --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a6fc33419fc..518d5ab2e7e 100644 --- a/README.md +++ b/README.md @@ -926,7 +926,7 @@ Software written in Go. * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine * [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. -* [naclpipe](http://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. +* [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. @@ -938,7 +938,7 @@ Software written in Go. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. -* [websysd](http://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) +* [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) From 46ceb1f6b14cd2a119717441ff98239a09c118c6 Mon Sep 17 00:00:00 2001 From: Sonia Hamilton Date: Sat, 8 Aug 2015 17:26:49 +1000 Subject: [PATCH 0154/3440] awsenv --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a6fc33419fc..9da1022198b 100644 --- a/README.md +++ b/README.md @@ -890,6 +890,7 @@ Software written in Go. ### DevOps Tools * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool +* [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile * [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. From 287306c006a0ff1d03f0bd63134beee94729f4f7 Mon Sep 17 00:00:00 2001 From: Cong Ding Date: Sat, 8 Aug 2015 20:38:24 -0700 Subject: [PATCH 0155/3440] add go-stun --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index beb641645f5..5b343125526 100644 --- a/README.md +++ b/README.md @@ -493,6 +493,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [buffstreams](https://github.com/stabbycutyou/buffstreams) - Streaming protocolbuffer data over TCP made easy * [dns](https://github.com/miekg/dns) - Go library for working with DNS * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). * [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpacp bindings * [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap * [gosnmp](https://github.com/soniah/gosnmp) - Native Go library for performing SNMP actions From 92018d86090fceb01a27d25949957fe5f07671b9 Mon Sep 17 00:00:00 2001 From: sci4me Date: Sun, 9 Aug 2015 01:22:41 -0500 Subject: [PATCH 0156/3440] Add "yakvs" --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index beb641645f5..630efad3937 100644 --- a/README.md +++ b/README.md @@ -605,6 +605,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Caddy](https://github.com/mholt/caddy) - Caddy is an alternative, HTTP/2 web server that's easy to configure and use. * [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. * [nsq](http://nsq.io/) - A realtime distributed messaging platform +* [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. ## Template Engines From 9f309c2811780433c89d070883d0502f475151b7 Mon Sep 17 00:00:00 2001 From: Sonia Hamilton Date: Mon, 10 Aug 2015 09:48:29 +1000 Subject: [PATCH 0157/3440] add evaler --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 08660467ae4..7065d3fde77 100644 --- a/README.md +++ b/README.md @@ -561,6 +561,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A 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-fn](https://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg From c423a3d7b14e2da77fdac3f4d3a9b992272014b8 Mon Sep 17 00:00:00 2001 From: Mario Idival Date: Tue, 11 Aug 2015 10:53:12 -0300 Subject: [PATCH 0158/3440] add bro --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af3d0bb3318..08f437b9437 100644 --- a/README.md +++ b/README.md @@ -614,6 +614,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * Testing Frameworks * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing + * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go From bd1ca676446c53f139118cfc20d3e903616dd5bf Mon Sep 17 00:00:00 2001 From: Kyoung-chan Lee Date: Wed, 12 Aug 2015 10:10:03 +0900 Subject: [PATCH 0159/3440] Add accounting --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7065d3fde77..90d4067793c 100644 --- a/README.md +++ b/README.md @@ -315,6 +315,7 @@ 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 From e1e2673548f948df2025bb8aaebe9edb9ecc9e23 Mon Sep 17 00:00:00 2001 From: Matt Layher Date: Wed, 12 Aug 2015 14:16:42 -0400 Subject: [PATCH 0160/3440] Add github.com/mdlayher networking libraries --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c225b9c1c17..9ab3d353c0e 100644 --- a/README.md +++ b/README.md @@ -491,8 +491,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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 +* [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 +* [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. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). * [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpacp bindings @@ -503,6 +506,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces * [mdns](https://github.com/hashicorp/mdns) - Simple mDNS (Multicast DNS) client/server library in Golang * [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. +* [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster @@ -634,7 +638,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * Testing Frameworks * [assert](https://github.com/bluesuncorp/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing - * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them + * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go From 28022a1522a8294ac361dbf93a9a9c8b587e8f02 Mon Sep 17 00:00:00 2001 From: Zubair Hamed Date: Sun, 16 Aug 2015 00:02:30 +0800 Subject: [PATCH 0161/3440] Add CoAP Client/Server implementation (RFC 7252) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ab3d353c0e..3399cdd5b01 100644 --- a/README.md +++ b/README.md @@ -493,6 +493,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) * [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 * [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. From a80b08503555afa15579b68b68f7f7426122edad Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Sun, 16 Aug 2015 15:21:15 +1000 Subject: [PATCH 0162/3440] Torrent-related packages --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3399cdd5b01..03067ec3bad 100644 --- a/README.md +++ b/README.md @@ -276,10 +276,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* +* [dht](https://github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. - +* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. ## Email @@ -509,7 +510,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. * [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. -* [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster +* [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. +* [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. ## OpenGL From 6851fd0952a57496c383c4a3ebbe2e94bd9f0a30 Mon Sep 17 00:00:00 2001 From: Artem Timofeev Date: Sun, 16 Aug 2015 18:53:30 +0300 Subject: [PATCH 0163/3440] Add grpc-go to Distributed Systems section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3399cdd5b01..25a242ab2c4 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. +* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. From 4fc14febbf2986d86bf98ed38b14c89801b3da4b Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Mon, 17 Aug 2015 12:29:49 +1000 Subject: [PATCH 0164/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 03067ec3bad..62afde8d7c8 100644 --- a/README.md +++ b/README.md @@ -276,11 +276,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* -* [dht](https://github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. + * [dht](http://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. ## Email From 2e56eaab89d7c694e3fdb42260d9e5ac93fb24d3 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Mon, 17 Aug 2015 13:13:19 +1000 Subject: [PATCH 0165/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 62afde8d7c8..aac9e9ab017 100644 --- a/README.md +++ b/README.md @@ -280,7 +280,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](http://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. + * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. ## Email From b9220c4a84185404b6a8cc266ba92da764c51ea6 Mon Sep 17 00:00:00 2001 From: Ricardo Longa Date: Mon, 17 Aug 2015 11:43:30 -0300 Subject: [PATCH 0166/3440] Added JsonGo link. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cee58e2383c..260ef1f6523 100644 --- a/README.md +++ b/README.md @@ -754,6 +754,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. +* [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. * [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers From 272f654ca4cfa4c9e69191b228cd9f4118676524 Mon Sep 17 00:00:00 2001 From: Andrii Ursulenko Date: Tue, 18 Aug 2015 16:47:35 +0300 Subject: [PATCH 0167/3440] added link to new redis client --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cee58e2383c..6ab10662b72 100644 --- a/README.md +++ b/README.md @@ -247,6 +247,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. * [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 + * [go-redis](https://github.com/go-redis/redis) - Redis client for Golang * [gocb](https://github.com/couchbaselabs/gocb) - Official Couchbase Go SDK * [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra. * [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language. From 1901bee2bf550ffed9645a2a1d88d6a4d910da20 Mon Sep 17 00:00:00 2001 From: Seif Lotfy Date: Tue, 18 Aug 2015 21:58:34 +0200 Subject: [PATCH 0168/3440] Add count-min-log A Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using waaay less memory) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cee58e2383c..a5bf40d65cf 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,7 @@ 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/surge/bloom) - Bloom filters implemented in Go. * [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams +* [count-min-log](https://github.com/seiflotfy/count-min-log) - A 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/surge/encoding) - Integer Compression Libraries for Go. * [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures From 1c4a002ac89a1593a23a71a0f246e08e403429c3 Mon Sep 17 00:00:00 2001 From: Andrii Ursulenko Date: Wed, 19 Aug 2015 09:10:55 +0300 Subject: [PATCH 0169/3440] changed package name and moved in alpha order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ab10662b72..ac5c075b183 100644 --- a/README.md +++ b/README.md @@ -247,7 +247,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. * [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 - * [go-redis](https://github.com/go-redis/redis) - Redis client for Golang * [gocb](https://github.com/couchbaselabs/gocb) - Official Couchbase Go SDK * [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra. * [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language. @@ -257,6 +256,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Neo4j-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in 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/hoisie/redis) - A simple, powerful Redis client for Go. * Search and Analytic Databases From a27301f33d9c3e05c6366e1dda0b2c1657237ebd Mon Sep 17 00:00:00 2001 From: Andreas Jonsson Date: Fri, 21 Aug 2015 11:06:43 +0200 Subject: [PATCH 0170/3440] Added SDL2 bindings from veandco. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cee58e2383c..39cf166d3fc 100644 --- a/README.md +++ b/README.md @@ -340,6 +340,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-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](http://www.libsdl.org/). * [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework From e9ebe57df2bb9695237e930021889112cd7e4824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Delattre?= Date: Sat, 22 Aug 2015 12:23:49 +0200 Subject: [PATCH 0171/3440] Add pushover, a wrapper for the Pushover API Pushover is a service to send and receive push notifications. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cee58e2383c..3339f16a59a 100644 --- a/README.md +++ b/README.md @@ -720,6 +720,7 @@ 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. * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. +* [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. * [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. From 2b25684189ab6ed3bd3960b2079fa1f71c40b6db Mon Sep 17 00:00:00 2001 From: MSempere Date: Sun, 23 Aug 2015 13:21:53 +0100 Subject: [PATCH 0172/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 17fca7313b5..2b7f6880357 100644 --- a/README.md +++ b/README.md @@ -749,6 +749,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. +* [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. * [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 * [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. From d95357ae35ee7be8bb5af28b11ab4da46d13716d Mon Sep 17 00:00:00 2001 From: Andreas Jonsson Date: Sun, 23 Aug 2015 18:09:01 +0200 Subject: [PATCH 0173/3440] Changed libsdl link to https --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 39cf166d3fc..fc2f734e343 100644 --- a/README.md +++ b/README.md @@ -340,7 +340,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-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](http://www.libsdl.org/). +* [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) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework From b1d0c6e68bf497da01e410334e88803d32962d72 Mon Sep 17 00:00:00 2001 From: Karol Duleba Date: Tue, 25 Aug 2015 18:18:31 +0100 Subject: [PATCH 0174/3440] Add machine learning package - goml --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ec69d08f130..6fdab95e1de 100644 --- a/README.md +++ b/README.md @@ -430,6 +430,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [godist](https://github.com/e-dard/godist) - Various probability distributions, and associated methods. * [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 * [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. * [mlgo](https://code.google.com/p/mlgo/) - This project aims to provide minimalistic machine learning algorithms in Go. From 9f00c84e5b3d200133074e7f78301d39bb42b2df Mon Sep 17 00:00:00 2001 From: Scott Johnston Date: Thu, 27 Aug 2015 08:36:10 -0700 Subject: [PATCH 0175/3440] Add github.com/vectaport/flowgraph to Distributed Systems --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ec69d08f130..c69a288dddb 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* +* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. From 6e9a758b610fae971f1a66b65da59e9164c614d3 Mon Sep 17 00:00:00 2001 From: Stephen Lewis Date: Thu, 3 Sep 2015 15:46:05 +0100 Subject: [PATCH 0176/3440] Correct spelling of libpcap --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 49d598d061f..49d9da66d47 100644 --- a/README.md +++ b/README.md @@ -505,7 +505,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). -* [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpacp bindings +* [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings * [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap * [gosnmp](https://github.com/soniah/gosnmp) - Native Go library for performing SNMP actions * [gotcp](https://github.com/gansidui/gotcp) - A Go package for quickly writing tcp applications From 414277945fe1a97c5df09d2f98e20f59c3d0bdad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Senart?= Date: Fri, 4 Sep 2015 18:26:17 +0200 Subject: [PATCH 0177/3440] Add Vegeta to DevOps section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 49d9da66d47..2a173e9139a 100644 --- a/README.md +++ b/README.md @@ -930,6 +930,7 @@ Software written in Go. * [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. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. +* [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) - A Web-based IDE for Teams using Golang. From b5badce40c3f11c3bcca8a5fe0240d7df120c723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Azer=20Ko=C3=A7ulu?= Date: Fri, 4 Sep 2015 11:54:10 -0700 Subject: [PATCH 0178/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 49d9da66d47..f9db3247f7f 100644 --- a/README.md +++ b/README.md @@ -408,6 +408,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. * [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib +* [logger](http://github.com/azer/logger) - Minimalistic logging library for Go. * [logrus](https://github.com/Sirupsen/logrus) - a 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/). * [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. From 04c11d492d5c05e68113adb1288ddf7408cde0cd Mon Sep 17 00:00:00 2001 From: siddontang Date: Tue, 8 Sep 2015 09:05:56 +0800 Subject: [PATCH 0179/3440] Add TiDB to Databases section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2a173e9139a..006042bf928 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. *Database tools.* From 14667c1bcecd6d34e72fc56bfcb0f01ca1303405 Mon Sep 17 00:00:00 2001 From: Duke Date: Tue, 8 Sep 2015 12:07:10 -0300 Subject: [PATCH 0180/3440] use travis docker container infrastructure --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index f248457fd79..6812fc17641 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,8 @@ language: go go: - 1.4 + +sudo: false install: - go get github.com/russross/blackfriday From b55c9aadc8d381c55ea7f0258ce5d20f2c287dac Mon Sep 17 00:00:00 2001 From: sadlil Date: Tue, 8 Sep 2015 23:20:20 +0600 Subject: [PATCH 0181/3440] Add Go logger lib with console, file or ES logging. --- README.md | 1 + README.md~ | 1046 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1047 insertions(+) create mode 100644 README.md~ diff --git a/README.md b/README.md index 006042bf928..559f206f151 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for generating and working with log files.* * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. +* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. diff --git a/README.md~ b/README.md~ new file mode 100644 index 00000000000..559f206f151 --- /dev/null +++ b/README.md~ @@ -0,0 +1,1046 @@ +# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + + +A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). + + +### Contributing + +Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! + +[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! + +#### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!* + + +### Contents + +- [Awesome Go](#awesome-go) + - [Audio & Music](#audiomusic) + - [Authentication & OAuth](#authentication--oauth) + - [Command Line](#command-line) + - [Configuration](#configuration) + - [Continuous Integration](#continuous-integration) + - [CSS Preprocessors](#css-preprocessors) + - [Data Structures](#data-structures) + - [Database](#database) + - [Database Drivers](#database-drivers) + - [Date & Time](#date--time) + - [Distributed Systems](#distributed-systems) + - [Email](#email) + - [Embeddable Scripting Languages](#embeddable-scripting-languages) + - [Financial](#financial) + - [Forms](#forms) + - [Game Development](#game-development) + - [Generation & Generics](#generation--generics) + - [GUI](#gui) + - [Hardware](#hardware) + - [Images](#images) + - [Logging](#logging) + - [Machine Learning](#machine-learning) + - [Messaging](#messaging) + - [Miscellaneous](#miscellaneous) + - [Natural Language Processing](#natural-language-processing) + - [Networking](#networking) + - [OpenGL](#opengl) + - [ORM](#orm) + - [Package Management](#package-management) + - [Resource Embedding](#resource-embedding) + - [Science and Data Analysis](#science-and-data-analysis) + - [Security](#security) + - [Serialization](#serialization) + - [Template Engines](#template-engines) + - [Testing](#testing) + - [Text Processing](#text-processing) + - [Third-party APIs](#third-party-apis) + - [Utilities](#utilities) + - [Validation](#validation) + - [Version Control](#version-control) + - [Video](#video) + - [Web Frameworks](#web-frameworks) + - [Middlewares](#middlewares) + - [Actual middlewares](#actual-middlewares) + - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) + - [Windows](#windows) + +- [Tools](#tools) + - [Code Analysis](#code-analysis) + - [Editor Plugins](#editor-plugins) + - [Go Tools](#go-tools) + - [Software Packages](#software-packages) + - [DevOps Tools](#devops-tools) + - [Other Software](#other-software) + +- [Server Applications](#server-applications) + +- [Resources](#resources) + - [Benchmarks](#benchmarks) + - [Conferences](#conferences) + - [E-Books](#e-books) + - [Twitter](#twitter) + - [Websites](#websites) + - [Tutorials](#tutorials) + + +## Audio/Music + +*Libraries for manipulating audio.* + +* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. +* [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. +* [PortAudio](https://code.google.com/p/portaudio-go/) - Go bindings for the PortAudio audio I/O library. +* [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. +* [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. +* [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). +* [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. + + +## Authentication & OAuth + +*Libraries for implementing authentications schemes.* + +* [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. +* [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. +* [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. +* [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. +* [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. +* [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. +* [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). +* [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. +* [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. +* [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. +* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. + + +## Command Line + + +### Standard CLI + +*Libraries for building standard or basic Command Line applications* + +* [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. +* [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions +* [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. +* [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. +* [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. +* [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. +* [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. + + +### Advanced Console UIs + +*Libraries for building Console Applications and Console User Interfaces* + +* [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. +* [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. +* [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. +* [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. +* [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. +* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/visionmedia/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output +* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). + + +## Configuration + +*Libraries for configuration parsing* + +* [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. +* [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 +* [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. +* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy +* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files +* [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files +* [viper](https://github.com/spf13/viper) - Go configuration with fangs + +## Continuous Integration + +*Tools for help with continuous integration* + +* [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. +* [overalls](https://github.com/bluesuncorp/overalls) - Multi-Package go project coverprofile for tools like goveralls + +## CSS Preprocessors + +*Libraries for preprocessing CSS files* + +* [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. + +## Data Structures + +*Generic datastructures and algorithms in Go.* + +* [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. +* [bloom](https://github.com/surge/bloom) - Bloom filters implemented in Go. +* [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams +* [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. +* [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. +* [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures +* [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. +* [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. +* [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing +* [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) - An in-memory LRU string-interface{} map with expiration for golang +* [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. + +## Database + +*Databases implemented in Go.* + +* [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. +* [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. +* [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server. +* [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store. +* [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. +* [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. +* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. +* [goleveldb](https://github.com/syndtr/goleveldb) - An 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 +* [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. +* [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. +* [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. + +*Database tools.* + +* [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. +* [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. +* [goose](https://bitbucket.org/liamstask/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. +* [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/outbrain/orchestrator) - MySQL replication topology manager & visualizer +* [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser +* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., +* [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. +* [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.* + +* [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) - An idiomatic SQL builder and query library. +* [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. +* [Squirrel](https://github.com/lann/squirrel) - Go library that helps you build SQL queries. + + +## Database Drivers + +*Libraries for connecting and operating databases.* + +* Relational Databases + * [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 prototype in go language. + * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. + * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. + * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. + * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). + * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. + +* NoSQL Databases + * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. + * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. + * [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/couchbaselabs/gocb) - Official Couchbase Go SDK + * [gocql](http://gocql.github.io) - A 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 + * [mgo](http://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-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in 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/hoisie/redis) - A simple, powerful Redis client for Go. + +* Search and Analytic Databases + * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. + * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Google Go. + * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library. + * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. + +## Date & Time + +*Libraries for working with dates and times.* + +* [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. +* [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.* + +* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. +* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. +* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. +* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. +* [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. +* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. + * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. + +## Email + +*Libraries that implement email creation and sending* + +* [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) - A DKIM library, to sign & verify email. +* [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. +* [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 +* [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) - A port of the Lua 5.2 VM to pure 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) - a Lua 5.1 VM and compiler written in Go +* [otto](https://github.com/robertkrimen/otto) - A JavaScript interpreter written in Go +* [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go + + +## Financial + +*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 + + +## Forms + +*Libraries for working with forms.* + +* [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. +* [formam](https://github.com/monoculum/formam) - decode form's values into a struct. +* [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. +* [nosurf](https://github.com/justinas/nosurf) - A CSRF protection middleware for Go. + + +## Game Development + +*Awesome game development libraries.* + +* [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-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) - A performance oriented 2D/3D math package for Go +* [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang +* [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework + + +## Generation & Generics + +*Tools to enhance the language with features like generics via code generation* + +* [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. +* [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. + + +## GUI + +*Libraries for building GUI Applications* + +* [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 +* [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. +* [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3. +* [gxui](https://github.com/google/gxui) - A Go cross platform UI library. +* [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. +* [walk](https://github.com/lxn/walk) - Windows application library kit for Go. + +## Hardware + +*Libraries, tools, and tutorials for interacting with hardware.* + +See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive list. + +## Images + +*Libraries for manipulating images.* + +* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips +* [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. +* [gift](https://github.com/disintegration/gift) - Package of image processing filters. +* [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. +* [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library +* [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. +* [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. +* [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. +* [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. +* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing +* [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. +* [img](https://github.com/hawx/img) - A selection of image manipulation tools. +* [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go +* [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods. +* [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. +* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes +* [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. +* [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. + +## Logging + +*Libraries for generating and working with log files.* + +* [glog](https://github.com/golang/glog) - Leveled execution logs for Go. +* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. +* [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. +* [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. +* [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. +* [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. +* [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib +* [logrus](https://github.com/Sirupsen/logrus) - a 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/). +* [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. +* [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. +* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. +* [mlog](https://github.com/jbrodriguez/mlog) - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. +* [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. +* [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/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program. + +## Machine Learning + +*Libraries for Machine Learning.* + +* [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. +* [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. +* [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-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. +* [gobrain](https://github.com/goml/gobrain) - Neural Networks written in go +* [godist](https://github.com/e-dard/godist) - Various probability distributions, and associated methods. +* [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 +* [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. +* [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. +* [mlgo](https://code.google.com/p/mlgo/) - This project aims to provide minimalistic machine learning algorithms in Go. +* [neural-go](https://github.com/schuyler/neural-go) - A multilayer perceptron network implemented in Go, with training via backpropagation. +* [probab](https://code.google.com/p/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 + + +## Messaging + +*Libraries that implement messaging systems* + +* [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. +* [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. +* [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec. +* [go-nsq](https://github.com/bitly/go-nsq) - the official Go package for NSQ +* [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. +* [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. +* [NATS](https://github.com/apcera/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. +* [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs +* [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. +* [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. +* [Uniqush-Push](https://github.com/uniqush/uniqush-push) - A redis backed unified push service for server-side notifications to mobile devices. +* [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). + + +## Miscellaneous + +*These libraries were placed here because none of the other categories seemed to fit* + +* [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. +* [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser +* [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. +* [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). +* [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. +* [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber +* [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. + +## Natural Language Processing + +*Libraries for working with human languages.* + +* [go-eco](https://code.google.com/p/go-eco/) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. +* [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. +* [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming 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 +* [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. +* [paicehusk](https://github.com/Rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm +* [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. +* [porter2](https://github.com/surge/porter2) - Really fast Porter 2 stemmer. +* [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) +* [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) - A Go package for n-gram based text categorization, with support for utf-8 and raw text + +## 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) +* [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 +* [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. +* [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). +* [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings +* [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap +* [gosnmp](https://github.com/soniah/gosnmp) - Native Go library for performing SNMP actions +* [gotcp](https://github.com/gansidui/gotcp) - A Go package for quickly writing tcp applications +* [graval](https://github.com/koofr/graval) - An experimental FTP server framework. +* [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces +* [mdns](https://github.com/hashicorp/mdns) - Simple mDNS (Multicast DNS) client/server library in Golang +* [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. +* [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. +* [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. +* [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. +* [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. + +## OpenGL + +*Libraries for using OpenGL in Go.* + +* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). +* [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. +* [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). +* [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. +* [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. + + +## ORM + +*Libraries that implement Object-Relational Mapping or datamapping techniques.* + +* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. +* [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. +* [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. +* [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. +* [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. +* [hood](https://github.com/eaigner/hood) - Database agnostic ORM for Go. +* [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. +* [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. +* [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. +* [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. + + +## Package Management + +*Libraries for package and dependency management.* + +* [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. +* [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) - A simple dependency manager for Go (golang), inspired by Bundler. +* [gopm](https://github.com/gpmgo/gopm) - Go Package Manager +* [gpm](https://github.com/pote/gpm) - Barebones dependency manager for Go. +* [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 + + +## Resource Embedding + +* [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. +* [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. +* [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. + + +## Science and Data Analysis + +*Libraries for scientific computing and data analyzing.* + +* [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) - A 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-fn](https://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg +* [go-gt](https://code.google.com/p/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://code.google.com/p/gocomplex/) - A complex number library for the Go programming language. +* [gofrac](https://github.com/anschelsc/gofrac) - A (goinstallable) fractions library for go with support for basic arithmetic. +* [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) - A pure Go graph theory library(data structure, algorith visualization) +* [gostat](https://code.google.com/p/gostat/) - A statistics library for the go language +* [mudlark-go](https://code.google.com/p/mudlark-go-pkgs/) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. +* [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go +* [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) + + +## Security + +*Libraries that are used to help make your application more secure.* + +* [BadActor](https://github.com/jaredfolkins/badactor) - An 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)" + +## Serialization + +*Libraries and tools for binary serialization* + +* [cbor](https://github.com/2tvenom/cbor) - Golang library for working with cbor 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. +* [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. +* [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 +* [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. + + +## Server Applications + +* [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. +* [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. +* [nsq](http://nsq.io/) - A realtime distributed messaging platform +* [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. + + +## Template Engines + +*Libraries and tools for templating and lexing.* + +* [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. +* [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. +* [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. +* [ego](https://github.com/benbjohnson/ego) - A lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. +* [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. +* [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. +* [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. +* [raymond](https://github.com/aymerick/raymond) - A 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/) + + +## Testing + +*Libraries for testing codebases and generating test data.* + +* Testing Frameworks + * [assert](https://github.com/bluesuncorp/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions + * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing + * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them + * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go + * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code + * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go + * [gocheck](http://labix.org/gocheck) - A more advanced testing framework alternative to gotest. + * [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. + * [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. + * [Hamcrest](https://github.com/rdrdr/hamcrest) - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. + * [restit](https://github.com/yookoala/restit) - A Go micro framework to help writing RESTful API integration test. + * [Testify](https://github.com/stretchr/testify) - A sacred extension to the standard go testing package. + +* 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 + * [go-txdb](https://github.com/DATA-DOG/go-txdb) - Single transaction based database driver mainly for testing purposes. + * [gomock](https://github.com/golang/mock) - Mocking framework for the Go programming language. + * [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) - A randomized testing system + * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values + * [gogenerate](https://github.com/arschles/gogenerate) - A Scalacheck-like library for Go + * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework + +## Text Processing + +*Libraries for parsing and manipulating texts.* + +* Specific Formats + * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go + * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. + * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer + * [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 + * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. + * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. + * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. + * [gommon/gytes](https://github.com/labstack/gommon/tree/master/gytes) - Format bytes to string. + * [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts + * [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) - A library for generating random strings from regular expressions. + * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. + * [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. + * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. + * [Slugify](https://github.com/avelino/slugify) - A 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. + * [xurls](https://github.com/mvdan/xurls) - Extract urls from text + + +## Third-party APIs + +*Libraries for accessing third party APIs.* + +* [anaconda](https://github.com/ChimeraCoder/anaconda) - A 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. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. +* [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. +* [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API +* [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API +* [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. +* [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. +* [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. +* [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS +* [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. +* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library +* [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go +* [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting +* [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library +* [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. +* [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. +* [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. +* [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. +* [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. +* [snapchat](https://github.com/jamieomatthews/gosnap) - Go wrapper for the snapchat 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 +* [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) +* [translate](https://github.com/poorny/translate) - Go online translation package +* [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. + +## Utilities + +*General utilities and tools to make your life easier.* + +* [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. +* [delve](https://github.com/derekparker/delve) - Go debugger. +* [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. +* [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. +* [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-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. +* [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. +* [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons +* [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) +* [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. +* [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. +* [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. +* [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 +* [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. +* [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. +* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go +* [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. +* [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. +* [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. +* [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go +* [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. +* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers +* [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 +* [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 +* [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API +* [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go +* [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. +* [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics +* [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. +* [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. +* [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 +* [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. + + +## Validation + +*Libraries for validation.* + +* [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs +* [validator](https://github.com/bluesuncorp/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving + + +## Version Control + +*Libraries for version control.* + +* [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks +* [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. +* [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. +* [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. + + +## Video + +*Libraries for manipulating video.* + +* [aac/h264](https://github.com/nareix/codec) - Golang aac/h264 encoder and decoder. +* [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. +* [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. +* [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. + + +## Web Frameworks + +*Full stack web frameworks.* + +* [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. +* [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. +* [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. +* [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. +* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) +* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API +* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's +* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go +* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. +* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go +* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. +* [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants. +* [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster +* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go +* [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. +* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. +* [Macaron](https://github.com/Unknwon/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. +* [Martini](https://github.com/go-martini/martini) - Martini is a powerful package for quickly writing modular web applications/services in Golang. +* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. +* [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. +* [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. +* [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. +* [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. +* [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. +* [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. +* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers +* [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. +* [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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. +* [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. +* [Zerver](https://github.com/cosiner/zerver) - Zerver is a expressive, modular, feature completed RESTful framework. +* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. + + +### Middlewares + +#### Actual middlewares + +* [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API +* [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST +* [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler +* [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends + +#### Libraries for creating HTTP middlewares + +* [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. +* [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. +* [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang +* [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. +* [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. +* [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses. +* [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application. + +# Tools + +Go software and plugins. + + +## Code Analysis + +* [doc](http://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. +* [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. +* [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. +* [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. +* [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. +* [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. +* [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. +* [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. +* [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. +* [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. +* [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. +* [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. + + +## Editor Plugins + +* [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. +* [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting +* [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language +* [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. +* [velour](https://github.com/velour/velour) - An IRC client for the acme editor. +* [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. +* [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. +* [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. + +## Go Tools + +* [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. + +## Software Packages + +Software written in Go. + + +### DevOps Tools + +* [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool +* [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile +* [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. +* [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). +* [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. +* [gaudi](http://gaudi.io/) - Gaudi automates the setup of isolated and decoupled dev environments. +* [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. +* [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. +* [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. +* [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. +* [Gogs](http://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. +* [gox](https://github.com/mitchellh/gox) - A 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. +* [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. +* [hk](https://github.com/heroku/hk) - Heroku command-line interface in Go. +* [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. +* [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. +* [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) - A Web-based IDE for Teams using Golang. + + +### Other Software +* [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine +* [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 +* [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. +* [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. +* [fleet](https://github.com/coreos/fleet) - A Distributed init System. +* [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. +* [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. +* [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. +* [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. +* [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine +* [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. +* [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. +* [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. +* [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. +* [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. +* [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. +* [plubi](https://github.com/norwack/plubi) - A Golang Plugin Based IRC Bot. +* [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. +* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. +* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) +* [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol. +* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. +* [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. +* [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. +* [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) + + + + + + + +# Resources + +Where to discover new Go libraries. + + +## Benchmarks + +* [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. +* [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. +* [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. +* [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. +* [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. +* [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. +* [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - A collection of benchmarks for popular Go database/SQL utilities. +* [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. +* [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. + + +## Conferences + +* [dotGo](http://www.dotgo.io) - Paris, France +* [GoCon](http://gocon.connpass.com/) - Tokyo, Japan +* [GolangUK](http://www.golanguk.com/) - London, UK +* [GopherChina](http://gopherchina.org) - Shanghai, China +* [GopherCon](http://www.gophercon.com/) - Denver, USA +* [GopherCon India](http://www.gophercon.in/) - Bengaluru, India +* [GothamGo](http://gothamgo.com/) - New York City, USA + +## E-Books + +* [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) +* [An Introduction to Programming in Go](http://www.golang-book.com/) +* [Build Web Application with Golang](http://astaxie.gitbooks.io/build-web-application-with-golang/) +* [Building Web Apps With Go](http://codegangsta.gitbooks.io/building-web-apps-with-go/) +* [Go Bootcamp](http://golangbootcamp.com) +* [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books +* [Learning Go](http://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) +* [Network Programming With Go](http://jan.newmarch.name/go/) + + +## Twitter + +* [@golang](https://twitter.com/golang) +* [@golang_news](https://twitter.com/golang_news) +* [@golangweekly](https://twitter.com/golangweekly) + + +## Websites + +* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - A curated list of awesome remote jobs. A lot of them is looking for Go hackers. +* [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. +* [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. +* [Go Blog](http://blog.golang.org) - The official Go blog +* [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki +* [godoc.org](http://godoc.org/) - Documentation for open source Go packages. +* [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art +* [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list +* [gowalker.org](https://gowalker.org) - Go Project API documentation. +* [r/Golang](http://www.reddit.com/r/golang) - News about Go. +* [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. + + +### Tutorials + +* [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go +* [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs +* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql +* [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers + + +## Windows + +* [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang From c5f272e9233ca86e6e97eed04f0997939504917b Mon Sep 17 00:00:00 2001 From: sadlil Date: Tue, 8 Sep 2015 23:23:29 +0600 Subject: [PATCH 0182/3440] Add Go logger lib with console, file or ES logging. --- README.md~ | 1046 ---------------------------------------------------- 1 file changed, 1046 deletions(-) delete mode 100644 README.md~ diff --git a/README.md~ b/README.md~ deleted file mode 100644 index 559f206f151..00000000000 --- a/README.md~ +++ /dev/null @@ -1,1046 +0,0 @@ -# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) - - -A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). - - -### Contributing - -Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! - -[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! - -#### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!* - - -### Contents - -- [Awesome Go](#awesome-go) - - [Audio & Music](#audiomusic) - - [Authentication & OAuth](#authentication--oauth) - - [Command Line](#command-line) - - [Configuration](#configuration) - - [Continuous Integration](#continuous-integration) - - [CSS Preprocessors](#css-preprocessors) - - [Data Structures](#data-structures) - - [Database](#database) - - [Database Drivers](#database-drivers) - - [Date & Time](#date--time) - - [Distributed Systems](#distributed-systems) - - [Email](#email) - - [Embeddable Scripting Languages](#embeddable-scripting-languages) - - [Financial](#financial) - - [Forms](#forms) - - [Game Development](#game-development) - - [Generation & Generics](#generation--generics) - - [GUI](#gui) - - [Hardware](#hardware) - - [Images](#images) - - [Logging](#logging) - - [Machine Learning](#machine-learning) - - [Messaging](#messaging) - - [Miscellaneous](#miscellaneous) - - [Natural Language Processing](#natural-language-processing) - - [Networking](#networking) - - [OpenGL](#opengl) - - [ORM](#orm) - - [Package Management](#package-management) - - [Resource Embedding](#resource-embedding) - - [Science and Data Analysis](#science-and-data-analysis) - - [Security](#security) - - [Serialization](#serialization) - - [Template Engines](#template-engines) - - [Testing](#testing) - - [Text Processing](#text-processing) - - [Third-party APIs](#third-party-apis) - - [Utilities](#utilities) - - [Validation](#validation) - - [Version Control](#version-control) - - [Video](#video) - - [Web Frameworks](#web-frameworks) - - [Middlewares](#middlewares) - - [Actual middlewares](#actual-middlewares) - - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) - - [Windows](#windows) - -- [Tools](#tools) - - [Code Analysis](#code-analysis) - - [Editor Plugins](#editor-plugins) - - [Go Tools](#go-tools) - - [Software Packages](#software-packages) - - [DevOps Tools](#devops-tools) - - [Other Software](#other-software) - -- [Server Applications](#server-applications) - -- [Resources](#resources) - - [Benchmarks](#benchmarks) - - [Conferences](#conferences) - - [E-Books](#e-books) - - [Twitter](#twitter) - - [Websites](#websites) - - [Tutorials](#tutorials) - - -## Audio/Music - -*Libraries for manipulating audio.* - -* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. -* [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. -* [PortAudio](https://code.google.com/p/portaudio-go/) - Go bindings for the PortAudio audio I/O library. -* [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. -* [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. -* [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). -* [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. - - -## Authentication & OAuth - -*Libraries for implementing authentications schemes.* - -* [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. -* [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. -* [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. -* [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. -* [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. -* [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. -* [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). -* [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. -* [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. -* [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. -* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. - - -## Command Line - - -### Standard CLI - -*Libraries for building standard or basic Command Line applications* - -* [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. -* [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions -* [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. -* [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. -* [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. -* [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. -* [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. - - -### Advanced Console UIs - -*Libraries for building Console Applications and Console User Interfaces* - -* [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. -* [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. -* [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. -* [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. -* [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. -* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/visionmedia/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output -* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). - - -## Configuration - -*Libraries for configuration parsing* - -* [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. -* [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 -* [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. -* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy -* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files -* [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files -* [viper](https://github.com/spf13/viper) - Go configuration with fangs - -## Continuous Integration - -*Tools for help with continuous integration* - -* [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. -* [overalls](https://github.com/bluesuncorp/overalls) - Multi-Package go project coverprofile for tools like goveralls - -## CSS Preprocessors - -*Libraries for preprocessing CSS files* - -* [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. - -## Data Structures - -*Generic datastructures and algorithms in Go.* - -* [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. -* [bloom](https://github.com/surge/bloom) - Bloom filters implemented in Go. -* [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams -* [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. -* [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. -* [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures -* [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. -* [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. -* [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing -* [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) - An in-memory LRU string-interface{} map with expiration for golang -* [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. - -## Database - -*Databases implemented in Go.* - -* [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. -* [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. -* [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server. -* [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store. -* [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. -* [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. -* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. -* [goleveldb](https://github.com/syndtr/goleveldb) - An 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 -* [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. -* [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. -* [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. - -*Database tools.* - -* [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. -* [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. -* [goose](https://bitbucket.org/liamstask/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. -* [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/outbrain/orchestrator) - MySQL replication topology manager & visualizer -* [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser -* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., -* [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. -* [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.* - -* [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) - An idiomatic SQL builder and query library. -* [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. -* [Squirrel](https://github.com/lann/squirrel) - Go library that helps you build SQL queries. - - -## Database Drivers - -*Libraries for connecting and operating databases.* - -* Relational Databases - * [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 prototype in go language. - * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. - * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. - * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. - * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). - * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. - -* NoSQL Databases - * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. - * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. - * [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/couchbaselabs/gocb) - Official Couchbase Go SDK - * [gocql](http://gocql.github.io) - A 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 - * [mgo](http://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-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in 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/hoisie/redis) - A simple, powerful Redis client for Go. - -* Search and Analytic Databases - * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. - * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Google Go. - * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library. - * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. - -## Date & Time - -*Libraries for working with dates and times.* - -* [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. -* [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.* - -* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. -* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. -* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. -* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. -* [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. -* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. - -## Email - -*Libraries that implement email creation and sending* - -* [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) - A DKIM library, to sign & verify email. -* [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. -* [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 -* [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) - A port of the Lua 5.2 VM to pure 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) - a Lua 5.1 VM and compiler written in Go -* [otto](https://github.com/robertkrimen/otto) - A JavaScript interpreter written in Go -* [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go - - -## Financial - -*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 - - -## Forms - -*Libraries for working with forms.* - -* [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. -* [formam](https://github.com/monoculum/formam) - decode form's values into a struct. -* [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. -* [nosurf](https://github.com/justinas/nosurf) - A CSRF protection middleware for Go. - - -## Game Development - -*Awesome game development libraries.* - -* [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-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) - A performance oriented 2D/3D math package for Go -* [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang -* [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework - - -## Generation & Generics - -*Tools to enhance the language with features like generics via code generation* - -* [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. -* [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. - - -## GUI - -*Libraries for building GUI Applications* - -* [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 -* [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. -* [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3. -* [gxui](https://github.com/google/gxui) - A Go cross platform UI library. -* [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. -* [walk](https://github.com/lxn/walk) - Windows application library kit for Go. - -## Hardware - -*Libraries, tools, and tutorials for interacting with hardware.* - -See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive list. - -## Images - -*Libraries for manipulating images.* - -* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips -* [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. -* [gift](https://github.com/disintegration/gift) - Package of image processing filters. -* [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. -* [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library -* [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. -* [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. -* [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. -* [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. -* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing -* [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. -* [img](https://github.com/hawx/img) - A selection of image manipulation tools. -* [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go -* [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods. -* [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. -* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes -* [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. -* [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. - -## Logging - -*Libraries for generating and working with log files.* - -* [glog](https://github.com/golang/glog) - Leveled execution logs for Go. -* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. -* [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. -* [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. -* [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. -* [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. -* [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib -* [logrus](https://github.com/Sirupsen/logrus) - a 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/). -* [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. -* [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. -* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. -* [mlog](https://github.com/jbrodriguez/mlog) - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. -* [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. -* [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/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program. - -## Machine Learning - -*Libraries for Machine Learning.* - -* [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. -* [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. -* [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-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. -* [gobrain](https://github.com/goml/gobrain) - Neural Networks written in go -* [godist](https://github.com/e-dard/godist) - Various probability distributions, and associated methods. -* [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 -* [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. -* [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. -* [mlgo](https://code.google.com/p/mlgo/) - This project aims to provide minimalistic machine learning algorithms in Go. -* [neural-go](https://github.com/schuyler/neural-go) - A multilayer perceptron network implemented in Go, with training via backpropagation. -* [probab](https://code.google.com/p/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 - - -## Messaging - -*Libraries that implement messaging systems* - -* [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. -* [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. -* [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec. -* [go-nsq](https://github.com/bitly/go-nsq) - the official Go package for NSQ -* [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. -* [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. -* [NATS](https://github.com/apcera/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. -* [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs -* [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. -* [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. -* [Uniqush-Push](https://github.com/uniqush/uniqush-push) - A redis backed unified push service for server-side notifications to mobile devices. -* [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). - - -## Miscellaneous - -*These libraries were placed here because none of the other categories seemed to fit* - -* [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. -* [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). -* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser -* [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. -* [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). -* [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. -* [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. -* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber -* [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. - -## Natural Language Processing - -*Libraries for working with human languages.* - -* [go-eco](https://code.google.com/p/go-eco/) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. -* [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. -* [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming 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 -* [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. -* [paicehusk](https://github.com/Rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm -* [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. -* [porter2](https://github.com/surge/porter2) - Really fast Porter 2 stemmer. -* [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) -* [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) - A Go package for n-gram based text categorization, with support for utf-8 and raw text - -## 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) -* [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 -* [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. -* [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). -* [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). -* [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings -* [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap -* [gosnmp](https://github.com/soniah/gosnmp) - Native Go library for performing SNMP actions -* [gotcp](https://github.com/gansidui/gotcp) - A Go package for quickly writing tcp applications -* [graval](https://github.com/koofr/graval) - An experimental FTP server framework. -* [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces -* [mdns](https://github.com/hashicorp/mdns) - Simple mDNS (Multicast DNS) client/server library in Golang -* [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. -* [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. -* [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. -* [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. -* [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. - -## OpenGL - -*Libraries for using OpenGL in Go.* - -* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). -* [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. -* [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). -* [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. -* [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. - - -## ORM - -*Libraries that implement Object-Relational Mapping or datamapping techniques.* - -* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. -* [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. -* [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. -* [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. -* [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. -* [hood](https://github.com/eaigner/hood) - Database agnostic ORM for Go. -* [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. -* [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. -* [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. -* [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. - - -## Package Management - -*Libraries for package and dependency management.* - -* [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. -* [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) - A simple dependency manager for Go (golang), inspired by Bundler. -* [gopm](https://github.com/gpmgo/gopm) - Go Package Manager -* [gpm](https://github.com/pote/gpm) - Barebones dependency manager for Go. -* [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 - - -## Resource Embedding - -* [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. -* [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. -* [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. - - -## Science and Data Analysis - -*Libraries for scientific computing and data analyzing.* - -* [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) - A 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-fn](https://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg -* [go-gt](https://code.google.com/p/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://code.google.com/p/gocomplex/) - A complex number library for the Go programming language. -* [gofrac](https://github.com/anschelsc/gofrac) - A (goinstallable) fractions library for go with support for basic arithmetic. -* [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) - A pure Go graph theory library(data structure, algorith visualization) -* [gostat](https://code.google.com/p/gostat/) - A statistics library for the go language -* [mudlark-go](https://code.google.com/p/mudlark-go-pkgs/) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. -* [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go -* [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) - - -## Security - -*Libraries that are used to help make your application more secure.* - -* [BadActor](https://github.com/jaredfolkins/badactor) - An 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)" - -## Serialization - -*Libraries and tools for binary serialization* - -* [cbor](https://github.com/2tvenom/cbor) - Golang library for working with cbor 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. -* [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. -* [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 -* [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. - - -## Server Applications - -* [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. -* [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. -* [nsq](http://nsq.io/) - A realtime distributed messaging platform -* [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. - - -## Template Engines - -*Libraries and tools for templating and lexing.* - -* [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. -* [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. -* [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. -* [ego](https://github.com/benbjohnson/ego) - A lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. -* [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. -* [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. -* [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. -* [raymond](https://github.com/aymerick/raymond) - A 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/) - - -## Testing - -*Libraries for testing codebases and generating test data.* - -* Testing Frameworks - * [assert](https://github.com/bluesuncorp/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions - * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing - * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them - * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go - * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code - * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go - * [gocheck](http://labix.org/gocheck) - A more advanced testing framework alternative to gotest. - * [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. - * [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. - * [Hamcrest](https://github.com/rdrdr/hamcrest) - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. - * [restit](https://github.com/yookoala/restit) - A Go micro framework to help writing RESTful API integration test. - * [Testify](https://github.com/stretchr/testify) - A sacred extension to the standard go testing package. - -* 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 - * [go-txdb](https://github.com/DATA-DOG/go-txdb) - Single transaction based database driver mainly for testing purposes. - * [gomock](https://github.com/golang/mock) - Mocking framework for the Go programming language. - * [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) - A randomized testing system - * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values - * [gogenerate](https://github.com/arschles/gogenerate) - A Scalacheck-like library for Go - * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework - -## Text Processing - -*Libraries for parsing and manipulating texts.* - -* Specific Formats - * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go - * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. - * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer - * [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 - * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. - * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. - * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. - * [gommon/gytes](https://github.com/labstack/gommon/tree/master/gytes) - Format bytes to string. - * [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts - * [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) - A library for generating random strings from regular expressions. - * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. - * [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. - * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. - * [Slugify](https://github.com/avelino/slugify) - A 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. - * [xurls](https://github.com/mvdan/xurls) - Extract urls from text - - -## Third-party APIs - -*Libraries for accessing third party APIs.* - -* [anaconda](https://github.com/ChimeraCoder/anaconda) - A 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. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. -* [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. -* [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API -* [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API -* [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. -* [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. -* [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. -* [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS -* [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. -* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library -* [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go -* [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting -* [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library -* [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. -* [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. -* [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. -* [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. -* [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. -* [snapchat](https://github.com/jamieomatthews/gosnap) - Go wrapper for the snapchat 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 -* [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) -* [translate](https://github.com/poorny/translate) - Go online translation package -* [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. - -## Utilities - -*General utilities and tools to make your life easier.* - -* [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. -* [delve](https://github.com/derekparker/delve) - Go debugger. -* [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. -* [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. -* [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-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. -* [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. -* [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons -* [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) -* [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. -* [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. -* [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. -* [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 -* [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. -* [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. -* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go -* [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. -* [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. -* [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. -* [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go -* [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. -* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers -* [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 -* [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 -* [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API -* [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go -* [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. -* [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics -* [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. -* [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. -* [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 -* [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. - - -## Validation - -*Libraries for validation.* - -* [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs -* [validator](https://github.com/bluesuncorp/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving - - -## Version Control - -*Libraries for version control.* - -* [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks -* [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. -* [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. -* [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. - - -## Video - -*Libraries for manipulating video.* - -* [aac/h264](https://github.com/nareix/codec) - Golang aac/h264 encoder and decoder. -* [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. -* [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. -* [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. - - -## Web Frameworks - -*Full stack web frameworks.* - -* [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. -* [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. -* [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. -* [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. -* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) -* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API -* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's -* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go -* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. -* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go -* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. -* [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants. -* [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster -* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go -* [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. -* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. -* [Macaron](https://github.com/Unknwon/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. -* [Martini](https://github.com/go-martini/martini) - Martini is a powerful package for quickly writing modular web applications/services in Golang. -* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. -* [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. -* [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. -* [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. -* [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. -* [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. -* [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. -* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers -* [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. -* [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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. -* [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. -* [Zerver](https://github.com/cosiner/zerver) - Zerver is a expressive, modular, feature completed RESTful framework. -* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. - - -### Middlewares - -#### Actual middlewares - -* [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API -* [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST -* [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler -* [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends - -#### Libraries for creating HTTP middlewares - -* [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. -* [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. -* [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang -* [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. -* [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. -* [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses. -* [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application. - -# Tools - -Go software and plugins. - - -## Code Analysis - -* [doc](http://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. -* [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. -* [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. -* [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. -* [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. -* [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. -* [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. -* [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. -* [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. -* [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. -* [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. -* [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. - - -## Editor Plugins - -* [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. -* [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting -* [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language -* [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. -* [velour](https://github.com/velour/velour) - An IRC client for the acme editor. -* [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. -* [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. -* [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. - -## Go Tools - -* [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. - -## Software Packages - -Software written in Go. - - -### DevOps Tools - -* [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool -* [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile -* [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. -* [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). -* [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. -* [gaudi](http://gaudi.io/) - Gaudi automates the setup of isolated and decoupled dev environments. -* [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. -* [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. -* [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. -* [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. -* [Gogs](http://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. -* [gox](https://github.com/mitchellh/gox) - A 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. -* [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. -* [hk](https://github.com/heroku/hk) - Heroku command-line interface in Go. -* [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. -* [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. -* [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) - A Web-based IDE for Teams using Golang. - - -### Other Software -* [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine -* [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 -* [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. -* [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. -* [fleet](https://github.com/coreos/fleet) - A Distributed init System. -* [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. -* [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. -* [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. -* [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. -* [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine -* [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. -* [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. -* [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. -* [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. -* [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. -* [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. -* [plubi](https://github.com/norwack/plubi) - A Golang Plugin Based IRC Bot. -* [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. -* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. -* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) -* [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol. -* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. -* [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. -* [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. -* [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) - - - - - - - -# Resources - -Where to discover new Go libraries. - - -## Benchmarks - -* [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. -* [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. -* [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. -* [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. -* [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. -* [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. -* [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - A collection of benchmarks for popular Go database/SQL utilities. -* [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. -* [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. - - -## Conferences - -* [dotGo](http://www.dotgo.io) - Paris, France -* [GoCon](http://gocon.connpass.com/) - Tokyo, Japan -* [GolangUK](http://www.golanguk.com/) - London, UK -* [GopherChina](http://gopherchina.org) - Shanghai, China -* [GopherCon](http://www.gophercon.com/) - Denver, USA -* [GopherCon India](http://www.gophercon.in/) - Bengaluru, India -* [GothamGo](http://gothamgo.com/) - New York City, USA - -## E-Books - -* [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) -* [An Introduction to Programming in Go](http://www.golang-book.com/) -* [Build Web Application with Golang](http://astaxie.gitbooks.io/build-web-application-with-golang/) -* [Building Web Apps With Go](http://codegangsta.gitbooks.io/building-web-apps-with-go/) -* [Go Bootcamp](http://golangbootcamp.com) -* [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books -* [Learning Go](http://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) -* [Network Programming With Go](http://jan.newmarch.name/go/) - - -## Twitter - -* [@golang](https://twitter.com/golang) -* [@golang_news](https://twitter.com/golang_news) -* [@golangweekly](https://twitter.com/golangweekly) - - -## Websites - -* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - A curated list of awesome remote jobs. A lot of them is looking for Go hackers. -* [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. -* [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. -* [Go Blog](http://blog.golang.org) - The official Go blog -* [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki -* [godoc.org](http://godoc.org/) - Documentation for open source Go packages. -* [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art -* [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list -* [gowalker.org](https://gowalker.org) - Go Project API documentation. -* [r/Golang](http://www.reddit.com/r/golang) - News about Go. -* [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. - - -### Tutorials - -* [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go -* [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs -* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql -* [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers - - -## Windows - -* [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang From a7f4403cf1ad1242ba7a4bbccdeff42aa995afef Mon Sep 17 00:00:00 2001 From: sadlil Date: Tue, 8 Sep 2015 23:37:12 +0600 Subject: [PATCH 0183/3440] Add Go logger lib with console, file or ES logging. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 559f206f151..9aece3d2a13 100644 --- a/README.md +++ b/README.md @@ -404,10 +404,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for generating and working with log files.* * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. -* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. +* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. * [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib * [logrus](https://github.com/Sirupsen/logrus) - a structured logger for Go. From 238946f8527eb30ab45c14a277afa76c8bcc8383 Mon Sep 17 00:00:00 2001 From: Pavel Kiselev Date: Tue, 15 Sep 2015 04:29:46 +0500 Subject: [PATCH 0184/3440] Update README.md Added links to Slack / Telegram API --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 006042bf928..b6245ba7411 100644 --- a/README.md +++ b/README.md @@ -728,11 +728,13 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [slack](https://github.com/nlopes/slack) - Slack API in Go. * [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. * [snapchat](https://github.com/jamieomatthews/gosnap) - Go wrapper for the snapchat 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 +* [telebot](https://github.com/tucnak/telebot) - Telegram bot framework written in Go. * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. From a8fe653bc43705170c1f99b64baa1ca19890c028 Mon Sep 17 00:00:00 2001 From: Tony Worm Date: Thu, 17 Sep 2015 15:38:02 -0400 Subject: [PATCH 0185/3440] Add: frisby - a REST API testing framework --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 006042bf928..3a1e4409249 100644 --- a/README.md +++ b/README.md @@ -648,6 +648,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [assert](https://github.com/bluesuncorp/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them + * [frisby](https://github.com/verdverm/frisby) - a REST API testing framework * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go From e18ad148e25f7701fc4e2c1fcaeac01437cb312a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ram=C3=B3n?= Date: Fri, 18 Sep 2015 00:39:20 -0500 Subject: [PATCH 0186/3440] Adding query language section, add graphql-go. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 006042bf928..8193874f1e5 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Networking](#networking) - [OpenGL](#opengl) - [ORM](#orm) + - [Query Language](#query-language) - [Package Management](#package-management) - [Resource Embedding](#resource-embedding) - [Science and Data Analysis](#science-and-data-analysis) @@ -545,6 +546,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. +## Query Language + +* [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. + ## Package Management From 1fd7db8dd497ab876a405d6fa35cb274982730ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ram=C3=B3n?= Date: Fri, 18 Sep 2015 00:46:40 -0500 Subject: [PATCH 0187/3440] alphabetic order --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8193874f1e5..4e2469680ad 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Networking](#networking) - [OpenGL](#opengl) - [ORM](#orm) - - [Query Language](#query-language) - [Package Management](#package-management) + - [Query Language](#query-language) - [Resource Embedding](#resource-embedding) - [Science and Data Analysis](#science-and-data-analysis) - [Security](#security) @@ -546,10 +546,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. -## Query Language - -* [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. - ## Package Management @@ -566,6 +562,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments +## Query Language + +* [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. + + ## Resource Embedding * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. From 53ffb9adcbcb0f7014e3bbb56a55dd740d9a4f5d Mon Sep 17 00:00:00 2001 From: smallnest Date: Sat, 19 Sep 2015 06:53:50 +0800 Subject: [PATCH 0188/3440] add more popular go projects in github --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 006042bf928..e7f45515f0e 100644 --- a/README.md +++ b/README.md @@ -469,6 +469,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [gopsutil](https://github.com/shirou/gopsutil) - A 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 * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber @@ -534,6 +535,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* +* [beedb](https://github.com/astaxie/beedb) - A go ORM,support database/sql interface,pq/mysql/sqlite * [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. * [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. * [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. @@ -747,6 +749,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons @@ -757,8 +760,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. +* [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go +* [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. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. @@ -834,6 +840,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. * [Martini](https://github.com/go-martini/martini) - Martini is a powerful package for quickly writing modular web applications/services in Golang. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. +* [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. * [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. * [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. From 013521813668f9d0489b01718acf441325e98197 Mon Sep 17 00:00:00 2001 From: Daved Date: Tue, 22 Sep 2015 10:10:06 -0700 Subject: [PATCH 0189/3440] Added chain to http middleware list. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 006042bf928..3bc442fd636 100644 --- a/README.md +++ b/README.md @@ -861,6 +861,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis #### Libraries for creating HTTP middlewares * [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. +* [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). * [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. * [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang * [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. From 3b0ccc45fd5d74bedb2fe610d844a4e88caddd35 Mon Sep 17 00:00:00 2001 From: Daved Date: Tue, 22 Sep 2015 10:20:38 -0700 Subject: [PATCH 0190/3440] Added catena to http middleware list. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3bc442fd636..590e5c119ec 100644 --- a/README.md +++ b/README.md @@ -861,6 +861,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis #### Libraries for creating HTTP middlewares * [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. +* [catena](https://github.com/codemodus/catena) - http.Handler wrapper catenation (same API as "chain"). * [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). * [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. * [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang From 5f16faea96592f564c01e9cbb8f5594f6f4ad505 Mon Sep 17 00:00:00 2001 From: Daved Date: Tue, 22 Sep 2015 10:31:13 -0700 Subject: [PATCH 0191/3440] Added go-pkg-complete to Go Tools list. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 590e5c119ec..fe3b1887d18 100644 --- a/README.md +++ b/README.md @@ -905,6 +905,7 @@ Go software and plugins. ## Go Tools * [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. +* [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. ## Software Packages From 6d3705ba5df233fa5ccb9704853794756532b75a Mon Sep 17 00:00:00 2001 From: Daved Date: Tue, 22 Sep 2015 10:35:46 -0700 Subject: [PATCH 0192/3440] Added kace to Text Processing list. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fe3b1887d18..c1799e56c46 100644 --- a/README.md +++ b/README.md @@ -700,6 +700,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text From 2b197a4705f0b89cd5f00e16f88972878d32d10a Mon Sep 17 00:00:00 2001 From: Daved Date: Tue, 22 Sep 2015 10:37:35 -0700 Subject: [PATCH 0193/3440] Added parth to Text Processing list. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c1799e56c46..ead99fb8af6 100644 --- a/README.md +++ b/README.md @@ -701,6 +701,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * 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. + * [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text From bd90dacbbbf8f6e4f3e330d62b79ce9e119a7c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ram=C3=B3n?= Date: Tue, 22 Sep 2015 21:38:54 -0500 Subject: [PATCH 0194/3440] Add two libs to Query Language section. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 4e2469680ad..e87be61e5b5 100644 --- a/README.md +++ b/README.md @@ -564,9 +564,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Query Language +* [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. +* [graphql](https://github.com/sevki/graphql) - GraphQL implementation in go. * [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. + ## Resource Embedding * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. From 7ec437d03089c950a34a15bec805625c2288a449 Mon Sep 17 00:00:00 2001 From: Chzyer Date: Wed, 23 Sep 2015 21:04:34 +0800 Subject: [PATCH 0195/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 33b03e6127b..0b041831c2e 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. +* [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. From 19c7079412fb6cd13694ed0a6bdeea0bc60180e7 Mon Sep 17 00:00:00 2001 From: Chzyer Date: Wed, 23 Sep 2015 22:58:49 +0800 Subject: [PATCH 0196/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b041831c2e..dcb1981fe16 100644 --- a/README.md +++ b/README.md @@ -124,8 +124,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. -* [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. +* [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. From ad196ffe6f37603ab3ef95c878b685cfccc5816e Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Thu, 24 Sep 2015 08:03:59 -0400 Subject: [PATCH 0197/3440] Update repo links to a few packages I recently migrated some code from one organization to another and am just updating the links to point directly to the new location: Repos affected: * https://github.com/go-playground/validator * https://github.com/go-playground/assert * https://github.com/go-playground/overalls --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 33b03e6127b..54ee14783e8 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for help with continuous integration* * [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. -* [overalls](https://github.com/bluesuncorp/overalls) - Multi-Package go project coverprofile for tools like goveralls +* [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls ## CSS Preprocessors @@ -648,7 +648,7 @@ 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/bluesuncorp/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions + * [assert](https://github.com/go-playground/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them * [frisby](https://github.com/verdverm/frisby) - a REST API testing framework @@ -799,7 +799,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for validation.* * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs -* [validator](https://github.com/bluesuncorp/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving +* [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving ## Version Control From 32b1d38ac9c0300268847feaf41e85631f7bbb05 Mon Sep 17 00:00:00 2001 From: Julien Feltesse Date: Thu, 24 Sep 2015 19:15:05 +0200 Subject: [PATCH 0198/3440] update repos addresses / fix some trailing whitespace --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 33b03e6127b..d073d468cb8 100644 --- a/README.md +++ b/README.md @@ -248,7 +248,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. * [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/couchbaselabs/gocb) - Official Couchbase Go SDK + * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK * [gocql](http://gocql.github.io) - A 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 @@ -408,7 +408,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. -* [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib +* [logex](https://github.com/chzyer/logex) - An golang log lib, supports tracking and level, wrap by standard log lib * [logger](http://github.com/azer/logger) - Minimalistic logging library for Go. * [logrus](https://github.com/Sirupsen/logrus) - a 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/). @@ -488,7 +488,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [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 straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. * [porter2](https://github.com/surge/porter2) - Really fast Porter 2 stemmer. * [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) @@ -536,7 +536,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* -* [beedb](https://github.com/astaxie/beedb) - A go ORM,support database/sql interface,pq/mysql/sqlite +* [beedb](https://github.com/astaxie/beedb) - A go ORM,support database/sql interface,pq/mysql/sqlite * [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. * [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. * [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. @@ -755,7 +755,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go +* [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons @@ -769,8 +769,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go -* [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. +* [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. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. From b749f722d172bd67119d9287c726daf40c7fd75d Mon Sep 17 00:00:00 2001 From: Kiril Minkov Date: Fri, 25 Sep 2015 14:08:24 +0100 Subject: [PATCH 0199/3440] Adding go-geoindex --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d073d468cb8..fae953122d1 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [trie](https://github.com/derekparker/trie) - Trie implementation in Go * [ttlcache](https://github.com/diegobernardes/ttlcache) - An in-memory LRU string-interface{} map with expiration for golang * [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. +* [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. ## Database From aec0c3a3cd206ed51237aefd1967c81cdaf0967d Mon Sep 17 00:00:00 2001 From: Tomas Aparicio Date: Sat, 26 Sep 2015 22:01:31 +0100 Subject: [PATCH 0200/3440] feat: add filetype package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d073d468cb8..4d58498aa98 100644 --- a/README.md +++ b/README.md @@ -752,6 +752,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/fromYukki/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. * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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. From d2e302fc75dbb009c6dc9397fca25391856bc433 Mon Sep 17 00:00:00 2001 From: Tim Heckman Date: Sat, 26 Sep 2015 15:01:36 -0700 Subject: [PATCH 0201/3440] relocate go-stats to Standard CLI section The `go-stats` package, which is a command line parser, was in the `Miscellaneous` section. Instead, it should be in the `Standard CLI` section. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d58498aa98..075d4841df7 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. +* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser * [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. @@ -467,7 +468,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). -* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [gopsutil](https://github.com/shirou/gopsutil) - A 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 From 6e601765584f1515651ee704655409a2a78d948d Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Sun, 27 Sep 2015 18:22:29 +0200 Subject: [PATCH 0202/3440] Add restic This commit adds a link to restic, a fast and secure backup program that uses de-deuplication. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 19484ef2611..28427f92f0e 100644 --- a/README.md +++ b/README.md @@ -974,6 +974,7 @@ Software written in Go. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. * [plubi](https://github.com/norwack/plubi) - A Golang Plugin Based IRC Bot. * [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. +* [restic](https://github.com/restic/restic) - De-duplicating backup program. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) * [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol. From 4d50af6bbb5e88d11bcf81d9b8cfe9b21ace8b59 Mon Sep 17 00:00:00 2001 From: Ben Huson Date: Tue, 29 Sep 2015 13:09:33 -0400 Subject: [PATCH 0203/3440] Adding Vestigo - implements a performant, stand-alone, HTTP compliant URL Router for go web applications. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 28427f92f0e..842bf7f15fc 100644 --- a/README.md +++ b/README.md @@ -859,6 +859,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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. +* [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. * [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. * [Zerver](https://github.com/cosiner/zerver) - Zerver is a expressive, modular, feature completed RESTful framework. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. From 30239977c0ae180e25b2a9b7c5d73093b37be1ec Mon Sep 17 00:00:00 2001 From: Kiril Minkov Date: Wed, 30 Sep 2015 14:45:35 +0100 Subject: [PATCH 0204/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fae953122d1..300c6839b86 100644 --- a/README.md +++ b/README.md @@ -180,6 +180,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. * [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. * [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures +* [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing @@ -187,7 +188,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [trie](https://github.com/derekparker/trie) - Trie implementation in Go * [ttlcache](https://github.com/diegobernardes/ttlcache) - An in-memory LRU string-interface{} map with expiration for golang * [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. -* [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. ## Database From 88279377a29014accc3f732ae318c2b8f3e9f071 Mon Sep 17 00:00:00 2001 From: Norwack Date: Thu, 1 Oct 2015 12:17:28 +0200 Subject: [PATCH 0205/3440] remove unmaintained package --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f9e45e61c96..dacf2a1f293 100644 --- a/README.md +++ b/README.md @@ -972,7 +972,6 @@ Software written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. -* [plubi](https://github.com/norwack/plubi) - A Golang Plugin Based IRC Bot. * [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. From d0381e29c44c650493f6aa0a24a34b693a42d828 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Sat, 3 Oct 2015 10:41:21 -0500 Subject: [PATCH 0206/3440] Add pgx to database driver list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f293..abe500f4fc5 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). + * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. * NoSQL Databases From 2af94f3ad0c1b1e381a61d723a39595783817918 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Mon, 5 Oct 2015 18:00:23 +0300 Subject: [PATCH 0207/3440] Added github.com/valyala/fasttemplate --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f293..de3f3216ae8 100644 --- a/README.md +++ b/README.md @@ -636,6 +636,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. * [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. * [ego](https://github.com/benbjohnson/ego) - A 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/). * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. * [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. * [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. From 58c4c4cc4129296662d87db9b6c1185e63eae4d8 Mon Sep 17 00:00:00 2001 From: Gilles Fabio Date: Wed, 7 Oct 2015 10:49:13 +0200 Subject: [PATCH 0208/3440] Add Limiter and Deepcopier packages. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index dacf2a1f293..51a44012503 100644 --- a/README.md +++ b/README.md @@ -751,6 +751,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *General utilities and tools to make your life easier.* * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. +* [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/fromYukki/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. @@ -870,6 +871,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API * [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST +* [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go * [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler * [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends From 52090c12f0776b31e35a7ac52a5e9cd358a4dd8b Mon Sep 17 00:00:00 2001 From: Francois Date: Thu, 8 Oct 2015 13:31:04 +0200 Subject: [PATCH 0209/3440] Adding rerun --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f293..69c9443227c 100644 --- a/README.md +++ b/README.md @@ -788,6 +788,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. +* [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. From 4136294b1fed8951f2a5c9dcbead69d4183ce0b2 Mon Sep 17 00:00:00 2001 From: jawher Date: Thu, 8 Oct 2015 21:37:22 +0200 Subject: [PATCH 0210/3440] Add mow.cli --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f293..160333c6430 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. +* [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. From 047eee0e0601a35e752edda622da2d682a871191 Mon Sep 17 00:00:00 2001 From: Vinicius Souza Date: Fri, 9 Oct 2015 10:46:25 -0300 Subject: [PATCH 0211/3440] Add Medium SDK for Medium's OAuth2 API --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f293..bfd982ca568 100644 --- a/README.md +++ b/README.md @@ -731,6 +731,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. * [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) - A Golang SDK for Medium's OAuth2 API * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. * [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. From 5c912566ffd362fb8931e14e6aa4767574a3020b Mon Sep 17 00:00:00 2001 From: Pavel Paulau Date: Tue, 13 Oct 2015 23:08:28 -0700 Subject: [PATCH 0212/3440] Add Prometheus --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f293..6ad298b6b45 100644 --- a/README.md +++ b/README.md @@ -206,6 +206,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. From 75eec4f90194665f82b411274496de45b0deaa4e Mon Sep 17 00:00:00 2001 From: Tobias Schmid Date: Wed, 14 Oct 2015 10:15:11 +0200 Subject: [PATCH 0213/3440] Add cockroach to databases --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f293..4a8deb5496a 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. * [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. +* [cockroach](https://github.com/cockroachdb/cockroach) - A Scalable, Geo-Replicated, Transactional Datastore * [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server. * [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. From 1c2f83e6ef0a95ba3caf09b844385731b8ef0e68 Mon Sep 17 00:00:00 2001 From: Fabien Herfray Date: Wed, 14 Oct 2015 12:21:09 +0200 Subject: [PATCH 0214/3440] Arangolite ArangoDB driver added --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782cd52..b94bbab9a26 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * NoSQL Databases * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. + * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. * [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 From 9f864c9ee4220ecf1decf887b1de4dadbca371ac Mon Sep 17 00:00:00 2001 From: Tobias Schmid Date: Wed, 14 Oct 2015 13:08:03 +0200 Subject: [PATCH 0215/3440] Add bosun --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782cd52..949aad99d6a 100644 --- a/README.md +++ b/README.md @@ -934,6 +934,7 @@ Software written in Go. * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile * [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. +* [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. * [gaudi](http://gaudi.io/) - Gaudi automates the setup of isolated and decoupled dev environments. From 67609bc312537ceb7b8295d50fb6a10ab2bf3b37 Mon Sep 17 00:00:00 2001 From: miolini Date: Wed, 14 Oct 2015 23:11:42 +0300 Subject: [PATCH 0216/3440] Add project Datacounter. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782cd52..f76e2370c2c 100644 --- a/README.md +++ b/README.md @@ -471,6 +471,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [gopsutil](https://github.com/shirou/gopsutil) - A 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 From db257a0f26a456a57ed51e9d62820c71283d119c Mon Sep 17 00:00:00 2001 From: AJ Bourg Date: Wed, 14 Oct 2015 14:24:31 -0600 Subject: [PATCH 0217/3440] Update README.md Gaudi is being discontinued: http://marmelab.com/blog/2014/11/06/retiring-gaudi.html --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a19b782cd52..7700123417f 100644 --- a/README.md +++ b/README.md @@ -936,7 +936,6 @@ Software written in Go. * [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. -* [gaudi](http://gaudi.io/) - Gaudi automates the setup of isolated and decoupled dev environments. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. From d43efa7e84b6907bda07e8a8a805d6325bd15bb1 Mon Sep 17 00:00:00 2001 From: Montana Flynn Date: Thu, 15 Oct 2015 13:04:18 -0700 Subject: [PATCH 0218/3440] Add stats package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782cd52..818eb0a59c1 100644 --- a/README.md +++ b/README.md @@ -596,6 +596,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gostat](https://code.google.com/p/gostat/) - A statistics library for the go language * [mudlark-go](https://code.google.com/p/mudlark-go-pkgs/) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. * [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go +* [stats](https://github.com/montanaflynn/stats) - A 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) From e8a5ebf6c3927dbbe2ddb8f6c4780dae7998cb21 Mon Sep 17 00:00:00 2001 From: Sam Couch Date: Thu, 15 Oct 2015 23:53:44 -0400 Subject: [PATCH 0219/3440] Add clarifai client library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782cd52..49d57ee0947 100644 --- a/README.md +++ b/README.md @@ -719,6 +719,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [anaconda](https://github.com/ChimeraCoder/anaconda) - A 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. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. * [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. +* [clarifai](https://github.com/samuelcouch/clarifai) - A Go client library for interfacing with the Clarifai API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API * [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. From bb26868f283bd245305b535d86031ed53d803d84 Mon Sep 17 00:00:00 2001 From: oskca Date: Fri, 16 Oct 2015 13:38:00 +0800 Subject: [PATCH 0220/3440] add Go bindings for Sciter for cross platform GUI sciter is a cross platform GUI toolkit which is easy to deploy to Linux,Windows and OSX. Though not open sourced, but the sicter libraries are free to use for commercial or non-commercial applications. I created this package with cgo, and hope it a good choice for Golang GUI programming. :) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782cd52..03c7f0277a5 100644 --- a/README.md +++ b/README.md @@ -373,6 +373,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. +* [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. ## Hardware From 8254c3fb5cb1428560252b81de02ab8682401e4c Mon Sep 17 00:00:00 2001 From: oskca Date: Fri, 16 Oct 2015 13:40:55 +0800 Subject: [PATCH 0221/3440] update the items orders --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 03c7f0277a5..b41d50311e2 100644 --- a/README.md +++ b/README.md @@ -371,9 +371,10 @@ 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. * [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3. * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. +* [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. -* [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. + ## Hardware From f55bc2767e2ec0ac26c12ed1d0a061d37fb6bc3c Mon Sep 17 00:00:00 2001 From: Stefan von Cavallar Date: Fri, 16 Oct 2015 18:31:50 +1100 Subject: [PATCH 0222/3440] Added "celeriac" library to Distributed/Grid Computing. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782cd52..1c951a86809 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* +* [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go * [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. From a15199136e376b7e7bd2e59f7cf6c1aadaf5dbaf Mon Sep 17 00:00:00 2001 From: mashuai Date: Fri, 16 Oct 2015 16:07:18 +0800 Subject: [PATCH 0223/3440] add gcfg in Configuration --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782cd52..09e25514b67 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. * [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 * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [ini](https://github.com/go-ini/ini) - Go package for read and write INI files * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files From ce432654db83cda4ef1f86dbc261bf1f24db9bd2 Mon Sep 17 00:00:00 2001 From: mashuai Date: Fri, 16 Oct 2015 16:14:32 +0800 Subject: [PATCH 0224/3440] Add httptreemux to Web Frameworks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 09e25514b67..2e894f2ff46 100644 --- a/README.md +++ b/README.md @@ -847,6 +847,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. +* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go.Inspiration from httprouter * [Macaron](https://github.com/Unknwon/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. * [Martini](https://github.com/go-martini/martini) - Martini is a powerful package for quickly writing modular web applications/services in Golang. From 7a8b478e895017257253bd858e798396c9377c7e Mon Sep 17 00:00:00 2001 From: mashuai Date: Fri, 16 Oct 2015 16:22:38 +0800 Subject: [PATCH 0225/3440] add migrate to Database tools --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e894f2ff46..05f6f0c4c68 100644 --- a/README.md +++ b/README.md @@ -218,6 +218,7 @@ 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. * [goose](https://bitbucket.org/liamstask/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. * [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. +* [migrate](https://github.com/mattes/migrate) - Database migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. * [orchestrator](https://github.com/outbrain/orchestrator) - MySQL replication topology manager & visualizer * [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser From a6f3a7ba31a62b0b1a357439c997e54295025d5b Mon Sep 17 00:00:00 2001 From: jerome-laforge Date: Sat, 17 Oct 2015 15:09:37 +0200 Subject: [PATCH 0226/3440] Add log15 into Logging --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7700123417f..a9adf631b3a 100644 --- a/README.md +++ b/README.md @@ -412,6 +412,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [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 * [logex](https://github.com/chzyer/logex) - An golang log lib, supports tracking and level, wrap by standard log lib * [logger](http://github.com/azer/logger) - Minimalistic logging library for Go. * [logrus](https://github.com/Sirupsen/logrus) - a structured logger for Go. From 01cc236879070ea490e3ff6548144fb08d7b0404 Mon Sep 17 00:00:00 2001 From: Swapnil Agarwal Date: Sun, 18 Oct 2015 16:43:07 +0530 Subject: [PATCH 0227/3440] Fix typo --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 54847d5dba9..31c03e69fad 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,7 +34,7 @@ To be on the list, project repositories should adhere to these quality standards ## Reporting issues -Please open an issue if you would like ot discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. +Please open an issue if you would like to discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition but are otherwise worthy of being on the list. From 6f8e6e8b0d9d4be335ddf25769b55410b119b86d Mon Sep 17 00:00:00 2001 From: Swapnil Agarwal Date: Mon, 19 Oct 2015 09:06:01 +0530 Subject: [PATCH 0228/3440] Add termloop under Game Development --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9adf631b3a..8f5389b02f2 100644 --- a/README.md +++ b/README.md @@ -351,6 +351,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework +* [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox ## Generation & Generics From ac60f3e38184796590dba53a80f3903fcc555601 Mon Sep 17 00:00:00 2001 From: Bruno Medeiros Date: Tue, 20 Oct 2015 17:41:26 +0100 Subject: [PATCH 0229/3440] Add Goclipse entry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8f5389b02f2..5191e22f49d 100644 --- a/README.md +++ b/README.md @@ -914,6 +914,7 @@ Go software and plugins. * [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. * [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) - An Eclipse plugin for Go. * [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language * [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. * [velour](https://github.com/velour/velour) - An IRC client for the acme editor. From 8284bcc4abe4ace09aed6ea064094d069fb025f6 Mon Sep 17 00:00:00 2001 From: Alex Palaistras Date: Thu, 22 Oct 2015 16:32:21 +0100 Subject: [PATCH 0230/3440] Add link for `go-php` in `Embeddable Scripting Languages` section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5191e22f49d..09e176d1243 100644 --- a/README.md +++ b/README.md @@ -313,6 +313,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - A 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) - a Lua 5.1 VM and compiler written in Go From 30a5bef330b0709eda56c88df46ea7c66bb4baac Mon Sep 17 00:00:00 2001 From: Mike Hix Date: Fri, 23 Oct 2015 11:41:35 -0700 Subject: [PATCH 0231/3440] Add go-dsp library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 09e176d1243..0d44c2b9468 100644 --- a/README.md +++ b/README.md @@ -587,6 +587,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [evaler](https://github.com/soniah/evaler) - A 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://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg * [go-gt](https://code.google.com/p/go-gt/) - Graph theory algorithms written in "Go" language * [go.matrix](https://github.com/skelterjohn/go.matrix) - linear algebra for go (has been stalled) From 59d1f8f9d7b9ec0e38fbfa38fb3eb9c162b35904 Mon Sep 17 00:00:00 2001 From: Swapnil Agarwal Date: Thu, 22 Oct 2015 17:24:04 +0530 Subject: [PATCH 0232/3440] Add slack invite link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5191e22f49d..18fdd1db3e0 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A curated list of awesome Go frameworks, libraries and software. Inspired by [aw Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! -[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! +[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! ([Request an invite](https://bit.ly/go-slack-signup), then join the #awesome channel.) #### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!* From 7c24587f65413b3e888fe36edcb5c1a76c21fd4a Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 24 Oct 2015 13:32:53 +0100 Subject: [PATCH 0233/3440] README.md: add github.com/tomcraven/goga genetic algorithm machine learning library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3ab6d49619..3c34cd5fd25 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [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 From c0c245e517bcb90baf509e0ef25f8ddd969dc04e Mon Sep 17 00:00:00 2001 From: Ugorji Nwoke Date: Sat, 24 Oct 2015 11:26:46 -0400 Subject: [PATCH 0234/3440] go-codec de-facto library for cbor, msgpack, json --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d3ab6d49619..53f4acac807 100644 --- a/README.md +++ b/README.md @@ -620,9 +620,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries and tools for binary serialization* -* [cbor](https://github.com/2tvenom/cbor) - Golang library for working with cbor 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 * [goprotobuf](https://github.com/golang/protobuf) - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. * [mapstructure](https://github.com/mitchellh/mapstructure) - Go library for decoding generic map values into native Go structures. From ad98a1e46dfa118177d1927518d4be6da0a0d594 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 24 Oct 2015 09:46:47 -0700 Subject: [PATCH 0235/3440] Update README.md --- README.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d3ab6d49619..8a4f042cb33 100644 --- a/README.md +++ b/README.md @@ -284,14 +284,18 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* -* [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go -* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. -* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. -* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. -* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. -* [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. -* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. +* Distributed Systems + * [glow](https://github.com/chrislusf/glow) - An easy-to-use distributed computation system written in Go, an alternative to Hadoop Map Reduce, Spark, Flint, etc. + +* Libraries + * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go + * [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. + * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. + * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. + * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. + * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. + * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. + * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. ## Email From 402d10ad68ddb15b7352e3065ef372fd1222d5f4 Mon Sep 17 00:00:00 2001 From: Sioro Neoku Date: Sun, 25 Oct 2015 16:46:05 +0100 Subject: [PATCH 0236/3440] Add go-peerflix --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2fc6c83c3..368d23a1898 100644 --- a/README.md +++ b/README.md @@ -293,6 +293,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. + * [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. ## Email From 149c540cc348df2cc147a6fbdd4bc651ae741dfa Mon Sep 17 00:00:00 2001 From: Eduardo Nunes Pereira Date: Mon, 26 Oct 2015 22:20:08 -0200 Subject: [PATCH 0237/3440] Added SSLB --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2fc6c83c3..dbe1785927d 100644 --- a/README.md +++ b/README.md @@ -533,6 +533,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. +* [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. ## OpenGL From fc5e82af9087e12cd7a5233aca89ab653ebe4710 Mon Sep 17 00:00:00 2001 From: Rodrigo Muniz Date: Tue, 27 Oct 2015 08:57:09 -0200 Subject: [PATCH 0238/3440] LiteIDE included --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2fc6c83c3..d6599dcb390 100644 --- a/README.md +++ b/README.md @@ -983,6 +983,7 @@ Software written in Go. * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine * [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. +* [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. * [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. From 9583948391136f23a69f36675b63d8107b33714d Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Tue, 27 Oct 2015 15:40:22 +0200 Subject: [PATCH 0239/3440] Update gotk3 URL The upstream project has not been active for over a year. Update the URL to point to an active fork. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d2fc6c83c3..744328bc83c 100644 --- a/README.md +++ b/README.md @@ -375,7 +375,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. -* [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3. +* [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. From 23d72edb38d218f7decfd26605370be1ef9a1ab2 Mon Sep 17 00:00:00 2001 From: AJ Bourg Date: Tue, 27 Oct 2015 12:01:17 -0600 Subject: [PATCH 0240/3440] Add go-getter to the network section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2785c96c8..22a1cbca3c2 100644 --- a/README.md +++ b/README.md @@ -521,6 +521,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dns](https://github.com/miekg/dns) - Go library for working with DNS * [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. * [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) - A Go library for downloading files or directories from various sources using a URL. * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). * [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings * [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap From 45cf440b7ce83f89228ab6f9ef0e0237e9b6c4be Mon Sep 17 00:00:00 2001 From: Derek Tracy Date: Tue, 27 Oct 2015 14:33:03 -0400 Subject: [PATCH 0241/3440] add gb --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2785c96c8..34454f16795 100644 --- a/README.md +++ b/README.md @@ -937,6 +937,7 @@ Go software and plugins. ## Go Tools * [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. +* [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. ## Software Packages From 2c43788a4c0d46640f9e94aeee6fbbd1829c741f Mon Sep 17 00:00:00 2001 From: AJ Bourg Date: Tue, 27 Oct 2015 13:09:36 -0600 Subject: [PATCH 0242/3440] Add s3gof3r to list of devops tools. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2785c96c8..393f7ba246e 100644 --- a/README.md +++ b/README.md @@ -965,6 +965,7 @@ Software written in Go. * [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. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. +* [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [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) - A Web-based IDE for Teams using Golang. From 4017e21b88d14e44164330abe6a84863e3b65abc Mon Sep 17 00:00:00 2001 From: Kazi Sadlil Rhythom Date: Wed, 28 Oct 2015 13:26:42 +0600 Subject: [PATCH 0243/3440] added go trigger in utilities. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f9b44af499..80bfa9c31c2 100644 --- a/README.md +++ b/README.md @@ -787,6 +787,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go +* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. * [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. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. From 32c1f3a0ab6ba43c32fd4799db81d0b61ec3ada2 Mon Sep 17 00:00:00 2001 From: Kazi Sadlil Rhythom Date: Wed, 28 Oct 2015 13:30:18 +0600 Subject: [PATCH 0244/3440] position updated. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 80bfa9c31c2..96d255e6645 100644 --- a/README.md +++ b/README.md @@ -774,6 +774,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go +* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons @@ -787,7 +788,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go -* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. * [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. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. From 2de51725e8ba1bcb15a7c23c86057a5e70db8d82 Mon Sep 17 00:00:00 2001 From: Nathan Osman Date: Wed, 28 Oct 2015 22:57:09 -0700 Subject: [PATCH 0245/3440] Added Hectane to the Email section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a95868899b9..ef5d60b311f 100644 --- a/README.md +++ b/README.md @@ -304,6 +304,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go. * [go-dkim](https://github.com/toorop/go-dkim) - A DKIM library, to sign & verify email. * [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 * [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 From 59e067b8a6e76ff5c1fc30566c92e57724bb1b31 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 30 Oct 2015 19:12:33 +0100 Subject: [PATCH 0246/3440] Add hsync --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a95868899b9..b1bfdcddc5d 100644 --- a/README.md +++ b/README.md @@ -986,6 +986,7 @@ Software written in Go. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. +* [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine * [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. From c91ce7b6e066bd5c5d96c65816ed49fab1eff54a Mon Sep 17 00:00:00 2001 From: chrislusf Date: Sat, 31 Oct 2015 10:19:56 -0700 Subject: [PATCH 0247/3440] Revert "Update README.md" This reverts commit 0edb29955d929cb418409b7adb5da47b8fc415da. --- README.md | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 8a4f042cb33..d3ab6d49619 100644 --- a/README.md +++ b/README.md @@ -284,18 +284,14 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* -* Distributed Systems - * [glow](https://github.com/chrislusf/glow) - An easy-to-use distributed computation system written in Go, an alternative to Hadoop Map Reduce, Spark, Flint, etc. - -* Libraries - * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go - * [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. - * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. - * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. - * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. - * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. - * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. +* [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go +* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. +* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. +* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. +* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. +* [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. +* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. + * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. ## Email From 66e400ea32e49513a2fd13636d4be1711a4a91d6 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 31 Oct 2015 11:28:00 -0700 Subject: [PATCH 0248/3440] add "glow" for distributed computing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3ab6d49619..cdfdd482402 100644 --- a/README.md +++ b/README.md @@ -286,6 +286,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go * [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. +* [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. From 22802366d74c62615cda26bcd9ca015f6b1cdff2 Mon Sep 17 00:00:00 2001 From: sunwxg Date: Sun, 1 Nov 2015 20:58:59 +0800 Subject: [PATCH 0249/3440] Add goshark --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a95868899b9..44f321c006e 100644 --- a/README.md +++ b/README.md @@ -536,6 +536,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. +* [goshark](https://github.com/sunwxg/goshark) - Package goshark use tshark to decode IP packet and create data struct to analyse packet. ## OpenGL From 2672c3a2ee03594aa0fb178ee274db64bdb42daf Mon Sep 17 00:00:00 2001 From: sunwxg Date: Sun, 1 Nov 2015 21:33:17 +0800 Subject: [PATCH 0250/3440] Add goshark sorted alphabetically --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44f321c006e..00454f26ed0 100644 --- a/README.md +++ b/README.md @@ -526,6 +526,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). * [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings * [gopcap](https://github.com/akrennmair/gopcap) - A 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) - A Go package for quickly writing tcp applications * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. @@ -536,7 +537,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. -* [goshark](https://github.com/sunwxg/goshark) - Package goshark use tshark to decode IP packet and create data struct to analyse packet. ## OpenGL From c9aa4233eb1429f033069839187e0e80b942af69 Mon Sep 17 00:00:00 2001 From: Dalton Hubble Date: Mon, 2 Nov 2015 01:33:16 -0800 Subject: [PATCH 0251/3440] Add gologin package to auth & oauth section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f9b44af499..8d6840cec28 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. +* [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. From 1eab89c483293313b12e19d799381eaa4f3c075d Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Mon, 2 Nov 2015 10:42:54 -0500 Subject: [PATCH 0252/3440] Add webhooks library * Add Github Webhook library, more service to come i.e. BitBucket.. https://github.com/go-playground/webhooks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f1460dce554..cddae0f2d53 100644 --- a/README.md +++ b/README.md @@ -834,6 +834,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. +* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub.. more services to come ## Video From 14adeea3a678ec0b707fa35e23b42611056e47b7 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Mon, 2 Nov 2015 12:44:09 -0500 Subject: [PATCH 0253/3440] moving from version control section to 3rd party API --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cddae0f2d53..8b31eae0e37 100644 --- a/README.md +++ b/README.md @@ -766,6 +766,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. +* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub.. more services to come ## Utilities @@ -834,7 +835,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. -* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub.. more services to come ## Video From 95e3407a0b5fdc63e586e92d79cf35a0ce5ce2ea Mon Sep 17 00:00:00 2001 From: Drew Wells Date: Sun, 9 Aug 2015 08:50:26 -0500 Subject: [PATCH 0254/3440] add wellington and low level libsass wrapper Adds the go-libsass lib for writing your own Sass tooling. The default implementation, wellington, implements a tool for working on Sass projects. Wellington adds the same spriting functions as available in Compass. Signed-off-by: Drew Wells --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f1460dce554..0895d913759 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. ## Data Structures @@ -1008,6 +1009,7 @@ Software written in Go. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) +* [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass) From 95bc86716be17a394b9346fd506dbfe4ced1ec18 Mon Sep 17 00:00:00 2001 From: Arinde Eniola Date: Wed, 4 Nov 2015 11:36:06 +0100 Subject: [PATCH 0255/3440] add Go compilers to awesome go's sections --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index a03a2b7c8b1..90a5dbe65d6 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Forms](#forms) - [Game Development](#game-development) - [Generation & Generics](#generation--generics) + - [Go Compilers](#go-compilers) - [GUI](#gui) - [Hardware](#hardware) - [Images](#images) @@ -374,6 +375,15 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. +## Go Compilers + +*Tools for compiling Go to other languages* + +* [gopherjs](https://github.com/gopherjs/gopherjs) - A compiler from Go to JavaScript. +* [llgo](https://github.com/go-llvm/llgo) - LLVM-based compiler for Go. +* [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. + + ## GUI *Libraries for building GUI Applications* From e0190249ee4c1948fda82b82ce5806a417d71751 Mon Sep 17 00:00:00 2001 From: Alvaro Viebrantz Date: Thu, 5 Nov 2015 11:36:11 -0300 Subject: [PATCH 0256/3440] Add dat library for postgres database access --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a03a2b7c8b1..ca8a4f6c29a 100644 --- a/README.md +++ b/README.md @@ -230,6 +230,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *SQL query builder, libraries for building and using SQL.* +* [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) - An idiomatic SQL builder and query library. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. From f570d58d49c95c1ea84389b17f8488faa1010082 Mon Sep 17 00:00:00 2001 From: Bam Azizi Date: Fri, 6 Nov 2015 14:19:56 -0500 Subject: [PATCH 0257/3440] add JobRunner cron scheduler --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3cc1e73feb6..50fff321c48 100644 --- a/README.md +++ b/README.md @@ -809,6 +809,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. +* [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. * [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go From 83bd85f7b149ce5f7aea812c1134bf56ee7b02c3 Mon Sep 17 00:00:00 2001 From: Wesley Hill Date: Tue, 10 Nov 2015 03:06:02 +0000 Subject: [PATCH 0258/3440] Replace outdated Snapchat library with an updated one. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3cc1e73feb6..2dc786ae7d9 100644 --- a/README.md +++ b/README.md @@ -770,7 +770,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [shopify](https://github.com/rapito/go-shopify) - Go Library to make CRUD request to the Shopify API. * [slack](https://github.com/nlopes/slack) - Slack API in Go. * [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. -* [snapchat](https://github.com/jamieomatthews/gosnap) - Go wrapper for the snapchat API +* [snapchat](https://github.com/neuegram/ghost) - Go Library for the Snapchat 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 From a637d36e77f7ec5409d5fcbc547af7399ae49757 Mon Sep 17 00:00:00 2001 From: Wesley Hill Date: Tue, 10 Nov 2015 10:38:05 +0000 Subject: [PATCH 0259/3440] Renamed 'snapchat' to 'ghost' --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2dc786ae7d9..45287ce4b4d 100644 --- a/README.md +++ b/README.md @@ -754,6 +754,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. * [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) 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 API. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. @@ -770,7 +771,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [shopify](https://github.com/rapito/go-shopify) - Go Library to make CRUD request to the Shopify API. * [slack](https://github.com/nlopes/slack) - Slack API in Go. * [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. -* [snapchat](https://github.com/neuegram/ghost) - Go Library for the Snapchat 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 From 0bb0bbb3ff3fecab91bd2f01b95ec8e1e5e1324d Mon Sep 17 00:00:00 2001 From: J Cuga Date: Fri, 13 Nov 2015 11:13:17 -0500 Subject: [PATCH 0260/3440] Added golongpoll for web pub-sub vialongpolling --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f74fe13945e..d91671cded4 100644 --- a/README.md +++ b/README.md @@ -876,6 +876,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. * [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants. +* [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple. * [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster * [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. From 186bab4360f325341e07834b2d7792793592ebbe Mon Sep 17 00:00:00 2001 From: ReadmeCritic Date: Fri, 13 Nov 2015 12:31:47 -0800 Subject: [PATCH 0261/3440] Update redirects in Readme --- README.md | 58 +++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index f74fe13945e..2b357f60846 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A curated list of awesome Go frameworks, libraries and software. Inspired by [aw Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! -[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! ([Request an invite](https://bit.ly/go-slack-signup), then join the #awesome channel.) +[Join us on Slack](https://gophers.slack.com/?redir=%2Fmessages%2Fawesome%2F) to chat with other awesome-go maintainers! ([Request an invite](https://bit.ly/go-slack-signup), then join the #awesome channel.) #### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!* @@ -89,7 +89,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. -* [PortAudio](https://code.google.com/p/portaudio-go/) - Go bindings for the PortAudio audio I/O library. +* [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. * [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). @@ -121,7 +121,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications* -* [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. +* [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line application. * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser @@ -142,7 +142,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. -* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/visionmedia/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output +* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). @@ -181,10 +181,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Generic datastructures and algorithms in Go.* * [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. -* [bloom](https://github.com/surge/bloom) - Bloom filters implemented in Go. +* [bloom](https://github.com/zhenjl/bloom) - Bloom filters implemented in Go. * [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams * [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. -* [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. +* [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. * [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. @@ -235,7 +235,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - An idiomatic SQL builder and query library. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. -* [Squirrel](https://github.com/lann/squirrel) - Go library that helps you build SQL queries. +* [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. ## Database Drivers @@ -264,7 +264,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gocql](http://gocql.github.io) - A 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 - * [mgo](http://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. + * [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-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in golang. * [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang @@ -439,7 +439,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [logex](https://github.com/chzyer/logex) - An golang log lib, supports tracking and level, wrap by standard log lib -* [logger](http://github.com/azer/logger) - Minimalistic logging library for Go. +* [logger](https://github.com/azer/logger) - Minimalistic logging library for Go. * [logrus](https://github.com/Sirupsen/logrus) - a 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/). * [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. @@ -448,7 +448,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mlog](https://github.com/jbrodriguez/mlog) - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. * [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. * [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/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program. +* [tail](https://github.com/hpcloud/tail) - A Go package striving to emulate the features of the BSD tail program. ## Machine Learning @@ -481,10 +481,10 @@ 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. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. * [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec. -* [go-nsq](https://github.com/bitly/go-nsq) - the official Go package for NSQ +* [go-nsq](https://github.com/nsqio/go-nsq) - the official Go package for NSQ * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. * [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. -* [NATS](https://github.com/apcera/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. +* [NATS](https://github.com/nats-io/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. * [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs * [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. * [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. @@ -520,7 +520,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting 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 straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. -* [porter2](https://github.com/surge/porter2) - Really fast Porter 2 stemmer. +* [porter2](https://github.com/zhenjl/porter2) - Really fast Porter 2 stemmer. * [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) * [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. @@ -753,7 +753,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API * [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. -* [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. +* [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) 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 API. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS @@ -929,7 +929,7 @@ Go software and plugins. ## Code Analysis -* [doc](http://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. +* [doc](https://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. * [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. @@ -977,7 +977,7 @@ Software written in Go. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. * [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. -* [Gogs](http://gogs.io/) - A Self Hosted Git Service in the Go Programming Language. +* [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. * [gox](https://github.com/mitchellh/gox) - A 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. @@ -990,7 +990,7 @@ Software written in Go. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [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) - A Web-based IDE for Teams using Golang. +* [Wide](https://wide.b3log.org/login) - A Web-based IDE for Teams using Golang. ### Other Software @@ -1006,7 +1006,7 @@ Software written in Go. * [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. * [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine -* [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. +* [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. * [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. @@ -1017,10 +1017,10 @@ Software written in Go. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) -* [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol. +* [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. -* [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. +* [tsuru](https://tsuru.io/) - An extensible and open source Platform as a Service software. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass) @@ -1050,9 +1050,9 @@ Where to discover new Go libraries. ## Conferences -* [dotGo](http://www.dotgo.io) - Paris, France +* [dotGo](http://www.dotgo.eu) - Paris, France * [GoCon](http://gocon.connpass.com/) - Tokyo, Japan -* [GolangUK](http://www.golanguk.com/) - London, UK +* [GolangUK](http://golanguk.com/) - London, UK * [GopherChina](http://gopherchina.org) - Shanghai, China * [GopherCon](http://www.gophercon.com/) - Denver, USA * [GopherCon India](http://www.gophercon.in/) - Bengaluru, India @@ -1062,12 +1062,12 @@ Where to discover new Go libraries. * [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) * [An Introduction to Programming in Go](http://www.golang-book.com/) -* [Build Web Application with Golang](http://astaxie.gitbooks.io/build-web-application-with-golang/) -* [Building Web Apps With Go](http://codegangsta.gitbooks.io/building-web-apps-with-go/) +* [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 -* [Learning Go](http://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) -* [Network Programming With Go](http://jan.newmarch.name/go/) +* [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) +* [Network Programming With Go](https://jan.newmarch.name/go/) ## Twitter @@ -1084,11 +1084,11 @@ Where to discover new Go libraries. * [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. * [Go Blog](http://blog.golang.org) - The official Go blog * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki -* [godoc.org](http://godoc.org/) - Documentation for open source Go packages. +* [godoc.org](https://godoc.org/) - Documentation for open source Go packages. * [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list * [gowalker.org](https://gowalker.org) - Go Project API documentation. -* [r/Golang](http://www.reddit.com/r/golang) - News about Go. +* [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. @@ -1102,4 +1102,4 @@ Where to discover new Go libraries. ## Windows -* [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang +* [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang From acb35068f4a4951f5789bbb7a3ec5914a8ad22db Mon Sep 17 00:00:00 2001 From: sunwxg Date: Mon, 16 Nov 2015 15:56:23 +0800 Subject: [PATCH 0262/3440] add golibwireshark package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 00454f26ed0..89f23aabbc5 100644 --- a/README.md +++ b/README.md @@ -524,6 +524,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go library for downloading files or directories from various sources using a URL. * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). +* [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) - A Go library for packet processing with libpcap bindings * [gopcap](https://github.com/akrennmair/gopcap) - A 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. From 3077f1e56e6b4fd43966b5b2903b5121fd8dde31 Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Wed, 11 Nov 2015 22:39:21 -0800 Subject: [PATCH 0263/3440] Add xlog in logging section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6fcebe5b21d..deea2d12332 100644 --- a/README.md +++ b/README.md @@ -449,6 +449,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. * [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) - A Go package striving to emulate the features of the BSD tail program. +* [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. ## Machine Learning From e09509cddd400485f4663760e584313481a0dca6 Mon Sep 17 00:00:00 2001 From: Greg Osuri Date: Mon, 16 Nov 2015 11:33:20 -0800 Subject: [PATCH 0264/3440] Added uitable to Advanced Console UIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index deea2d12332..e32ff33cf2c 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). +* [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data. ## Configuration From 148dd4c2b97519c47bd1bc14af3e651a7944ab1f Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Tue, 17 Nov 2015 17:45:41 -0500 Subject: [PATCH 0265/3440] Add Category Goroutines + add some packages Added the following: * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. * [pool](https://github.com/go-playground/pool) - Go consumer goroutine pool for easy goroutine handling + time saving. * [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. * [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. * [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... --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index deea2d12332..e21a2475e78 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Game Development](#game-development) - [Generation & Generics](#generation--generics) - [Go Compilers](#go-compilers) + - [Goroutines](#goroutines) - [GUI](#gui) - [Hardware](#hardware) - [Images](#images) @@ -385,6 +386,15 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. +## Goroutines + +*Tools for managing and working with Goroutines* + +* [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. +* [pool](https://github.com/go-playground/pool) - Go consumer goroutine pool for easy goroutine handling + time saving. +* [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. + + ## GUI *Libraries for building GUI Applications* @@ -504,6 +514,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [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... * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber * [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. @@ -603,6 +614,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. * [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. * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. @@ -790,6 +802,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/fromYukki/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. +* [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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. From 00b5f15d6b05c81a899dbfb61e22d8234cbcb9df Mon Sep 17 00:00:00 2001 From: Ilya Kowalewski Date: Wed, 18 Nov 2015 18:23:41 +0200 Subject: [PATCH 0266/3440] Added some public libraries of mine https://github.com/tucnak/climax https://github.com/tucnak/store --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index deea2d12332..fa16c41ccab 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications* * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line application. +* [climax](http://github.com/tucnak/climax) - An alternative CLI with "human face", in spirit of Go command * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser @@ -159,6 +160,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [ini](https://github.com/go-ini/ini) - Go package for read and write INI files * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files +* [store](https://github.com/tucnak/store) - A lightweight configuration manager for Go * [viper](https://github.com/spf13/viper) - Go configuration with fangs ## Continuous Integration From 7f37e681b5382fb3b44de1b38c009fc1be606937 Mon Sep 17 00:00:00 2001 From: Jianwei Han Date: Thu, 19 Nov 2015 12:03:27 +0800 Subject: [PATCH 0267/3440] Add goreturns to code analysis section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index deea2d12332..fbf8bf822bb 100644 --- a/README.md +++ b/README.md @@ -942,6 +942,7 @@ Go software and plugins. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. +* [goreturns](https://github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 3160fc2a6c66fddb1de2edbe1d702da1c61afe58 Mon Sep 17 00:00:00 2001 From: Jianwei Han Date: Thu, 19 Nov 2015 14:42:19 +0800 Subject: [PATCH 0268/3440] Fix goreturns URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fbf8bf822bb..63575ecbb84 100644 --- a/README.md +++ b/README.md @@ -942,7 +942,7 @@ Go software and plugins. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. -* [goreturns](https://github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. +* [goreturns](https://sourcegraph.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 85d89b2544ba2836424fe4f8e414dc10b15defff Mon Sep 17 00:00:00 2001 From: Hugo Landau Date: Thu, 19 Nov 2015 16:26:29 +0000 Subject: [PATCH 0269/3440] Add hlandau/passlib --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63575ecbb84..26109dc41ab 100644 --- a/README.md +++ b/README.md @@ -639,6 +639,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [BadActor](https://github.com/jaredfolkins/badactor) - An 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)" +* [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. ## Serialization From 00e8bc543d1caf23487d3bb51e1b50358cf8487e Mon Sep 17 00:00:00 2001 From: AJ Bahnken Date: Thu, 19 Nov 2015 09:46:12 -0800 Subject: [PATCH 0270/3440] Added Kala to Other Software --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63575ecbb84..c20377bc81d 100644 --- a/README.md +++ b/README.md @@ -987,6 +987,7 @@ Software written in Go. * [goxc](https://github.com/laher/goxc) - build tool for Go, with a focus on cross-compiling and packaging. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. * [hk](https://github.com/heroku/hk) - Heroku command-line interface in Go. +* [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [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. From 623d851bed54101513f58a1ee7351f7fa76917d2 Mon Sep 17 00:00:00 2001 From: Tatsuo Ikeda Date: Fri, 20 Nov 2015 02:57:33 +0900 Subject: [PATCH 0271/3440] Added go-sitemap-generator --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63575ecbb84..d034c7b55a0 100644 --- a/README.md +++ b/README.md @@ -828,6 +828,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. +* [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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 From f99869ad4db5714ab19e65e8514438d89acb7dfa Mon Sep 17 00:00:00 2001 From: Arthur White Date: Fri, 20 Nov 2015 15:48:07 +0100 Subject: [PATCH 0272/3440] Add Volatile --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63575ecbb84..65208e73382 100644 --- a/README.md +++ b/README.md @@ -899,6 +899,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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. +* [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. * [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. * [Zerver](https://github.com/cosiner/zerver) - Zerver is a expressive, modular, feature completed RESTful framework. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. From bef0fb063a09ce0659f69f36d04639541049c6d1 Mon Sep 17 00:00:00 2001 From: Levi Gross Date: Sat, 21 Nov 2015 22:35:53 -0500 Subject: [PATCH 0273/3440] Adding grequests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adding grequests – An elegant and simple `net/http` wrapper that follows Python's requests library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e238c9e9abd..5f8be2a7d83 100644 --- a/README.md +++ b/README.md @@ -825,6 +825,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go +* [grequests](https://github.com/levigross/grequests) - An elegant and simple `net/http` wrapper that follows Python's requests library * [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. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. From c8cbb005c4a4409cc2b1b5abda5bdcfb58cc411f Mon Sep 17 00:00:00 2001 From: Tatsuo Ikeda Date: Mon, 23 Nov 2015 02:36:10 +0900 Subject: [PATCH 0274/3440] Fix additional package sorted alphabetically. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d034c7b55a0..954284117f7 100644 --- a/README.md +++ b/README.md @@ -794,6 +794,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go +* [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. @@ -828,7 +829,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. -* [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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 From 35256f44c7eb9a30b6eb1ccd199aba43b7bf4867 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sun, 22 Nov 2015 20:55:21 -0800 Subject: [PATCH 0275/3440] Add trayhost package to GUI section. Package trayhost is a cross-platform Go library to place an icon in the host operating system's taskbar. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7d83..c090f93921c 100644 --- a/README.md +++ b/README.md @@ -408,6 +408,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. +* [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. From 4c5867a8b39c34d7f5a7744e68048670253f07f4 Mon Sep 17 00:00:00 2001 From: Peter Kieltyka Date: Mon, 23 Nov 2015 09:42:09 -0500 Subject: [PATCH 0276/3440] Add chi project to Web Frameworks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7d83..958a73a95bd 100644 --- a/README.md +++ b/README.md @@ -886,6 +886,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. +* [chi](https://github.com/pressly/chi) - Small, fast and expressive HTTP router built on net/context. * [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. * [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. * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) From d2efd711fc63a15ea31eaa2b76c8195f13e96974 Mon Sep 17 00:00:00 2001 From: Louis Maddox Date: Mon, 23 Nov 2015 17:01:16 +0000 Subject: [PATCH 0277/3440] Add valyala/fasthttp --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7d83..5aedfce74e1 100644 --- a/README.md +++ b/README.md @@ -551,6 +551,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [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 * [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) - A Go library for downloading files or directories from various sources using a URL. * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). From ae1683cd03b8e40ce181cdc4142504a48c94ce5e Mon Sep 17 00:00:00 2001 From: Eric Bower Date: Tue, 24 Nov 2015 14:35:11 -0500 Subject: [PATCH 0278/3440] sentences package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7d83..081c5d9278b 100644 --- a/README.md +++ b/README.md @@ -536,6 +536,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm * [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. * [porter2](https://github.com/zhenjl/porter2) - Really fast Porter 2 stemmer. +* [sentences](https://github.com/neurosnap/sentences) - A sentence tokenizer: converts text into a list of sentences. * [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) * [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. From 9cd0dbee32074ca3b9b20f0c840695b597229121 Mon Sep 17 00:00:00 2001 From: Greg Osuri Date: Tue, 24 Nov 2015 16:35:06 -0800 Subject: [PATCH 0279/3440] Added uiprogress to Advanced Console UIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7d83..b71a7455fbf 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). +* [uiprogress](https://github.com/gosuri/uiprogress) - A flexible library to render progress bars in terminal applications. * [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data. From f06470deb2984a51282fa264352b84e4a6496f03 Mon Sep 17 00:00:00 2001 From: Alex Banks Date: Tue, 24 Nov 2015 20:27:44 -0800 Subject: [PATCH 0280/3440] Added The Go Programming Language by Donovan and Kernighan. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f8be2a7d83..f6430df6dc4 100644 --- a/README.md +++ b/README.md @@ -1092,7 +1092,7 @@ Where to discover new Go libraries. * [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/) ## Twitter From 87cd3fe0428308e94aab87c2fe37dda2bb611152 Mon Sep 17 00:00:00 2001 From: Eric Bower Date: Fri, 27 Nov 2015 03:33:08 -0500 Subject: [PATCH 0281/3440] apparently alaphetical order is beyond my capabilities --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 081c5d9278b..5a8b41d9ab5 100644 --- a/README.md +++ b/README.md @@ -536,8 +536,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm * [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. * [porter2](https://github.com/zhenjl/porter2) - Really fast Porter 2 stemmer. -* [sentences](https://github.com/neurosnap/sentences) - A sentence tokenizer: converts text into a list of sentences. * [segment](https://github.com/blevesearch/segment) - A 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) - A sentence tokenizer: converts text into a list of sentences. * [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) - A Go package for n-gram based text categorization, with support for utf-8 and raw text From c1f92f38415518256eb3636521f3d8eae3cd29d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20K=C3=BChl?= Date: Fri, 27 Nov 2015 17:31:04 +0100 Subject: [PATCH 0282/3440] Add rkt - An App Container runtime --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6430df6dc4..d5a226d16d0 100644 --- a/README.md +++ b/README.md @@ -1039,6 +1039,7 @@ Software written in Go. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. * [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. * [restic](https://github.com/restic/restic) - De-duplicating backup program. +* [rkt](https://github.com/coreos/rkt) - An App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. From 8396623ae5f428339815b50c37d7adf64be2cf93 Mon Sep 17 00:00:00 2001 From: Gleb Sinyavsky Date: Sun, 29 Nov 2015 13:31:14 +0300 Subject: [PATCH 0283/3440] Update README.md telegram-bot-api add --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 554134c42af..35252984811 100644 --- a/README.md +++ b/README.md @@ -794,6 +794,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [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. * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. From 530d901b26f979b0c701ad3e8110bf598dcb9219 Mon Sep 17 00:00:00 2001 From: 1175498437 <1175498437@users.noreply.github.com> Date: Mon, 30 Nov 2015 09:41:39 +0800 Subject: [PATCH 0284/3440] add redeo project --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddaf4e6e8d6..0d5272fea01 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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/hoisie/redis) - A simple, powerful Redis client for Go. + * [redis](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. * Search and Analytic Databases * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. From 2708b0142e91f54330a8f1eb7ff4bcd2d73f1bd9 Mon Sep 17 00:00:00 2001 From: Eduardo Nunes Pereira Date: Mon, 30 Nov 2015 18:08:17 -0200 Subject: [PATCH 0285/3440] Added Stack Up https://github.com/pressly/sup * Fix SSLB Alphabetical --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d388bd3cb0a..4f217768fd0 100644 --- a/README.md +++ b/README.md @@ -570,9 +570,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. * [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. +* [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) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. -* [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. ## OpenGL @@ -1049,6 +1049,7 @@ Software written in Go. * [rkt](https://github.com/coreos/rkt) - An App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) +* [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. From ae7698397166ce0d36d82ed46e1a6cb287fb5500 Mon Sep 17 00:00:00 2001 From: Harrison Shoebridge Date: Tue, 1 Dec 2015 17:53:41 +1100 Subject: [PATCH 0286/3440] Add configure --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f217768fd0..819f5bd759c 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for configuration parsing* * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. +* [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 From fc6af533eea069e62be3f63f76dce97a4ae6f080 Mon Sep 17 00:00:00 2001 From: Harrison Shoebridge Date: Tue, 1 Dec 2015 17:56:00 +1100 Subject: [PATCH 0287/3440] Add engi --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f217768fd0..7d10c726d0c 100644 --- a/README.md +++ b/README.md @@ -361,6 +361,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Awesome game development libraries.* +* [engi](https://github.com/paked/engi) - A cross-platform game engine following the Entity Component System design pattern * [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 From 1d4381c9de09426069b549591fdc59f486efa33e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Tue, 1 Dec 2015 15:44:37 +0100 Subject: [PATCH 0288/3440] Add github.com/feyeleanor/GoSpeed to benchmarks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84f1f0cbd6b..aa1c8d020ad 100644 --- a/README.md +++ b/README.md @@ -1079,6 +1079,7 @@ Where to discover new Go libraries. * [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. * [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. * [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - A collection of benchmarks for popular Go database/SQL utilities. +* [gospeed](https://github.com/feyeleanor/GoSpeed) - Go micro-benchmarks for calculating the speed of language constructs. * [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. * [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. From 9d5a30aeb197e66b0e0e598322b4002632f39850 Mon Sep 17 00:00:00 2001 From: Adriano Orioli Date: Tue, 1 Dec 2015 17:14:17 +0100 Subject: [PATCH 0289/3440] add gcm to Third-party APIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddaf4e6e8d6..d4f7f57d43e 100644 --- a/README.md +++ b/README.md @@ -775,6 +775,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API * [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 * [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) 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 API. From 6703b3d8089d72d6e45ee60f92390047ab72026a Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Wed, 2 Dec 2015 22:57:06 -0700 Subject: [PATCH 0290/3440] Add lego ACME client library and CLI tool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84f1f0cbd6b..59130219147 100644 --- a/README.md +++ b/README.md @@ -661,6 +661,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [BadActor](https://github.com/jaredfolkins/badactor) - An 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) * [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. ## Serialization From 5a851353804f18de41f4c33583783fc23f9c90c8 Mon Sep 17 00:00:00 2001 From: Christopher McKenzie Date: Wed, 2 Dec 2015 22:55:28 -0800 Subject: [PATCH 0291/3440] Add Dropship --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59130219147..a051de58bb1 100644 --- a/README.md +++ b/README.md @@ -1005,6 +1005,7 @@ Software written in Go. * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile * [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). +* [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. From 920614d625ebfa7baff15ec7141e0a93ef4edfa5 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Thu, 3 Dec 2015 12:37:49 +0100 Subject: [PATCH 0292/3440] add devd - a local webserver for developers --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59130219147..340be57efac 100644 --- a/README.md +++ b/README.md @@ -682,6 +682,7 @@ 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. +* [devd](https://github.com/cortesi/devd) - A local webserver for developers * [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. * [nsq](http://nsq.io/) - A realtime distributed messaging platform * [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. From de6f3264c75a9834de5e6f8fcdb5d50e14e90d83 Mon Sep 17 00:00:00 2001 From: Sajjad Hasehmian Date: Fri, 4 Dec 2015 13:12:00 +0330 Subject: [PATCH 0293/3440] add systray to gui section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59130219147..8411e672755 100644 --- a/README.md +++ b/README.md @@ -411,6 +411,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. +* [systray](https://github.com/getlantern/systray) - Cross platfrom 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. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. From c68a33254cab0f591b01371cddab41ab21fff7af Mon Sep 17 00:00:00 2001 From: Tony Pierce Date: Fri, 4 Dec 2015 17:47:32 -0800 Subject: [PATCH 0294/3440] Removed gxui from GUI section. Library is not being maintained (according to github page) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 59130219147..ec0a15315d4 100644 --- a/README.md +++ b/README.md @@ -409,7 +409,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-qml](https://github.com/go-qml/qml) - QML support for the Go language * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. -* [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. From 34af1f5fa070502a8c546bf9817419817407f988 Mon Sep 17 00:00:00 2001 From: Greg Osuri Date: Sun, 6 Dec 2015 12:12:12 -0800 Subject: [PATCH 0295/3440] Added uilive to Advanced Console UIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1379fcd9f1b..7dd6efc481d 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). +* [uilive](https://github.com/gosuri/uilive) - A library for updating terminal output in realtime. * [uiprogress](https://github.com/gosuri/uiprogress) - A flexible library to render progress bars in terminal applications. * [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data. From 6edef55df1b97f8be3b5319a265597884c6ccaad Mon Sep 17 00:00:00 2001 From: George Lestaris Date: Mon, 7 Dec 2015 19:09:33 +0000 Subject: [PATCH 0296/3440] Add gomega - an rspec-like assertion library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1379fcd9f1b..9e187ab2fd2 100644 --- a/README.md +++ b/README.md @@ -719,6 +719,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gocheck](http://labix.org/gocheck) - A more advanced testing framework alternative to gotest. * [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. + * [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. * [Hamcrest](https://github.com/rdrdr/hamcrest) - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. From 014f977b83e06259d6913f6851fa95a46230a1d5 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Wed, 9 Dec 2015 02:06:56 -0800 Subject: [PATCH 0297/3440] Remove Martini. According to https://github.com/go-martini/martini/commit/15a47622d6a9b3e6a1eaca2681e4850f612471ea: > The martini framework is no longer maintained. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9e187ab2fd2..01a503f7679 100644 --- a/README.md +++ b/README.md @@ -917,7 +917,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go.Inspiration from httprouter * [Macaron](https://github.com/Unknwon/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. -* [Martini](https://github.com/go-martini/martini) - Martini is a powerful package for quickly writing modular web applications/services in Golang. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. * [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. From 04fe31cd23bb6d8b27d7ce18d690079573e6dc77 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Wed, 9 Dec 2015 19:57:46 +0100 Subject: [PATCH 0298/3440] add snap - a powerful telemetry framework added it to 'other software' , but i don't know if this is the correct place/section for snap - other suggesstions are welcome --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9af99eee03..4dc0aea826a 100644 --- a/README.md +++ b/README.md @@ -1060,6 +1060,7 @@ Software written in Go. * [rkt](https://github.com/coreos/rkt) - An App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) +* [snap](github.com/intelsdi-x/snap) - A powerful telemetry framework * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. From acac8e8f73daae164eea8e2fe105edccd4060b4e Mon Sep 17 00:00:00 2001 From: Patrick D Date: Wed, 9 Dec 2015 21:35:24 +0100 Subject: [PATCH 0299/3440] fixed broken link to snap --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4dc0aea826a..42c655bb2b9 100644 --- a/README.md +++ b/README.md @@ -1060,7 +1060,7 @@ Software written in Go. * [rkt](https://github.com/coreos/rkt) - An App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) -* [snap](github.com/intelsdi-x/snap) - A powerful telemetry framework +* [snap](https://github.com/intelsdi-x/snap) - A powerful telemetry framework * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. From 3c241066bed10430d26bd7fa2379a228cf3a4b59 Mon Sep 17 00:00:00 2001 From: Yann Coleu Date: Thu, 10 Dec 2015 11:19:54 +0100 Subject: [PATCH 0300/3440] Add consul tool, official website --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 27bb5629d3b..8bddec75551 100644 --- a/README.md +++ b/README.md @@ -696,6 +696,7 @@ 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) - A local webserver for developers * [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. * [nsq](http://nsq.io/) - A realtime distributed messaging platform From c49255f0837875721a0978227084771f108963b5 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Fri, 11 Dec 2015 20:23:33 +0100 Subject: [PATCH 0301/3440] add drone (https://drone.io) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8bddec75551..14c6f68d85a 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for help with continuous integration* +* [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 From f36c5b866840f7df17e0483cc0d2b6549ab52e88 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Fri, 11 Dec 2015 20:28:19 +0100 Subject: [PATCH 0302/3440] creat new section in continuous integration continuous integration section had one subsection: tools for help with continuous integration, but drone.io doesn't fit in so i created the subsection for complete ci platforms which are implemented in Go --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 14c6f68d85a..79e45559a0e 100644 --- a/README.md +++ b/README.md @@ -172,9 +172,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Continuous Integration -*Tools for help with continuous integration* +*Continuous integrations platforms implemented in Go* * [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go + +*Tools for help with continuous integration* + * [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 From 182c320f374d96cb7ab7f66285e026acb427a172 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Fri, 11 Dec 2015 20:30:06 +0100 Subject: [PATCH 0303/3440] fixed typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 79e45559a0e..842fc34a565 100644 --- a/README.md +++ b/README.md @@ -172,7 +172,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Continuous Integration -*Continuous integrations platforms implemented in Go* +*Continuous integration platforms implemented in Go* * [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go From fe3f054835c22338b32f988fe9aad13e2c871e94 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Sat, 12 Dec 2015 13:44:04 +0100 Subject: [PATCH 0304/3440] delete second continuous integration section --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 842fc34a565..14c6f68d85a 100644 --- a/README.md +++ b/README.md @@ -172,12 +172,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Continuous Integration -*Continuous integration platforms implemented in Go* - -* [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go - *Tools for help with continuous integration* +* [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 From f81474fa66b19e33d1aba8f97be66878aee0c376 Mon Sep 17 00:00:00 2001 From: crast Date: Sat, 12 Dec 2015 17:51:02 -0700 Subject: [PATCH 0305/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 14c6f68d85a..24810c29fef 100644 --- a/README.md +++ b/README.md @@ -269,6 +269,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. + * [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 From 9d589d9c8fd4fb4c98d22dfd76dd293102099880 Mon Sep 17 00:00:00 2001 From: Nicolas Kaiser Date: Sun, 13 Dec 2015 19:06:40 +0100 Subject: [PATCH 0306/3440] Fix typos --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 24810c29fef..8564cec7c7c 100644 --- a/README.md +++ b/README.md @@ -417,7 +417,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. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. -* [systray](https://github.com/getlantern/systray) - Cross platfrom 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. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. @@ -546,7 +546,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm -* [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter 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. * [segment](https://github.com/blevesearch/segment) - A 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) - A sentence tokenizer: converts text into a list of sentences. @@ -827,7 +827,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. -* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub.. more services to come +* [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub.. more services to come ## Utilities @@ -843,7 +843,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. * [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. -* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. +* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons @@ -860,7 +860,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grequests](https://github.com/levigross/grequests) - An elegant and simple `net/http` wrapper that follows Python's requests library * [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. -* [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. +* [hystrix-go](https://github.com/afex/hystrix-go) - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. * [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. @@ -952,7 +952,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. * [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. * [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. -* [Zerver](https://github.com/cosiner/zerver) - Zerver is a expressive, modular, feature completed RESTful framework. +* [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. From 2dc7486d0d5c6be448193ddc608853da8ad97e73 Mon Sep 17 00:00:00 2001 From: Breno Martinusso Date: Mon, 14 Dec 2015 16:04:23 -0200 Subject: [PATCH 0307/3440] Add go-chat-bot --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8564cec7c7c..b5fa4228e0f 100644 --- a/README.md +++ b/README.md @@ -524,6 +524,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [gopsutil](https://github.com/shirou/gopsutil) - A 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 @@ -812,7 +813,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. * [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) - A Golang SDK for Medium's OAuth2 API +* [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 API * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. * [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. From 81a15a313015f5eee070138d88ab9efbd8b30bb2 Mon Sep 17 00:00:00 2001 From: Trey Bastian Date: Thu, 17 Dec 2015 08:48:57 +0000 Subject: [PATCH 0308/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8564cec7c7c..6a1ae6d4185 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. From fa75c9ca66175927a2cf03084e081be92d0e8906 Mon Sep 17 00:00:00 2001 From: Seth Goings Date: Tue, 8 Dec 2015 21:57:12 -0700 Subject: [PATCH 0309/3440] add glide --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8564cec7c7c..f7a707e80ab 100644 --- a/README.md +++ b/README.md @@ -617,6 +617,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for package and dependency management.* * [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. +* [glide](https://github.com/Masterminds/glide) - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. * [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) - A simple dependency manager for Go (golang), inspired by Bundler. From a0a0b4ed8d80a4f473466070305d326005e14cc1 Mon Sep 17 00:00:00 2001 From: Tamer TAS Date: Sat, 19 Dec 2015 19:18:18 +0200 Subject: [PATCH 0310/3440] Include boilr Adds [boilr](https://github.com/tmrts/boilr) to the list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8564cec7c7c..72e86bffbe5 100644 --- a/README.md +++ b/README.md @@ -833,6 +833,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *General utilities and tools to make your life easier.* +* [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. From 999a1347e8201084047677cd0c31cc268442b6e1 Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Sun, 20 Dec 2015 09:51:38 -0800 Subject: [PATCH 0311/3440] Add xmux --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8564cec7c7c..d7053b505e7 100644 --- a/README.md +++ b/README.md @@ -952,6 +952,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. * [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. * [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. +* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. From 4c33a2985ecf172cf948e97c356988737e147715 Mon Sep 17 00:00:00 2001 From: Robin Mattheussen Date: Mon, 21 Dec 2015 18:33:39 +0100 Subject: [PATCH 0312/3440] Added go-kit, goa and gizmo --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index bc8e2063e5e..7301b6874a9 100644 --- a/README.md +++ b/README.md @@ -927,11 +927,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [chi](https://github.com/pressly/chi) - Small, fast and expressive HTTP router built on net/context. * [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. * [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. * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) * [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API +* [go-kit](https://github.com/go-kit/kit) - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. * [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's * [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go * [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. +* [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis * [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. * [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants. From 0ddd25ff2bc1d52644a50b195180f5d909bb5171 Mon Sep 17 00:00:00 2001 From: pyros2097 Date: Mon, 21 Dec 2015 23:51:47 +0530 Subject: [PATCH 0313/3440] Add go-embed in resource embedding section --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7301b6874a9..66e11776f1d 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Go Tools](#go-tools) - [Software Packages](#software-packages) - [DevOps Tools](#devops-tools) - - [Other Software](#other-software) + - [Other Software](#other-software)re - [Server Applications](#server-applications) @@ -641,12 +641,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Resource Embedding * [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-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. * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. - ## Science and Data Analysis *Libraries for scientific computing and data analyzing.* From adf186fbba21588dbf9208537aa91df9987210bd Mon Sep 17 00:00:00 2001 From: pyros2097 Date: Mon, 21 Dec 2015 23:59:58 +0530 Subject: [PATCH 0314/3440] fix typo --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 66e11776f1d..730398acdd2 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Go Tools](#go-tools) - [Software Packages](#software-packages) - [DevOps Tools](#devops-tools) - - [Other Software](#other-software)re + - [Other Software](#other-software) - [Server Applications](#server-applications) @@ -647,6 +647,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. + ## Science and Data Analysis *Libraries for scientific computing and data analyzing.* From 5675464c1b84a50885cebf99adfa4f39e9542018 Mon Sep 17 00:00:00 2001 From: Gleb Sinyavsky Date: Tue, 22 Dec 2015 14:24:53 +0300 Subject: [PATCH 0315/3440] Margelet and go_mediainfo added --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7301b6874a9..a1cbde32248 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* -* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. +* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder.\ +* [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. @@ -530,6 +531,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gopsutil](https://github.com/shirou/gopsutil) - A 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 * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. +* [margelet](https://github.com/zhulik/margelet) - A framework for building Telegram bots. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [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... * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber From f3871769d16e06c61aa83062834508204229c8f0 Mon Sep 17 00:00:00 2001 From: Gleb Sinyavsky Date: Tue, 22 Dec 2015 14:25:57 +0300 Subject: [PATCH 0316/3440] Typo fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1cbde32248..bd6f32943c6 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* -* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder.\ +* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. From 926e1f53a928a915bf5b17f06f05443ae7b53516 Mon Sep 17 00:00:00 2001 From: Gleb Sinyavsky Date: Tue, 22 Dec 2015 14:46:10 +0300 Subject: [PATCH 0317/3440] Sorting fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bd6f32943c6..f94a3fe90c6 100644 --- a/README.md +++ b/README.md @@ -90,8 +90,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* * [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. -* [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. +* [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. From aae665f066c28595f16ded95fb34abbbe87f41f2 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Tue, 22 Dec 2015 08:45:34 -0500 Subject: [PATCH 0318/3440] added ozzo-dbx --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7301b6874a9..73b88648857 100644 --- a/README.md +++ b/README.md @@ -245,6 +245,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - An idiomatic SQL builder and query library. +* [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. From a01a399325e60fea381b40862b366a7487ae6422 Mon Sep 17 00:00:00 2001 From: MateusDantas Date: Tue, 22 Dec 2015 15:59:48 -0200 Subject: [PATCH 0319/3440] Adding APM (Aguia Process Manager) to awesome-go README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7301b6874a9..50cda54df5e 100644 --- a/README.md +++ b/README.md @@ -836,6 +836,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *General utilities and tools to make your life easier.* +* [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API. * [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go From 4b184974389f8df509f21df9cd2c974cfaab6e82 Mon Sep 17 00:00:00 2001 From: Matt Silverlock Date: Wed, 23 Dec 2015 18:12:24 +0800 Subject: [PATCH 0320/3440] Added gorilla/csrf, Goji v2 & simple-scrypt --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7301b6874a9..4977055d506 100644 --- a/README.md +++ b/README.md @@ -362,6 +362,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [binding](https://github.com/mholt/binding) - Binds form and JSON data from net/http Request to struct. * [formam](https://github.com/monoculum/formam) - decode form's values into a struct. * [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. +* [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. * [nosurf](https://github.com/justinas/nosurf) - A CSRF protection middleware for Go. @@ -682,6 +683,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) * [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. +* [simple-scrypt](https://github.com/elithrar/simple-scrypt) - an scrypt package with a simple, obvious API and automatic cost calibration built-in. ## Serialization @@ -937,7 +939,7 @@ 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) - A minimalistic REST API server in Go * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. -* [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants. +* [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. * [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple. * [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster * [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go From c58d46e1f991b29b2396dbe460d33cfa8a9712a4 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Wed, 23 Dec 2015 22:40:01 +0900 Subject: [PATCH 0321/3440] Add fzf --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7301b6874a9..748fb331e5f 100644 --- a/README.md +++ b/README.md @@ -842,6 +842,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/fromYukki/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. +* [fzf](https://github.com/junegunn/fzf) - A 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. * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications From 479f5238bd811e647fe46182b6942000c69c9c43 Mon Sep 17 00:00:00 2001 From: Serhii Herasymov Date: Thu, 24 Dec 2015 01:54:59 +0200 Subject: [PATCH 0322/3440] Goweek added --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7301b6874a9..5a01cac32f1 100644 --- a/README.md +++ b/README.md @@ -295,6 +295,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for working with dates and times.* +* [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. * [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. From d98b4ecd4fc0a1f226b4e4db53bf77c8eaa252ca Mon Sep 17 00:00:00 2001 From: Asim Date: Fri, 25 Dec 2015 11:44:16 +0000 Subject: [PATCH 0323/3440] Add micro --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7509b1db52b..0b61f640898 100644 --- a/README.md +++ b/README.md @@ -952,6 +952,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Macaron](https://github.com/Unknwon/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. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. +* [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and platform. * [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. * [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. From 8fb8d46b360cce7c0cac91456c41c5245802527a Mon Sep 17 00:00:00 2001 From: Seif Lotfy Date: Sat, 26 Dec 2015 02:30:43 +0100 Subject: [PATCH 0324/3440] Add Skizze Add Skizze - A probabilistic data-structures service and storage. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7509b1db52b..9ecfac0f320 100644 --- a/README.md +++ b/README.md @@ -291,6 +291,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Google Go. * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library. * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. + * [skizze](https://github.com/seiflotfy/skizze) - A probabilistic data-structures service and storage. ## Date & Time From c6c69d41fc385016ca6c3b25c084973084245056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Sun, 27 Dec 2015 13:18:17 +0100 Subject: [PATCH 0325/3440] Add interfacer to code analysis --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0a4ea7981b9..507fca5df38 100644 --- a/README.md +++ b/README.md @@ -1014,6 +1014,7 @@ Go software and plugins. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. * [goreturns](https://sourcegraph.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. +* [interfacer](https://github.com/mvdan/interfacer) - A linter that suggests interface types. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From b3b80dc32068ad0359b13fc20c72bd6950ac1a63 Mon Sep 17 00:00:00 2001 From: Hugo Landau Date: Sun, 27 Dec 2015 16:01:54 +0000 Subject: [PATCH 0326/3440] Add acmetool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 507fca5df38..cdb76cb8be0 100644 --- a/README.md +++ b/README.md @@ -682,6 +682,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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) - An 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) From 40a2b13e73ed13fe2b2f93b3f10700233b1f4f47 Mon Sep 17 00:00:00 2001 From: Andrey Sinitsyn Date: Tue, 29 Dec 2015 09:59:50 +0700 Subject: [PATCH 0327/3440] Library for PayPal API --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cdb76cb8be0..8697e7e6cee 100644 --- a/README.md +++ b/README.md @@ -823,6 +823,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [hipchat (xmpp)](https://github.com/daneharrigan/hipchat) - A golang package to communicate with HipChat over XMPP. * [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 API * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. +* [paypal] (https://github.com/logpacker/paypalsdk) - Wrapper for PayPal payment API * [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. From 3ccb0e50ad7065888d619f9eee9dfe587f71fa5b Mon Sep 17 00:00:00 2001 From: Maksym Shcheglov Date: Wed, 30 Dec 2015 13:08:26 +0100 Subject: [PATCH 0328/3440] Add docopt.go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8697e7e6cee..9dd0eb45ac0 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [climax](http://github.com/tucnak/climax) - An alternative CLI with "human face", in spirit of Go command * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. +* [docopt.go](https://github.com/docopt/docopt.go) - A command-line arguments parser that will make you smile. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser * [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. From 3a3544af06534d7bf0e98c61044e40dee590517e Mon Sep 17 00:00:00 2001 From: "M. Yilmaz SUSLU" Date: Wed, 30 Dec 2015 14:25:02 +0200 Subject: [PATCH 0329/3440] Remove unmaintained repository - hood --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8697e7e6cee..998257cbbde 100644 --- a/README.md +++ b/README.md @@ -610,7 +610,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. -* [hood](https://github.com/eaigner/hood) - Database agnostic ORM for Go. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. From 73595573167ca740cd362a30b581e2dcaf2bac8b Mon Sep 17 00:00:00 2001 From: Maksim N Date: Wed, 30 Dec 2015 16:26:05 +0100 Subject: [PATCH 0330/3440] Update README.md Fix broken links --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8697e7e6cee..49747275cb4 100644 --- a/README.md +++ b/README.md @@ -526,7 +526,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* * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. -* [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. @@ -848,7 +848,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go * [delve](https://github.com/derekparker/delve) - Go debugger. -* [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. +* [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. * [fzf](https://github.com/junegunn/fzf) - A 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. From 3c72b4410a00d5e4ef10918cfa11f96c48bbe2cd Mon Sep 17 00:00:00 2001 From: elgris Date: Sat, 26 Dec 2015 08:22:58 +0300 Subject: [PATCH 0331/3440] adds another SQL query builder called 'sqrl' --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7509b1db52b..979ac12bb46 100644 --- a/README.md +++ b/README.md @@ -247,6 +247,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goqu](https://github.com/doug-martin/goqu) - An idiomatic SQL builder and query library. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. +* [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. From 54b213799792e1c3ffdf06dbb5de121736b8cb81 Mon Sep 17 00:00:00 2001 From: pyros2097 Date: Thu, 31 Dec 2015 11:28:14 +0530 Subject: [PATCH 0332/3440] Add Playlyfe to Third Party API's --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8697e7e6cee..96d77f9a1b5 100644 --- a/README.md +++ b/README.md @@ -824,6 +824,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 API * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. * [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. From 4a60d0f41759a22465e6a6eabd20b23f94a2f1aa Mon Sep 17 00:00:00 2001 From: Asim Date: Thu, 31 Dec 2015 14:37:55 +0000 Subject: [PATCH 0333/3440] Micro should be under distributed systems --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8697e7e6cee..d047484e766 100644 --- a/README.md +++ b/README.md @@ -311,6 +311,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. +* [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and distributed systems platform. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. @@ -956,7 +957,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Macaron](https://github.com/Unknwon/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. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. -* [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and platform. * [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. * [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. From f1f1c0be51aa34e00ca547629f8649e8c24fc0d6 Mon Sep 17 00:00:00 2001 From: olebedev Date: Mon, 4 Jan 2016 19:08:14 +0500 Subject: [PATCH 0334/3440] Add event emitter > Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. See: https://github.com/olebedev/emitter --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7c5b2eee539..493432668c4 100644 --- a/README.md +++ b/README.md @@ -511,6 +511,7 @@ 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. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. +* [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. * [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 * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. From cf0ba861b918d1504bb664c0248a6baf59e39913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vytautas=20=C5=A0altenis?= Date: Mon, 4 Jan 2016 21:11:28 +0200 Subject: [PATCH 0335/3440] Add go-i18n, a localization package and tool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7c5b2eee539..4b7ce0fdccb 100644 --- a/README.md +++ b/README.md @@ -545,6 +545,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with human languages.* * [go-eco](https://code.google.com/p/go-eco/) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. +* [go-i18n](https://github.com/nicksnyder/go-i18n/) - A package and an accompanying tool to work with localized text. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. * [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. * [golibstemmer](https://github.com/rjohnsondev/golibstemmer) - Go bindings for the snowball libstemmer library including porter 2 From 4c3b5528c5f4b548816caa0ef429b513dbe33ecf Mon Sep 17 00:00:00 2001 From: olebedev Date: Wed, 6 Jan 2016 21:33:26 +0500 Subject: [PATCH 0336/3440] Fix order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 493432668c4..c8787abf896 100644 --- a/README.md +++ b/README.md @@ -510,8 +510,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement messaging systems* * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. -* [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. * [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. +* [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. * [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 * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. From 0931155ee883691e6df537631b3dc2052ca17a3b Mon Sep 17 00:00:00 2001 From: Lee Benson Date: Thu, 7 Jan 2016 11:09:47 +0000 Subject: [PATCH 0337/3440] adds conform - adds [conform](http://github.com/leebenson/conform) to the "Forms" section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7c5b2eee539..8c57a084abe 100644 --- a/README.md +++ b/README.md @@ -364,6 +364,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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](github.com/leebenson/conform) - Keeps user input in check. Trims, sanitizes & scrubs data based on struct tags. * [formam](https://github.com/monoculum/formam) - decode form's values into a struct. * [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. From 0dac365fc8f788b8341e062d22af4a3c1c0c93db Mon Sep 17 00:00:00 2001 From: Lee Benson Date: Thu, 7 Jan 2016 11:10:34 +0000 Subject: [PATCH 0338/3440] Update README.md - fixes HTTPS in conform link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c57a084abe..248d2e2c507 100644 --- a/README.md +++ b/README.md @@ -364,7 +364,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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](github.com/leebenson/conform) - Keeps user input in check. Trims, sanitizes & scrubs data based on struct tags. +* [conform](https://github.com/leebenson/conform) - Keeps user input in check. Trims, sanitizes & scrubs data based on struct tags. * [formam](https://github.com/monoculum/formam) - decode form's values into a struct. * [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. From 8325c3d4724f74661883a4d22d81413be6d3c7a2 Mon Sep 17 00:00:00 2001 From: Oleg Sklyar Date: Fri, 8 Jan 2016 23:46:40 +0100 Subject: [PATCH 0339/3440] Added go-longpoll and go-shortid --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7c5b2eee539..a2f913e9ccc 100644 --- a/README.md +++ b/README.md @@ -511,6 +511,7 @@ 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. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. +* [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 * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. @@ -532,6 +533,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. +* [go-shortid](https://github.com/ventu-io/go-shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [gopsutil](https://github.com/shirou/gopsutil) - A 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 * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. From 8d0c58d81c7e9d6df262df33aff2fcbba1b4bd0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Sat, 9 Jan 2016 13:16:36 +0100 Subject: [PATCH 0340/3440] Add dpar and go2vec. Add two project to the Natural Language Processing section: * dpar, a transition-based dependency parser. * go2vec, a reader for word2vec embeddings. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7c5b2eee539..c6e2b5b95fa 100644 --- a/README.md +++ b/README.md @@ -544,9 +544,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with human languages.* +* [dpar](https://github.com/danieldk/dpar/) - Transition-based statistical dependency parser. * [go-eco](https://code.google.com/p/go-eco/) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. * [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. +* [go2vec](https://github.com/danieldk/go2vec) - Reader and utility functions for word2vec embeddings. * [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. From 786b4de5ba3c2756bc6af5c72bedec23f5c44950 Mon Sep 17 00:00:00 2001 From: Oleg Sklyar Date: Sun, 10 Jan 2016 16:46:14 +0100 Subject: [PATCH 0341/3440] Adding go-log-interface: a generic interface for leveled logging --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a2f913e9ccc..a33e0737b0a 100644 --- a/README.md +++ b/README.md @@ -464,6 +464,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. +* [go-log-interface](https://github.com/ventu-io/go-log-interface) - A generic leveled log interface to adopt any logging framework and a default facade for Go stdlib log.Logger. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. From 0ad3c0aa485e541c848abf90ba177a85e911d93b Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Sun, 10 Jan 2016 13:47:40 -0200 Subject: [PATCH 0342/3440] added goreportcard on Quality standard --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 31c03e69fad..bb2429b9268 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ Please contribute links to packages/projects you have used or are familiar with. ## Quality standard -To be on the list, project repositories should adhere to these quality standards: +To be on the list, project repositories should adhere to these quality standards (http://goreportcard.com/report//): - Code functions as documented and expected - Generally useful to the wider community of Go programmers From 98a5a7dc78860ec350f56ffda07f423f1b912dd4 Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Sun, 10 Jan 2016 13:48:32 -0200 Subject: [PATCH 0343/3440] fix typo --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bb2429b9268..0ba6ffa6bad 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ Please contribute links to packages/projects you have used or are familiar with. ## Quality standard -To be on the list, project repositories should adhere to these quality standards (http://goreportcard.com/report//): +To be on the list, project repositories should adhere to these quality standards (http://goreportcard.com/report/**github_user**/**github_user**): - Code functions as documented and expected - Generally useful to the wider community of Go programmers From 507e40b73e87d3e62f73f7fa96ac3a9994cfdb1d Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Sun, 10 Jan 2016 14:46:58 -0200 Subject: [PATCH 0344/3440] document rules of creating category --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0ba6ffa6bad..d949637c713 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,7 @@ To set this list apart from and compliment the excellent [Go wiki Projects page] - 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 +- Needs bibliotica 3 (minimum) 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. From 6295eaa0daadbfa31cd0b5ec827c09f68cc85fe2 Mon Sep 17 00:00:00 2001 From: Miguel Loureiro Date: Mon, 11 Jan 2016 01:30:37 +0000 Subject: [PATCH 0345/3440] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d949637c713..110e8efe601 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ Please contribute links to packages/projects you have used or are familiar with. ## Quality standard -To be on the list, project repositories should adhere to these quality standards (http://goreportcard.com/report/**github_user**/**github_user**): +To be on the list, project repositories should adhere to these quality standards (http://goreportcard.com/report/**github_user**/**github_repo**): - Code functions as documented and expected - Generally useful to the wider community of Go programmers From fe51aff7853b4ee1180fc6d2d98aca8d16ef6fec Mon Sep 17 00:00:00 2001 From: Miguel Loureiro Date: Mon, 11 Jan 2016 01:34:13 +0000 Subject: [PATCH 0346/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3cf0dba82af..62982c347d2 100644 --- a/README.md +++ b/README.md @@ -875,6 +875,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. * [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. +* [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 * [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. From 60af123fc8feac84a8ceba000558f8016d11d211 Mon Sep 17 00:00:00 2001 From: Gilberto Conti Date: Mon, 11 Jan 2016 15:47:24 +0100 Subject: [PATCH 0347/3440] add mqttPaho --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 62982c347d2..a0d624e782c 100644 --- a/README.md +++ b/README.md @@ -591,6 +591,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. * [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces * [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. * [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. From 6fce072f504c8af61f575bb4792a1675615ddcbb Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Mon, 11 Jan 2016 15:17:01 -0500 Subject: [PATCH 0348/3440] Update web hook library description add Bitbucket support to web hooks library description. https://github.com/go-playground/webhooks --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 62982c347d2..4befc6d1d1a 100644 --- a/README.md +++ b/README.md @@ -847,7 +847,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. -* [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub.. more services to come +* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub and Bitbucket ## Utilities From c11ac514925b8afea3cff8c725b5ade3d9436d9b Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Mon, 11 Jan 2016 16:36:25 -0800 Subject: [PATCH 0349/3440] Add minio project S3 library, client and server. --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4befc6d1d1a..f23ed138722 100644 --- a/README.md +++ b/README.md @@ -719,6 +719,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [consul](https://www.consul.io/) - Consul is a tool for service discovery, monitoring and configuration. * [devd](https://github.com/cortesi/devd) - A local webserver for developers * [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. +* [minio](https://github.com/minio/minio) - Minio is a cloud storage server for Micro Services. +* [minio-xl](https://github.com/minio/minio-xl) - Minio XL is a cloud storage server for Petascale Storage. * [nsq](http://nsq.io/) - A realtime distributed messaging platform * [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. @@ -831,8 +833,9 @@ 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) - A Golang SDK for Medium's OAuth2 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. -* [paypal] (https://github.com/logpacker/paypalsdk) - Wrapper for PayPal payment 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 * [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. @@ -890,6 +893,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. * [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. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers * [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. From fc8b0ac867424a748b92cfd75eb81697e82ebba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Dymi=C5=84ski?= Date: Tue, 12 Jan 2016 09:51:57 +0100 Subject: [PATCH 0350/3440] Add GopherCon Dubai to conferences list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4befc6d1d1a..4a38a0a202b 100644 --- a/README.md +++ b/README.md @@ -1149,6 +1149,7 @@ Where to discover new Go libraries. * [GolangUK](http://golanguk.com/) - London, UK * [GopherChina](http://gopherchina.org) - Shanghai, China * [GopherCon](http://www.gophercon.com/) - Denver, USA +* [GopherCon Dubai](http://www.gophercon.ae/) - Dubai, UAE * [GopherCon India](http://www.gophercon.in/) - Bengaluru, India * [GothamGo](http://gothamgo.com/) - New York City, USA From 6d81c030950ee0e21726cacc32f0d27cd79e5b20 Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Wed, 13 Jan 2016 03:54:04 -0200 Subject: [PATCH 0351/3440] added gitter.im/avelino/awesome-go badges --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index e8ef003378f..fed8249ddc8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) +# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Join the chat at https://gitter.im/avelino/awesome-go](https://badges.gitter.im/avelino/awesome-go.svg)](https://gitter.im/avelino/awesome-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). @@ -8,8 +8,6 @@ A curated list of awesome Go frameworks, libraries and software. Inspired by [aw Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! -[Join us on Slack](https://gophers.slack.com/?redir=%2Fmessages%2Fawesome%2F) to chat with other awesome-go maintainers! ([Request an invite](https://bit.ly/go-slack-signup), then join the #awesome channel.) - #### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!* From c4838b62ef0a6acf3e3e1512bbc7ea7d279ded9d Mon Sep 17 00:00:00 2001 From: Claudemiro Date: Fri, 15 Jan 2016 19:26:00 -0200 Subject: [PATCH 0352/3440] Added Ipe - An open source Pusher server implementation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a108397007c..6f484f3145d 100644 --- a/README.md +++ b/README.md @@ -1102,6 +1102,7 @@ Software written in Go. * [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. * [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine +* [ipe](https://github.com/dimiro1/ipe) - An open source Pusher server implementation compatible with Pusher client libraries written in GO. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. From 56793a11e6d271ca8708cc6a9a26d395c7adb9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20M=C3=BCller?= Date: Fri, 15 Jan 2016 23:51:30 +0100 Subject: [PATCH 0353/3440] added apex/log logging lib --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a108397007c..36d865cea79 100644 --- a/README.md +++ b/README.md @@ -468,6 +468,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-log-interface](https://github.com/ventu-io/go-log-interface) - A generic leveled log interface to adopt any logging framework and a default facade for Go stdlib log.Logger. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. +* [log](https://github.com/apex/log) - Structured logging package 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 * [logex](https://github.com/chzyer/logex) - An golang log lib, supports tracking and level, wrap by standard log lib From 76aae9b6bdbef2f07288eb02a89502cc6f26992e Mon Sep 17 00:00:00 2001 From: Jason Del Ponte Date: Fri, 15 Jan 2016 20:44:00 -0800 Subject: [PATCH 0354/3440] Update README.md's aws-sdk-go comment Updated the AWS SDK for Go's comment line to reflect that it is now officially launched and ready for production use. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a108397007c..db18f8c52a9 100644 --- a/README.md +++ b/README.md @@ -815,7 +815,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for accessing third party APIs.* * [anaconda](https://github.com/ChimeraCoder/anaconda) - A 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. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. +* [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. * [clarifai](https://github.com/samuelcouch/clarifai) - A Go client library for interfacing with the Clarifai API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API From 4d316786a823e42f8903b043179b6732f1e255b2 Mon Sep 17 00:00:00 2001 From: pyros2097 Date: Sat, 16 Jan 2016 14:02:57 +0530 Subject: [PATCH 0355/3440] Add goqt to the gui section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index db18f8c52a9..addd40ad9c1 100644 --- a/README.md +++ b/README.md @@ -420,6 +420,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 +* [goqt](https://github.com/visualfc/goqt) - Golang bindings to the Qt cross-platform application framework. * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. From 3b5b67d645d09543bb7d6fcd9e313e2d45c0fb37 Mon Sep 17 00:00:00 2001 From: Elgs Qian Chen Date: Sun, 17 Jan 2016 09:02:59 -0800 Subject: [PATCH 0356/3440] Added jsonql in Query Language and gojq in Utilities --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e398edece10..bafd43e5a37 100644 --- a/README.md +++ b/README.md @@ -651,7 +651,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. * [graphql](https://github.com/sevki/graphql) - GraphQL implementation in go. * [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. - +* [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. ## Resource Embedding @@ -881,6 +881,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. +* [gojq](https://github.com/elgs/gojq) - JSON query in Golang. * [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. * [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. From 05cb5ea3c68f8ba39f846e2042084ba13f8ee373 Mon Sep 17 00:00:00 2001 From: Rafal Jeczalik Date: Mon, 18 Jan 2016 12:53:41 +0100 Subject: [PATCH 0357/3440] add interfaces to the generation section --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bafd43e5a37..fef90285db2 100644 --- a/README.md +++ b/README.md @@ -378,7 +378,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [engi](https://github.com/paked/engi) - A cross-platform game engine following the Entity Component System design pattern * [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) - A performance oriented 2D/3D math package for Go @@ -393,6 +393,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. From d282c5d00de72ec50b2977b99bf161c7e4aaec83 Mon Sep 17 00:00:00 2001 From: Jeevanandam M Date: Mon, 18 Jan 2016 09:25:37 -0800 Subject: [PATCH 0358/3440] Added go-resty library reference under Utilities. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e398edece10..fc127bd948b 100644 --- a/README.md +++ b/README.md @@ -909,6 +909,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. +* [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. From 2184fa3f1a545046b81f9c35f4d8479cc27e2926 Mon Sep 17 00:00:00 2001 From: Jesse Donat Date: Tue, 19 Jan 2016 23:09:19 -0600 Subject: [PATCH 0359/3440] Adds mpo 3d image decode --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fef90285db2..b3f4d9ca08e 100644 --- a/README.md +++ b/README.md @@ -453,6 +453,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing * [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. * [img](https://github.com/hawx/img) - A selection of image manipulation tools. +* [mpo](https://github.com/donatj/mpo) - A decoder and conversion tool for MPO 3D Photos. * [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go * [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods. * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. From f460312b73e6c6ac0ed2bbd424638f9523c48223 Mon Sep 17 00:00:00 2001 From: jolestar Date: Thu, 21 Jan 2016 00:55:37 +0800 Subject: [PATCH 0360/3440] add go-commons-pool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3f4d9ca08e..929586dfeb8 100644 --- a/README.md +++ b/README.md @@ -539,6 +539,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [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) - A generic object pool for Golang. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [go-shortid](https://github.com/ventu-io/go-shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). From c6cbe72bcf5e0fb7e1b7a120463abcf744146b5a Mon Sep 17 00:00:00 2001 From: Burcu Dogan Date: Wed, 20 Jan 2016 17:00:00 -0800 Subject: [PATCH 0361/3440] Add tcolgate/mp3. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3f4d9ca08e..ce69aa361ff 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. +* [mp3](https://github.com/tcolgate/mp3) - A native Go MP# decoder. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. From 32d91fb1b3a1851758931d033a5d1889135d139b Mon Sep 17 00:00:00 2001 From: Bruce Date: Fri, 22 Jan 2016 19:19:03 -0600 Subject: [PATCH 0362/3440] Update README.md Adding discordgo, Go bindings for the Discord Chat API --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ce69aa361ff..7b0c2f7ada8 100644 --- a/README.md +++ b/README.md @@ -823,6 +823,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [clarifai](https://github.com/samuelcouch/clarifai) - A 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 * [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. From a7666ed72e84c3af7974c7833fc94d1e2fd89e2b Mon Sep 17 00:00:00 2001 From: Jeevanandam M Date: Fri, 22 Jan 2016 17:54:38 -0800 Subject: [PATCH 0363/3440] alphabetical order is corrected --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fc127bd948b..54959588891 100644 --- a/README.md +++ b/README.md @@ -909,8 +909,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. -* [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes +* [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. From f57ee3ffd2da8bf1f06a3807dc9172cefacf36c7 Mon Sep 17 00:00:00 2001 From: longbai Date: Sun, 24 Jan 2016 11:56:16 +0800 Subject: [PATCH 0364/3440] add checkstyle --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a7d9c5d764b..26def0ad36d 100644 --- a/README.md +++ b/README.md @@ -1043,7 +1043,7 @@ Go software and plugins. * [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. * [interfacer](https://github.com/mvdan/interfacer) - A linter that suggests interface types. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. - +* [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by [java checkstyle](https://github.com/checkstyle/checkstyle), [golint] (https://github.com/golang/lint). The style refered to some points in [Go Code Review Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments). ## Editor Plugins From 49dadb0539cd6e35209ea12bacc2df5f28ff497c Mon Sep 17 00:00:00 2001 From: longbai Date: Sun, 24 Jan 2016 11:57:57 +0800 Subject: [PATCH 0365/3440] add checkstyle for go --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 26def0ad36d..ecb2cdf1460 100644 --- a/README.md +++ b/README.md @@ -1035,6 +1035,7 @@ Go software and plugins. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. * [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. +* [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by [java checkstyle](https://github.com/checkstyle/checkstyle), [golint] (https://github.com/golang/lint). The style refered to some points in [Go Code Review Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments). * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. @@ -1043,7 +1044,7 @@ Go software and plugins. * [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. * [interfacer](https://github.com/mvdan/interfacer) - A linter that suggests interface types. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. -* [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by [java checkstyle](https://github.com/checkstyle/checkstyle), [golint] (https://github.com/golang/lint). The style refered to some points in [Go Code Review Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments). + ## Editor Plugins From 352b5b528e78f5119d98188bf1f3d5a7efeaf9e4 Mon Sep 17 00:00:00 2001 From: longbai Date: Sun, 24 Jan 2016 14:30:30 +0800 Subject: [PATCH 0366/3440] reorder item --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ecb2cdf1460..702261f0343 100644 --- a/README.md +++ b/README.md @@ -1034,8 +1034,8 @@ Go software and plugins. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. * [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. +* [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. -* [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by [java checkstyle](https://github.com/checkstyle/checkstyle), [golint] (https://github.com/golang/lint). The style refered to some points in [Go Code Review Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments). * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. From a756e38020081b210c287d7c84141471ecdf05e0 Mon Sep 17 00:00:00 2001 From: Faraz Fazli Date: Mon, 25 Jan 2016 16:25:04 -0500 Subject: [PATCH 0367/3440] Add kubernetes Kubernetes is a Container Cluster Manager from Google. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a7d9c5d764b..4e236596a84 100644 --- a/README.md +++ b/README.md @@ -1088,6 +1088,7 @@ Software written in Go. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. * [hk](https://github.com/heroku/hk) - Heroku command-line interface in Go. * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. +* [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. * [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. From 288282b992cda74547ba2efd970102e6d0571614 Mon Sep 17 00:00:00 2001 From: butaixianran Date: Wed, 27 Jan 2016 18:06:32 +0800 Subject: [PATCH 0368/3440] Update README.md add GoDocTooltip to Other Software --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3b47de2dcb..6a99ee2fd63 100644 --- a/README.md +++ b/README.md @@ -1109,6 +1109,7 @@ Software written in Go. * [fleet](https://github.com/coreos/fleet) - A Distributed init System. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. +* [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - A chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. * [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer From 924f2e5ccad4975045601588a8ecb4489587c82b Mon Sep 17 00:00:00 2001 From: Charney Kaye Date: Thu, 28 Jan 2016 10:23:12 -0500 Subject: [PATCH 0369/3440] Added go-atomix to Audio & Music section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6a99ee2fd63..ffb2ac245f2 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* * [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. +* [go-atomix](https://github.com/outrightmental/go-atomix) - Sequence-based Go-native audio mixer for Music apps. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [mp3](https://github.com/tcolgate/mp3) - A native Go MP# decoder. From 0d415158db83e9b04cc1b2aa922cf4271edfd41c Mon Sep 17 00:00:00 2001 From: UnnoTed Date: Fri, 29 Jan 2016 00:18:01 -0300 Subject: [PATCH 0370/3440] added fileb0x to Resource Embedding --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ffb2ac245f2..e4b1e0a6386 100644 --- a/README.md +++ b/README.md @@ -661,6 +661,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Resource Embedding +* [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-resources](https://github.com/omeid/go-resources) - Unfancy resources embedding with Go. From 25bc5e5d1043d6a1f13687c0d741fadf6b1d5a7d Mon Sep 17 00:00:00 2001 From: hit9 Date: Sun, 31 Jan 2016 12:04:40 +0800 Subject: [PATCH 0371/3440] Add banshee to devops --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4b1e0a6386..bd9e652cd10 100644 --- a/README.md +++ b/README.md @@ -1075,6 +1075,7 @@ Software written in Go. * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile +* [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. * [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). From 63362a4a57ca1a9b93d0f3096ea5c6d17f681a99 Mon Sep 17 00:00:00 2001 From: Navid Date: Sun, 31 Jan 2016 22:41:26 +0330 Subject: [PATCH 0372/3440] Add go-persian-calendar to Date & Time `go-persian-calendar` was appended to `Date & Time` libraries --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4b1e0a6386..e034bf30867 100644 --- a/README.md +++ b/README.md @@ -304,6 +304,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. +* [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). ## Distributed Systems From a7f932efad976f15332a4375e3e3fbc32a479111 Mon Sep 17 00:00:00 2001 From: Navid Date: Sun, 31 Jan 2016 22:45:33 +0330 Subject: [PATCH 0373/3440] Sort alphabetically --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e034bf30867..076b792da13 100644 --- a/README.md +++ b/README.md @@ -301,10 +301,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for working with dates and times.* +* [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. * [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. -* [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). ## Distributed Systems From 23ff286757521f5c0b76929f56ee762d3293093c Mon Sep 17 00:00:00 2001 From: Michael Martinez Date: Sun, 31 Jan 2016 16:39:31 -0700 Subject: [PATCH 0374/3440] changed macaron to proper repo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e4b1e0a6386..12543ce476c 100644 --- a/README.md +++ b/README.md @@ -981,7 +981,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go.Inspiration from httprouter -* [Macaron](https://github.com/Unknwon/macaron) - Macaron is a high productive and modular design web framework in Go. +* [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. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. * [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. From 1d4ab8269154515f7bbb929102f297c775756d99 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Sun, 31 Jan 2016 22:21:34 -0500 Subject: [PATCH 0375/3440] added ozzo-routing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4b1e0a6386..32d5fd43a92 100644 --- a/README.md +++ b/README.md @@ -986,6 +986,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. * [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. +* [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application. * [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. * [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. * [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. From e76d72f0e1a834c92af55736e80f0e2850527f54 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Sun, 31 Jan 2016 22:27:26 -0500 Subject: [PATCH 0376/3440] added ozzo-log --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4b1e0a6386..3f53163c16e 100644 --- a/README.md +++ b/README.md @@ -485,6 +485,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. * [mlog](https://github.com/jbrodriguez/mlog) - A 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. * [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) - A Go package striving to emulate the features of the BSD tail program. From fcf12edbf1a038d4818c062df886e7cb3c6e182e Mon Sep 17 00:00:00 2001 From: Quentin Perez Date: Mon, 1 Feb 2016 11:11:16 +0100 Subject: [PATCH 0377/3440] Add Scaleway-cli to DevOps tools --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4b1e0a6386..cbb31962aa2 100644 --- a/README.md +++ b/README.md @@ -1097,6 +1097,7 @@ Software written in Go. * [Packer](https://github.com/mitchellh/packer) - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. +* [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). * [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) - A Web-based IDE for Teams using Golang. From 41b9bcd8a09a6358d02b4cbcb1b0c69978280e39 Mon Sep 17 00:00:00 2001 From: Nick Klauer Date: Mon, 1 Feb 2016 18:41:45 -0600 Subject: [PATCH 0378/3440] Add Go Forum I use it, thought it might be pretty awesome to add another resource to discuss Go. https://forum.golangbridge.org/t/welcome-to-the-go-forum/8 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d9555e37833..55d4af0de85 100644 --- a/README.md +++ b/README.md @@ -1204,6 +1204,7 @@ Where to discover new Go libraries. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. * [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. * [Go Blog](http://blog.golang.org) - The official Go blog +* [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. * [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art From 43e42a9fcc47ba2da29d52480636bf741d406be4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Tue, 2 Feb 2016 11:21:29 +0100 Subject: [PATCH 0379/3440] Add go-outdated Fix #468 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 55d4af0de85..554e3209914 100644 --- a/README.md +++ b/README.md @@ -1040,6 +1040,7 @@ Go software and plugins. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. * [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. * [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. +* [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. From a608e947866e2702e43f5e90c1b10908e3e2184e Mon Sep 17 00:00:00 2001 From: mewmew Date: Tue, 2 Feb 2016 14:11:30 +0100 Subject: [PATCH 0380/3440] Add FLAC decoder. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a7d9c5d764b..cf7142b4d2c 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* * [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. +* [flac](https://github.com/mewkiz/flac) - A native Go FLAC decoder. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [mp3](https://github.com/tcolgate/mp3) - A native Go MP# decoder. From 29f3df334154f51a5f3c1943f1ea2023d08fbe1b Mon Sep 17 00:00:00 2001 From: mewmew Date: Tue, 2 Feb 2016 14:17:04 +0100 Subject: [PATCH 0381/3440] Add FLAC decoding. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 554e3209914..52496c4c233 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* * [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. +* [flac](https://github.com/mewkiz/flac) - A native Go FLAC decoder. * [go-atomix](https://github.com/outrightmental/go-atomix) - Sequence-based Go-native audio mixer for Music apps. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. From f1c79b82cf3694f27cd56b365de1ad9d7442ecd8 Mon Sep 17 00:00:00 2001 From: Zhuang Sirui Date: Wed, 3 Feb 2016 00:52:09 +0800 Subject: [PATCH 0382/3440] Add binpacker to Data Structures --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 554e3209914..8ec7c66eb4a 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Generic datastructures and algorithms in Go.* +* [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. * [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. * [bloom](https://github.com/zhenjl/bloom) - Bloom filters implemented in Go. * [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams From ac448d8e17f42fbd095eafcfc2e10e6bdbc7ce22 Mon Sep 17 00:00:00 2001 From: Max Halford Date: Tue, 2 Feb 2016 22:05:24 +0100 Subject: [PATCH 0383/3440] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 554e3209914..097216d2c36 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Join the chat at https://gitter.im/avelino/awesome-go](https://badges.gitter.im/avelino/awesome-go.svg)](https://gitter.im/avelino/awesome-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) g [![Join the chat at https://gitter.im/avelino/awesome-go](https://badges.gitter.im/avelino/awesome-go.svg)](https://gitter.im/avelino/awesome-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). @@ -514,6 +514,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [probab](https://code.google.com/p/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 +* [gago](https://github.com/MaxHalford/gago) - Multi-population, flexible, parallel genetic algorithm. ## Messaging From ea4587571a506a7e0fcc8d98f82dc48bfc3b3ccd Mon Sep 17 00:00:00 2001 From: Max Halford Date: Tue, 2 Feb 2016 22:06:15 +0100 Subject: [PATCH 0384/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 097216d2c36..a9e5111dbc7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) g [![Join the chat at https://gitter.im/avelino/awesome-go](https://badges.gitter.im/avelino/awesome-go.svg)](https://gitter.im/avelino/awesome-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Join the chat at https://gitter.im/avelino/awesome-go](https://badges.gitter.im/avelino/awesome-go.svg)](https://gitter.im/avelino/awesome-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 18f87da8cf81b5c67a047e88d72d7f274aa8526e Mon Sep 17 00:00:00 2001 From: Bent Cardan Date: Wed, 3 Feb 2016 02:10:47 -0800 Subject: [PATCH 0385/3440] nanomsg scalability protocols in go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 554e3209914..70bcbbbd251 100644 --- a/README.md +++ b/README.md @@ -528,6 +528,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-nsq](https://github.com/nsqio/go-nsq) - the official Go package for NSQ * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. * [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. +* [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [NATS](https://github.com/nats-io/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. * [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs * [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. From 2dbcbe72b0282a9aebe97982fb1aeda23c8cbb9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dario=20Casta=C3=B1=C3=A9?= Date: Thu, 4 Feb 2016 16:31:18 +0100 Subject: [PATCH 0386/3440] Add Mergo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 554e3209914..d3310d46e70 100644 --- a/README.md +++ b/README.md @@ -908,6 +908,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. * [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) - A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers * [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. From b41ba280e82d1218bd7e35b869d79e99a41c12c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=88r=20Karlsson?= Date: Fri, 5 Feb 2016 11:08:12 +0100 Subject: [PATCH 0387/3440] Added github.com/pariz/gountries to Miscellaneous --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 092fb1a264e..4ab999ef349 100644 --- a/README.md +++ b/README.md @@ -487,7 +487,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. * [mlog](https://github.com/jbrodriguez/mlog) - A 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). +* [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. * [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) - A Go package striving to emulate the features of the BSD tail program. @@ -549,6 +549,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-shortid](https://github.com/ventu-io/go-shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [gopsutil](https://github.com/shirou/gopsutil) - A 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 +* [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data. * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [margelet](https://github.com/zhulik/margelet) - A framework for building Telegram bots. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. From 1f7bf0451ef163a699a8751d5068f88d5bb8dbdb Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 8 Feb 2016 19:59:44 +1100 Subject: [PATCH 0388/3440] update description of geo-golang geo-golang supports Mapbox now. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 35c7f086637..e4e79c67e10 100644 --- a/README.md +++ b/README.md @@ -835,7 +835,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -* [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) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. +* [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), and [Mapbox](https://www.mapbox.com/developers/api/geocoding/) 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 API. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS From 2bed4971adec44df326dc64d22fb860dee9886a7 Mon Sep 17 00:00:00 2001 From: Ryan Armstrong Date: Wed, 10 Feb 2016 15:14:20 +0800 Subject: [PATCH 0389/3440] Added grab --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4e79c67e10..bafcf600303 100644 --- a/README.md +++ b/README.md @@ -601,6 +601,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A 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) - An experimental FTP server framework. * [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces * [mdns](https://github.com/hashicorp/mdns) - Simple mDNS (Multicast DNS) client/server library in Golang From bd559b1e0fffe53f6a4463f09a953b8a43cc87e9 Mon Sep 17 00:00:00 2001 From: Francois Date: Wed, 10 Feb 2016 10:38:56 +0200 Subject: [PATCH 0390/3440] Add the golang G+ community --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index e4e79c67e10..b9e446241e5 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Benchmarks](#benchmarks) - [Conferences](#conferences) - [E-Books](#e-books) + - [Social](#social) - [Twitter](#twitter) - [Websites](#websites) - [Tutorials](#tutorials) @@ -1195,6 +1196,10 @@ Where to discover new Go libraries. * [Network Programming With Go](https://jan.newmarch.name/go/) * [The Go Programming Language](http://www.gopl.io/) +## Social + +* [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. + ## Twitter * [@golang](https://twitter.com/golang) From bb9df15b2ee1b290080866dc9110ed002100b6db Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Wed, 10 Feb 2016 07:52:45 -0800 Subject: [PATCH 0391/3440] Updated echo and gommon/bytes Signed-off-by: Vishal Rana --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1b492dcdb66..40bc8fcde0f 100644 --- a/README.md +++ b/README.md @@ -488,7 +488,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. * [mlog](https://github.com/jbrodriguez/mlog) - A 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). +* [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. * [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) - A Go package striving to emulate the features of the BSD tail program. @@ -808,7 +808,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. - * [gommon/gytes](https://github.com/labstack/gommon/tree/master/gytes) - Format bytes to string. + * [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 * [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) - A library for generating random strings from regular expressions. @@ -969,7 +969,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. * [chi](https://github.com/pressly/chi) - Small, fast and expressive HTTP router built on net/context. -* [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. +* [Echo](https://github.com/labstack/echo) - A fast and unfancy micro web framework for Go. * [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. * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) From 96717fd4b5ea0c6788059effb90d92420be48621 Mon Sep 17 00:00:00 2001 From: Alexandr Emelin Date: Thu, 11 Feb 2016 10:14:56 +0300 Subject: [PATCH 0392/3440] Add Centrifugo Real-time messaging (Websockets or SockJS) server in Go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7a0594f7d1c..fc4997d2f23 100644 --- a/README.md +++ b/README.md @@ -522,6 +522,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement messaging systems* +* [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. * [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. From 7f7e8fc44dae628bf03bc96eec6652d3c603d7a7 Mon Sep 17 00:00:00 2001 From: Marin Atanasov Nikolov Date: Thu, 11 Feb 2016 14:18:45 +0200 Subject: [PATCH 0393/3440] Add go-vcr --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0f007adfbf6..fa6dcb9bbca 100644 --- a/README.md +++ b/README.md @@ -771,6 +771,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [frisby](https://github.com/verdverm/frisby) - a REST API testing framework * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go * [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) - A more advanced testing framework alternative to gotest. * [GoConvey](https://github.com/smartystreets/goconvey/) - BDD-style framework with web UI and live reload From 884ac33b9727885c9b54ad1491cfb41519709a48 Mon Sep 17 00:00:00 2001 From: Ryan Armstrong Date: Sat, 13 Feb 2016 23:19:17 +0800 Subject: [PATCH 0394/3440] Added BadIO --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa6dcb9bbca..03013b7847a 100644 --- a/README.md +++ b/README.md @@ -767,6 +767,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * Testing Frameworks * [assert](https://github.com/go-playground/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing + * [badio](https://github.com/cavaliercoder/badio) - Extensions to Go's `testing/iotest` package * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them * [frisby](https://github.com/verdverm/frisby) - a REST API testing framework * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go From c0162dea5454f14238f0004f6fcffe077af3fd0a Mon Sep 17 00:00:00 2001 From: Manish R Jain Date: Mon, 15 Feb 2016 10:41:58 +1100 Subject: [PATCH 0395/3440] Add DGraph to Go Databases --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa6dcb9bbca..5e0c4ddbadf 100644 --- a/README.md +++ b/README.md @@ -218,6 +218,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. * [cockroach](https://github.com/cockroachdb/cockroach) - A Scalable, Geo-Replicated, Transactional Datastore * [couchcache](https://github.com/codingsince1985/couchcache) - A 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) - A home-grown disk-backed key-value store. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. From 9944db57eeb31d11c6356353b5245fced8c6df13 Mon Sep 17 00:00:00 2001 From: StabbyCutyou Date: Tue, 16 Feb 2016 14:24:14 -0500 Subject: [PATCH 0396/3440] Adding a link to Moldova, a utility for generating random data based on an input template --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa6dcb9bbca..36d566ecd3f 100644 --- a/README.md +++ b/README.md @@ -917,6 +917,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. +* [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers * [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. From 6e12d608e50022273f3ec7998419e458115fc8b8 Mon Sep 17 00:00:00 2001 From: Charney Kaye Date: Tue, 16 Feb 2016 22:15:57 -0800 Subject: [PATCH 0397/3440] go-atomix was renamed to ontomix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fa6dcb9bbca..b87c4981319 100644 --- a/README.md +++ b/README.md @@ -89,10 +89,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. * [flac](https://github.com/mewkiz/flac) - A native Go FLAC decoder. -* [go-atomix](https://github.com/outrightmental/go-atomix) - Sequence-based Go-native audio mixer for Music apps. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [mp3](https://github.com/tcolgate/mp3) - A native Go MP# decoder. +* [ontomix](https://github.com/outrightmental/ontomix) - Sequence-based Go-native audio mixer for Music apps. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. From 77c48dd808ddc90ddce5972cb8b79b97eaf33619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Fri, 19 Feb 2016 11:52:47 +0100 Subject: [PATCH 0398/3440] add: skynet to benchmarks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a58f2182c3b..799f7398736 100644 --- a/README.md +++ b/README.md @@ -1176,6 +1176,7 @@ Where to discover new Go libraries. * [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - A collection of benchmarks for popular Go database/SQL utilities. * [gospeed](https://github.com/feyeleanor/GoSpeed) - Go micro-benchmarks for calculating the speed of language constructs. * [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. +* [skynet](https://github.com/atemerev/skynet) - Skynet 1M threads microbenchmark. * [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. From 752b501b0a80ddbcf84adcb4405f5496578f6437 Mon Sep 17 00:00:00 2001 From: Shawn Ding Date: Fri, 19 Feb 2016 18:27:28 -0500 Subject: [PATCH 0399/3440] Added Golf to Go web frameworks. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 799f7398736..72bc7fdf478 100644 --- a/README.md +++ b/README.md @@ -987,6 +987,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. * [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. +* [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. * [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple. * [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster * [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go From 5a79a8797a7f73ca8df43a3e17ad056098afc5a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Sun, 21 Feb 2016 19:40:46 +0100 Subject: [PATCH 0400/3440] update: probab, go-eco and go-gt google code to github links Related #328 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 799f7398736..ad3ea41ac37 100644 --- a/README.md +++ b/README.md @@ -515,7 +515,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. * [mlgo](https://code.google.com/p/mlgo/) - This project aims to provide minimalistic machine learning algorithms in Go. * [neural-go](https://github.com/schuyler/neural-go) - A multilayer perceptron network implemented in Go, with training via backpropagation. -* [probab](https://code.google.com/p/probab/) - Probability distribution functions. Bayesian inference. Written in pure Go. +* [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 @@ -567,7 +567,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with human languages.* * [dpar](https://github.com/danieldk/dpar/) - Transition-based statistical dependency parser. -* [go-eco](https://code.google.com/p/go-eco/) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. +* [go-eco](https://github.com/ThePaw/go-eco) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. * [go-i18n](https://github.com/nicksnyder/go-i18n/) - A package and an accompanying tool to work with localized text. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. * [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. @@ -691,7 +691,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg -* [go-gt](https://code.google.com/p/go-gt/) - Graph theory algorithms written in "Go" language +* [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://code.google.com/p/gocomplex/) - A complex number library for the Go programming language. * [gofrac](https://github.com/anschelsc/gofrac) - A (goinstallable) fractions library for go with support for basic arithmetic. From b01a39290f780d227a3de6f6f5bd2b017f475791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Sun, 21 Feb 2016 20:03:55 +0100 Subject: [PATCH 0401/3440] update: mlgo, gocomplex, gostat and go-fn google code to github links Related #328 --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ad3ea41ac37..60e6241de3a 100644 --- a/README.md +++ b/README.md @@ -513,7 +513,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go * [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. -* [mlgo](https://code.google.com/p/mlgo/) - This project aims to provide minimalistic machine learning algorithms in Go. +* [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. * [neural-go](https://github.com/schuyler/neural-go) - A 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 @@ -690,16 +690,16 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg +* [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://code.google.com/p/gocomplex/) - A complex number library for the Go programming language. +* [gocomplex](https://github.com/varver/gocomplex) - A complex number library for the Go programming language. * [gofrac](https://github.com/anschelsc/gofrac) - A (goinstallable) fractions library for go with support for basic arithmetic. * [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) - A pure Go graph theory library(data structure, algorith visualization) -* [gostat](https://code.google.com/p/gostat/) - A statistics library for the go language +* [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language * [mudlark-go](https://code.google.com/p/mudlark-go-pkgs/) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. * [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go * [stats](https://github.com/montanaflynn/stats) - A statistics package with common functions missing from the Golang standard library. From e562393bb4dd8dfbbd5ff80270c5a122afabacb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Sun, 21 Feb 2016 20:09:26 +0100 Subject: [PATCH 0402/3440] update: mudlark-go-pkgs google code to github links Fix #328 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 60e6241de3a..cf3fe835cff 100644 --- a/README.md +++ b/README.md @@ -700,7 +700,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A pure Go graph theory library(data structure, algorith visualization) * [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language -* [mudlark-go](https://code.google.com/p/mudlark-go-pkgs/) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. +* [mudlark-go](https://github.com/pwil3058/mudlark-go-pkgs) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. * [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go * [stats](https://github.com/montanaflynn/stats) - A 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. From 0e8a271dcf54e38be02db2a8f93d4a572ade85f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Sun, 21 Feb 2016 20:29:13 +0100 Subject: [PATCH 0403/3440] add: abutil to general utilities Fix #561 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cf3fe835cff..bcb4614d7bb 100644 --- a/README.md +++ b/README.md @@ -878,6 +878,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *General utilities and tools to make your life easier.* +* [abutil](https://github.com/bahlo/abutil) - A collection of often-used Golang helpers. * [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API. * [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. From 51cef02b989790dda8888020602f8852ad579c68 Mon Sep 17 00:00:00 2001 From: Francois Date: Mon, 22 Feb 2016 03:19:46 +0200 Subject: [PATCH 0404/3440] Move G+ link to Websites category --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index b9e446241e5..8ec41c62668 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Benchmarks](#benchmarks) - [Conferences](#conferences) - [E-Books](#e-books) - - [Social](#social) - [Twitter](#twitter) - [Websites](#websites) - [Tutorials](#tutorials) @@ -1196,10 +1195,6 @@ Where to discover new Go libraries. * [Network Programming With Go](https://jan.newmarch.name/go/) * [The Go Programming Language](http://www.gopl.io/) -## Social - -* [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. - ## Twitter * [@golang](https://twitter.com/golang) @@ -1218,6 +1213,7 @@ Where to discover new Go libraries. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. * [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list +* [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. * [gowalker.org](https://gowalker.org) - Go Project API documentation. * [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. From 2cbb0cf35acd9f7ebaea0f6397264cefff586cd9 Mon Sep 17 00:00:00 2001 From: Dalton Hubble Date: Sun, 21 Feb 2016 12:24:02 -0800 Subject: [PATCH 0405/3440] Add go-twitter to third-party APIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bcb4614d7bb..1a247c4c43d 100644 --- a/README.md +++ b/README.md @@ -846,6 +846,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 API. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS +* [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go From 9490c95f53cde22f91637e64a90a2bad2d30d0ba Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Mon, 22 Feb 2016 01:47:14 -0800 Subject: [PATCH 0406/3440] Remove minio-xl no longer valid, merged with 'minio' project. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 890383d6332..22e68d42448 100644 --- a/README.md +++ b/README.md @@ -739,8 +739,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [consul](https://www.consul.io/) - Consul is a tool for service discovery, monitoring and configuration. * [devd](https://github.com/cortesi/devd) - A local webserver for developers * [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. -* [minio](https://github.com/minio/minio) - Minio is a cloud storage server for Micro Services. -* [minio-xl](https://github.com/minio/minio-xl) - Minio XL is a cloud storage server for Petascale Storage. +* [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nsq](http://nsq.io/) - A realtime distributed messaging platform * [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. From f6fb1a9d8d1587d35178d86e7563680c90c5c336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Mon, 22 Feb 2016 21:04:03 +0100 Subject: [PATCH 0407/3440] add: toto in Other Software Fix #797 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 22e68d42448..c99a7ab42a5 100644 --- a/README.md +++ b/README.md @@ -1150,6 +1150,7 @@ Software written in Go. * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. +* [toto](https://github.com/blogcin/ToTo) - A simple proxy server written in Go language, can be used together with browser. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - An extensible and open source Platform as a Service software. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) From c62c3641c8e0e0536c1045fbd745a4d3d9f2eedb Mon Sep 17 00:00:00 2001 From: kirillDanshin Date: Tue, 23 Feb 2016 11:45:14 +0300 Subject: [PATCH 0408/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c99a7ab42a5..9810232b029 100644 --- a/README.md +++ b/README.md @@ -617,6 +617,7 @@ 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) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. +* [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. ## OpenGL From ec9de5d17a4358d2a3c828608c75cf7357ed86f1 Mon Sep 17 00:00:00 2001 From: kirillDanshin Date: Tue, 23 Feb 2016 11:47:59 +0300 Subject: [PATCH 0409/3440] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9810232b029..6ecedb6f026 100644 --- a/README.md +++ b/README.md @@ -609,6 +609,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grab](https://github.com/cavaliercoder/grab) - Go package for managing file downloads * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. * [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 * [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. @@ -617,7 +618,7 @@ 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) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. -* [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. + ## OpenGL From 5b47f87189c4f5125cf6e7b515eb7b3116ba1249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tarc=C3=ADsio=20Gruppi?= Date: Tue, 23 Feb 2016 23:33:35 -0300 Subject: [PATCH 0410/3440] Added github.com/nproc/parseargs-go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 22e68d42448..c9109cc6fbe 100644 --- a/README.md +++ b/README.md @@ -824,6 +824,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * 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) - A string argument parser that understands quotes and backslashes * [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text From 1e7b7a959f8f325d94f79304e1e5a22fdf9c87bb Mon Sep 17 00:00:00 2001 From: Song Gao Date: Tue, 23 Feb 2016 21:15:28 -0600 Subject: [PATCH 0411/3440] Add ether (for sending/receiving ethernet frames) `ether` is a cross-platform Go package for sending and receiving ethernet frames. Currently it supports Linux, Freebsd, and OS X. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c99a7ab42a5..d5f642e9b8b 100644 --- a/README.md +++ b/README.md @@ -595,6 +595,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [ether](https://github.com/songgao/ether) - A 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 * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). From 94cebf02b05d05240c59f68244f9b93b3a13439a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tarc=C3=ADsio=20Gruppi?= Date: Wed, 24 Feb 2016 07:57:06 -0300 Subject: [PATCH 0412/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8365fb5b14c..15b7b8da02e 100644 --- a/README.md +++ b/README.md @@ -559,6 +559,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [margelet](https://github.com/zhulik/margelet) - A framework for building Telegram bots. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [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... +* [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 * [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. From 605b8527c4869c98597b7d165ecf37c79b8983da Mon Sep 17 00:00:00 2001 From: Charney Kaye Date: Wed, 24 Feb 2016 23:38:19 -0500 Subject: [PATCH 0413/3440] ontomix moved to its own github.com/go-ontomix - now gopkg.in/ontomix.v0 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8365fb5b14c..6c92910cb93 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [mp3](https://github.com/tcolgate/mp3) - A native Go MP# decoder. -* [ontomix](https://github.com/outrightmental/ontomix) - Sequence-based Go-native audio mixer for Music apps. +* [ontomix](https://github.com/go-ontomix/ontomix) - Sequence-based Go-native audio mixer for Music apps. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. From 5f0b270d1915fc20e566d1b3ddb43da27b210d40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Thu, 25 Feb 2016 17:22:39 +0100 Subject: [PATCH 0414/3440] add: go-benchmarks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6c92910cb93..c0912280552 100644 --- a/README.md +++ b/README.md @@ -1171,6 +1171,7 @@ Where to discover new Go libraries. ## Benchmarks * [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. +* [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - A few miscellaneous Go microbenchmarks. Compare some language features to alternative aproaches. * [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. * [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. * [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. From 39c0dae4ec1d1ab3aa014136c878a48c9beb70d2 Mon Sep 17 00:00:00 2001 From: Philip O Toole Date: Thu, 25 Feb 2016 13:11:46 -0500 Subject: [PATCH 0415/3440] Add rqlite, replicated SQLite using Raft consensus --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c0912280552..2d2a312c8a9 100644 --- a/README.md +++ b/README.md @@ -229,6 +229,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. +* [rqlite](https://github.com/otoolep/rqlite) - Replicated SQLite, using Raft consensus. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. From 16ecf61e38e20c71d8bc0efc4571d6e3bcd25e9a Mon Sep 17 00:00:00 2001 From: Tomas Aparicio Date: Thu, 25 Feb 2016 19:46:33 +0000 Subject: [PATCH 0416/3440] feat: add gentleman package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c0912280552..9ffba22346d 100644 --- a/README.md +++ b/README.md @@ -889,6 +889,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [filetype](https://github.com/h2non/filetype) - Small package to infer the file type checking the magic numbers signature. * [fzf](https://github.com/junegunn/fzf) - A 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. * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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. From 8e4b80b3cd0468abfa28598806727e4ee198e666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tarc=C3=ADsio=20Gruppi?= Date: Thu, 25 Feb 2016 19:21:24 -0300 Subject: [PATCH 0417/3440] Added github.com/txgruppi/command --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c0912280552..2fa4e462dc9 100644 --- a/README.md +++ b/README.md @@ -882,6 +882,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [abutil](https://github.com/bahlo/abutil) - A collection of often-used Golang helpers. * [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API. * [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. +* [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. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go * [delve](https://github.com/derekparker/delve) - Go debugger. From 0d502e7f13ba4da6e42b042172afed81f0749273 Mon Sep 17 00:00:00 2001 From: pyros2097 Date: Fri, 26 Feb 2016 13:31:16 +0530 Subject: [PATCH 0418/3440] Add github.com/vrecan/death --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index caba66ac880..9830c4747d0 100644 --- a/README.md +++ b/README.md @@ -884,6 +884,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API. * [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. +* [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/digitalcrab/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. From c87fcfffe5cf5f2e17dcf7ed699c057af4f448b9 Mon Sep 17 00:00:00 2001 From: wangshijin Date: Sun, 28 Feb 2016 17:58:20 +0800 Subject: [PATCH 0419/3440] add command-line package mkideal/cli --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index caba66ac880..f43b6f4527c 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. +* [mkideal/cli] (https://github.com/mkideal/cli) - A feature-rich and easy to use command-line package based on golang tag ### Advanced Console UIs From 7f539a4f4741d715e5084674a486bbb1a506c6a3 Mon Sep 17 00:00:00 2001 From: wangshijin Date: Sun, 28 Feb 2016 18:08:00 +0800 Subject: [PATCH 0420/3440] fix order of command-line package cli --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f43b6f4527c..f528a2f62e1 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications* +* [cli] (https://github.com/mkideal/cli) - A 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) - An alternative CLI with "human face", in spirit of Go command * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions @@ -137,7 +138,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. -* [mkideal/cli] (https://github.com/mkideal/cli) - A feature-rich and easy to use command-line package based on golang tag ### Advanced Console UIs From 608faf0d2ca9fc0cdc90853f9ec30d2cd146f08c Mon Sep 17 00:00:00 2001 From: Nishanth Shanmugham Date: Tue, 1 Mar 2016 22:53:06 -0600 Subject: [PATCH 0421/3440] Add xkcd API --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1110f8dbc82..ddba5394e15 100644 --- a/README.md +++ b/README.md @@ -850,6 +850,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. +* [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go From 5f2841bc8291bb5bd433d335f84b357ee1a3b8b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Wed, 2 Mar 2016 09:44:25 +0100 Subject: [PATCH 0422/3440] Remove doc Fix #575 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 1110f8dbc82..cbcbdd73e6e 100644 --- a/README.md +++ b/README.md @@ -1051,7 +1051,6 @@ Go software and plugins. ## Code Analysis -* [doc](https://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. * [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. From c90b9c8dd89de19d35e01c18a62d307fed64cd7e Mon Sep 17 00:00:00 2001 From: Max Halford Date: Wed, 2 Mar 2016 15:11:02 +0100 Subject: [PATCH 0423/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a9e5111dbc7..6a4e0c394a2 100644 --- a/README.md +++ b/README.md @@ -498,6 +498,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. * [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-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. @@ -514,7 +515,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [probab](https://code.google.com/p/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 -* [gago](https://github.com/MaxHalford/gago) - Multi-population, flexible, parallel genetic algorithm. ## Messaging From bbb1ca80c7d96baa67c9fae795086afe94405af3 Mon Sep 17 00:00:00 2001 From: Marcelo Cerri Date: Wed, 2 Mar 2016 13:02:12 -0300 Subject: [PATCH 0424/3440] Add ASN.1 alternative library. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84ea7d8f610..bcda028a447 100644 --- a/README.md +++ b/README.md @@ -725,6 +725,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries and tools for binary serialization* +* [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang * [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 From 4198d00fa35a3575ad227399a4651c3bb31fdadd Mon Sep 17 00:00:00 2001 From: rafael-santiago Date: Wed, 2 Mar 2016 17:29:48 -0300 Subject: [PATCH 0425/3440] Add github.com/rafael-santiago/cherry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1110f8dbc82..dc18984da41 100644 --- a/README.md +++ b/README.md @@ -527,6 +527,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement messaging systems* * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. +* [Cherry](https://github.com/rafael-santiago/cherry) - A tiny webchat server in Go. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. * [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. From 0c9c0b7c7bb6b6b9550b965396fc0716b5259a93 Mon Sep 17 00:00:00 2001 From: Sergey Mudrik Date: Thu, 3 Mar 2016 22:19:51 +0200 Subject: [PATCH 0426/3440] Added go-carpet, tool for viewing test coverage --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84ea7d8f610..03de5882c92 100644 --- a/README.md +++ b/README.md @@ -774,6 +774,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them * [frisby](https://github.com/verdverm/frisby) - a 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 From 464e18fa34d1ec858b76291e47fd4fef1e8cb0de Mon Sep 17 00:00:00 2001 From: Tomas Aparicio Date: Fri, 4 Mar 2016 00:44:08 +0100 Subject: [PATCH 0427/3440] feat(add): mock package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c0912280552..c1d4bbabba0 100644 --- a/README.md +++ b/README.md @@ -787,6 +787,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter From 06fdd68abaab4802bcc8f17ca00df0e851c9ba72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Fri, 4 Mar 2016 19:47:21 +0100 Subject: [PATCH 0428/3440] add: textbelt api library fix #563 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1f69da20fdf..eb0cb126de8 100644 --- a/README.md +++ b/README.md @@ -878,6 +878,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [stripe](https://github.com/stripe/stripe-go) - Go client for the Stripe API * [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) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. From 94fe2715d134ea13ca7a141582b578d172d2c502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Fri, 4 Mar 2016 20:12:53 +0100 Subject: [PATCH 0429/3440] update: goose to maintained fork fix #607 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c684d90a547..38244f71cc3 100644 --- a/README.md +++ b/README.md @@ -238,7 +238,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. * [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. -* [goose](https://bitbucket.org/liamstask/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. +* [goose](https://github.com/CloudCom/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. * [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. * [migrate](https://github.com/mattes/migrate) - Database migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. From f81f60e9d483624a07d1d364796fc737a8681859 Mon Sep 17 00:00:00 2001 From: rafael-santiago Date: Sat, 5 Mar 2016 20:16:17 -0300 Subject: [PATCH 0430/3440] Moving github.com/rafael-santiago/cherry to "Other Software" section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dc18984da41..bb32be61576 100644 --- a/README.md +++ b/README.md @@ -527,7 +527,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement messaging systems* * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. -* [Cherry](https://github.com/rafael-santiago/cherry) - A tiny webchat server in Go. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. * [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. @@ -1128,6 +1127,7 @@ Software written in Go. ### Other Software * [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine +* [Cherry](https://github.com/rafael-santiago/cherry) - A 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 * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. From 318b8b7ba04d4e066f924e8eda929135b225716d Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Sun, 6 Mar 2016 08:53:30 +0300 Subject: [PATCH 0431/3440] add kirilldanshin/nulltime --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2fa2ec6a109..63184371831 100644 --- a/README.md +++ b/README.md @@ -309,6 +309,7 @@ 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 * [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. From 4fa9e2b727e3c9a13ba7335b7524b36745ba3360 Mon Sep 17 00:00:00 2001 From: Alexey Derbyshev Date: Mon, 7 Mar 2016 05:42:45 +0300 Subject: [PATCH 0432/3440] add alxrm/ugo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fe9375e8693..f3e99d306ad 100644 --- a/README.md +++ b/README.md @@ -952,6 +952,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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 +* [ugo](https://github.com/alxrm/ugo) - ugo is slice toolbox with concise syntax for Go * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. From 92a4fe2a7efe599bd6451dc85aa68c265058fd09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Mon, 7 Mar 2016 11:33:46 +0100 Subject: [PATCH 0433/3440] Create PULL_REQUEST_TEMPLATE.md Mention #855 --- .github/PULL_REQUEST_TEMPLATE.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000000..64e960576d4 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,9 @@ +Please check if what you want to add to `awesome-go` list meets +[quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) +before sending pull request. Thanks! + +Link to [godoc.org](https://godoc.org/): + +Link to [goreportcard.com](https://goreportcard.com/): + +Link to [gocover.io](https://gocover.io/): From 64f92d4d68bc3aa1fcac1f3872b3b8170223e971 Mon Sep 17 00:00:00 2001 From: Ali Date: Mon, 7 Mar 2016 14:00:54 +0200 Subject: [PATCH 0434/3440] added alioygur/gores --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8141dc29c51..7bcad35ffdb 100644 --- a/README.md +++ b/README.md @@ -1050,6 +1050,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [catena](https://github.com/codemodus/catena) - http.Handler wrapper catenation (same API as "chain"). * [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). * [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. +* [gores](https://github.com/alioygur/gores) - GO package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs * [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang * [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. * [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. From e0dd8a5b9180563ab8129b23325dc9d726700595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Tue, 8 Mar 2016 08:31:12 +0100 Subject: [PATCH 0435/3440] put text in PULL_REQUEST_TEMPLATE in one line --- .github/PULL_REQUEST_TEMPLATE.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 64e960576d4..3517603161e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,4 @@ -Please check if what you want to add to `awesome-go` list meets -[quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) -before sending pull request. Thanks! +Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! Link to [godoc.org](https://godoc.org/): From e735e582538e430829303aa205cd5b213223cbb4 Mon Sep 17 00:00:00 2001 From: Ali Date: Tue, 8 Mar 2016 12:35:57 +0200 Subject: [PATCH 0436/3440] converted GO to Go --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ad16b90bb01..a1647585604 100644 --- a/README.md +++ b/README.md @@ -1051,7 +1051,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [catena](https://github.com/codemodus/catena) - http.Handler wrapper catenation (same API as "chain"). * [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). * [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. -* [gores](https://github.com/alioygur/gores) - GO package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs +* [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs * [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang * [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. * [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. From 7e13b4acfb0a6d6feda4df6be272977f65711ef9 Mon Sep 17 00:00:00 2001 From: Kenneth Shaw Date: Thu, 10 Mar 2016 08:52:20 +0700 Subject: [PATCH 0437/3440] Adding xo to Database section of README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d4080a7776d..7491e6c216c 100644 --- a/README.md +++ b/README.md @@ -258,6 +258,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. +* [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. ## Database Drivers From 0987e1585f09ced8f33b9f6e5f2672cbbe59b301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Thu, 10 Mar 2016 09:14:39 +0100 Subject: [PATCH 0438/3440] Small fixes to README --- README.md | 130 +++++++++++++++++++++++++++--------------------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/README.md b/README.md index 02a8c16fd10..8c9c1c29557 100644 --- a/README.md +++ b/README.md @@ -859,19 +859,19 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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), and [Mapbox](https://www.mapbox.com/developers/api/geocoding/) 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 API. - * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. -* [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS +* [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. +* [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS. * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. -* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library -* [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go -* [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting -* [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library +* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library. +* [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. +* [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting. +* [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. * [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) - A Golang SDK for Medium's OAuth2 API +* [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 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. * [paypal](https://github.com/logpacker/paypalsdk) - Wrapper for PayPal payment API @@ -888,9 +888,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) -* [translate](https://github.com/poorny/translate) - Go online translation package +* [translate](https://github.com/poorny/translate) - Go online translation package. * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. -* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub and Bitbucket +* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub and Bitbucket. ## Utilities @@ -901,7 +901,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. * [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. -* [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go +* [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. * [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. @@ -909,14 +909,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. -* [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications +* [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-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go +* [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. -* [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons +* [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. * [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. @@ -924,7 +924,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. * [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 +* [goplaceholder](https://github.com/michiwend/goplaceholder) - a small golang lib to generate placeholder images. * [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. @@ -941,24 +941,24 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mergo](https://github.com/imdario/mergo) - A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. * [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. -* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers +* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [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 +* [okrun](https://github.com/xta/okrun) - go run error steamroller. * [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 -* [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API -* [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go +* [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. +* [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. +* [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go. * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. -* [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes -* [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client -* [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics +* [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. +* [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. +* [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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 -* [ugo](https://github.com/alxrm/ugo) - ugo is slice toolbox with concise syntax for Go +* [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package. +* [ugo](https://github.com/alxrm/ugo) - ugo is slice toolbox with concise syntax for Go. * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. @@ -966,15 +966,15 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for validation.* -* [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs -* [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving +* [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. +* [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. ## Version Control *Libraries for version control.* -* [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks +* [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. @@ -1000,14 +1000,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Echo](https://github.com/labstack/echo) - A fast and unfancy micro web framework for Go. * [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. -* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) -* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API +* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io). +* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API. * [go-kit](https://github.com/go-kit/kit) - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. -* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's -* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go +* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's. +* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go. * [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. -* [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis -* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go +* [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis. +* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go. * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. * [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. * [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. @@ -1016,7 +1016,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. -* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go.Inspiration from httprouter +* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. * [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. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. @@ -1043,11 +1043,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis #### Actual middlewares -* [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API -* [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST -* [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go -* [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler -* [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends +* [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API. +* [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. +* [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. +* [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. +* [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. #### Libraries for creating HTTP middlewares @@ -1055,8 +1055,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [catena](https://github.com/codemodus/catena) - http.Handler wrapper catenation (same API as "chain"). * [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). * [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. -* [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs -* [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang +* [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs. +* [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang. * [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. * [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. * [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses. @@ -1091,7 +1091,7 @@ Go software and plugins. * [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. * [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) - An Eclipse plugin for Go. -* [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language +* [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language. * [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. * [velour](https://github.com/velour/velour) - An IRC client for the acme editor. * [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. @@ -1111,11 +1111,11 @@ Software written in Go. ### DevOps Tools -* [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool -* [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile +* [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. +* [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile. * [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. * [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. -* [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework +* [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. @@ -1132,13 +1132,13 @@ Software written in Go. * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. * [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 +* [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. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). * [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 +* [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) - A Web-based IDE for Teams using Golang. @@ -1146,7 +1146,7 @@ Software written in Go. * [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine * [Cherry](https://github.com/rafael-santiago/cherry) - A 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 +* [Comcast](https://github.com/tylertreat/Comcast) - Simulate bad network connections. * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. * [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. * [fleet](https://github.com/coreos/fleet) - A Distributed init System. @@ -1155,8 +1155,8 @@ Software written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - A chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. -* [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer -* [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine +* [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer. +* [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine. * [ipe](https://github.com/dimiro1/ipe) - An open source Pusher server implementation compatible with Pusher client libraries written in GO. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. @@ -1169,16 +1169,16 @@ Software written in Go. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [rkt](https://github.com/coreos/rkt) - An App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. -* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) -* [snap](https://github.com/intelsdi-x/snap) - A powerful telemetry framework +* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). +* [snap](https://github.com/intelsdi-x/snap) - A powerful telemetry framework. * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. * [toto](https://github.com/blogcin/ToTo) - A simple proxy server written in Go language, can be used together with browser. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - An extensible and open source Platform as a Service software. -* [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) -* [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass) +* [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart). +* [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). @@ -1242,12 +1242,12 @@ Where to discover new Go libraries. * [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - A curated list of awesome remote jobs. A lot of them is looking for Go hackers. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. * [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. -* [Go Blog](http://blog.golang.org) - The official Go blog -* [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go -* [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki +* [Go Blog](http://blog.golang.org) - The official Go blog. +* [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. +* [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. -* [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art -* [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list +* [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art. +* [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. * [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. * [gowalker.org](https://gowalker.org) - Go Project API documentation. * [r/Golang](https://www.reddit.com/r/golang) - News about Go. @@ -1256,12 +1256,12 @@ Where to discover new Go libraries. ### Tutorials -* [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go -* [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs -* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql -* [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers +* [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. +* [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs. +* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +* [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers. ## Windows -* [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang +* [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. From 33f3778a1c199e0d9c3464927de64dfe6fa8439a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Thu, 10 Mar 2016 09:17:44 +0100 Subject: [PATCH 0439/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c9c1c29557..8efa53789bc 100644 --- a/README.md +++ b/README.md @@ -859,8 +859,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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), and [Mapbox](https://www.mapbox.com/developers/api/geocoding/) 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 API. -* [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS. +* [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. From 83bdb93aff755e9161f94beee24b878346bd38c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Thu, 10 Mar 2016 09:25:25 +0100 Subject: [PATCH 0440/3440] Update PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 3517603161e..452dd04a29c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,6 @@ Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! -Link to [godoc.org](https://godoc.org/): - -Link to [goreportcard.com](https://goreportcard.com/): - -Link to [gocover.io](https://gocover.io/): +Please provide package links to: +- godoc.org: +- goreportcard.com: +- gocover.io: From 05831bf6df7e88308288a2ed155f83fdf771923c Mon Sep 17 00:00:00 2001 From: Claudemiro Date: Sat, 12 Mar 2016 11:13:09 -0300 Subject: [PATCH 0441/3440] [Miscellaneous] Added health check library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37439ff9c9d..17d42b0e494 100644 --- a/README.md +++ b/README.md @@ -554,6 +554,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. +* [health](https://github.com/dimiro1/health) - A Easy to use, extensible health check library * [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) - A generic object pool for Golang. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. From 73daa4cdb6fd1e8faf12b5356b25114824f1a011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Sun, 13 Mar 2016 20:53:05 +0100 Subject: [PATCH 0442/3440] fix: ordering of `health` --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 17d42b0e494..08d539f00fb 100644 --- a/README.md +++ b/README.md @@ -554,7 +554,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. -* [health](https://github.com/dimiro1/health) - A Easy to use, extensible health check library * [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) - A generic object pool for Golang. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. @@ -562,6 +561,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gopsutil](https://github.com/shirou/gopsutil) - A 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 * [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data. +* [health](https://github.com/dimiro1/health) - A Easy to use, extensible health check library. * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [margelet](https://github.com/zhulik/margelet) - A framework for building Telegram bots. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. From 3ab97ecb0e457eba54f8d0c2065dae69a3058315 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Sat, 12 Mar 2016 17:47:27 -0300 Subject: [PATCH 0443/3440] Add testfixtures --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37439ff9c9d..a2c9a0f82fb 100644 --- a/README.md +++ b/README.md @@ -794,6 +794,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [Hamcrest](https://github.com/rdrdr/hamcrest) - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. * [restit](https://github.com/yookoala/restit) - A 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) - A sacred extension to the standard go testing package. * Mock From 4ddd4d00667924d47c06719e7c0c034b39b5fcfe Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Tue, 15 Mar 2016 19:07:19 +0200 Subject: [PATCH 0444/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 08d539f00fb..e3ccacdeeb4 100644 --- a/README.md +++ b/README.md @@ -1019,6 +1019,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. +* [Iris](https://kataras.github.io/iris) - A very minimal but flexible and high-performance golang web application framework, providing a robust set of features for building web applications. * [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. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. From cbcdf1f5d61876d077da127bff9bc92964c7ff21 Mon Sep 17 00:00:00 2001 From: Paolo Galeone Date: Tue, 15 Mar 2016 18:47:44 +0100 Subject: [PATCH 0445/3440] Add igor: https://github.com/galeone/igor --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 08d539f00fb..f75d1684bfe 100644 --- a/README.md +++ b/README.md @@ -254,6 +254,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - An 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. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. From f559847c29c8feae536bf8cefaea268b83fa3d55 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Wed, 16 Mar 2016 09:02:47 +0200 Subject: [PATCH 0446/3440] Added quicktemplate --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 08d539f00fb..5cd9b18ba28 100644 --- a/README.md +++ b/README.md @@ -767,6 +767,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. * [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. * [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. +* [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) - A 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/) From 830c3f5ef5f934695b6f11bcc19444ade0a95a65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Wed, 16 Mar 2016 21:27:24 +0100 Subject: [PATCH 0447/3440] rm: beedb Fix #608 --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index c273660e12c..f19c05f0a97 100644 --- a/README.md +++ b/README.md @@ -643,8 +643,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* -* [beedb](https://github.com/astaxie/beedb) - A go ORM,support database/sql interface,pq/mysql/sqlite -* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. +* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. Support: pq/mysql/sqlite3. * [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. * [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. From 0d280c4046f30cd650c9874b03a81e29ddc64280 Mon Sep 17 00:00:00 2001 From: Julien Feltesse Date: Sun, 20 Mar 2016 10:38:49 +0900 Subject: [PATCH 0448/3440] remove defunct go-log-interface --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6c167172c39..22928af90ea 100644 --- a/README.md +++ b/README.md @@ -481,7 +481,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. -* [go-log-interface](https://github.com/ventu-io/go-log-interface) - A generic leveled log interface to adopt any logging framework and a default facade for Go stdlib log.Logger. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [log](https://github.com/apex/log) - Structured logging package for Go. From 4eeee5024728bbeb1733b73a1e0f4ff22875aea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Mon, 21 Mar 2016 14:19:07 +0100 Subject: [PATCH 0449/3440] change: CloudCom/goose to steinbacher/goose Fix #607 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 22928af90ea..2e271b6d01a 100644 --- a/README.md +++ b/README.md @@ -239,7 +239,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. * [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. -* [goose](https://github.com/CloudCom/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. +* [goose](https://github.com/steinbacher/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. * [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. * [migrate](https://github.com/mattes/migrate) - Database migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. From 980c33c71db2a291415970dd844a4d081fdc68e1 Mon Sep 17 00:00:00 2001 From: Mahdi Mazaheri Date: Thu, 24 Mar 2016 11:02:18 +0430 Subject: [PATCH 0450/3440] Authboss added to Authentication & OAuth --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..cddf80af03d 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for implementing authentications schemes.* +* [authboss](https://github.com/go-authboss/authboss) - A modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. From 80e022d42b648e54db3cff699f5669487bf79a44 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Fri, 25 Mar 2016 16:13:37 -0400 Subject: [PATCH 0451/3440] Add lars http router for build customizable frameworks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..a90ac33af2b 100644 --- a/README.md +++ b/README.md @@ -1021,6 +1021,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. * [Iris](https://kataras.github.io/iris) - A very minimal but flexible and high-performance golang web application framework, providing a robust set of features for building web applications. +* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create a customizable frameworks. * [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. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. From 4c203717bdc4e56eaa71b9847f1c7bce79f2c31b Mon Sep 17 00:00:00 2001 From: Claudemiro Date: Sat, 26 Mar 2016 13:43:17 -0300 Subject: [PATCH 0452/3440] Added lib banner https://github.com/dimiro1/banner --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..aae2c64b055 100644 --- a/README.md +++ b/README.md @@ -552,6 +552,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* * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. +* [banner](https://github.com/dimiro1/banner) - Add beautiful banners into your Go applications. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. From 6c17e72a8258c44fa8e265764e0cf1aa4280d415 Mon Sep 17 00:00:00 2001 From: Oleg Sklyar Date: Sat, 26 Mar 2016 20:09:06 +0100 Subject: [PATCH 0453/3440] Added SLF and SLOG --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e392f1a3e5d..16680e64270 100644 --- a/README.md +++ b/README.md @@ -496,6 +496,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mlog](https://github.com/jbrodriguez/mlog) - A 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 * [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) - A Go package striving to emulate the features of the BSD tail program. * [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. From e65c44fcc9bf25f712f4ef515fe3cefe8d88534e Mon Sep 17 00:00:00 2001 From: Dmitri Logvinenko Date: Sat, 26 Mar 2016 23:55:25 +0200 Subject: [PATCH 0454/3440] Add afero to miscellaneous category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..53770cdc09e 100644 --- a/README.md +++ b/README.md @@ -552,6 +552,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* * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. +* [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. From 9c53ea32ef8082aa67a7f042d46b208828363d0d Mon Sep 17 00:00:00 2001 From: Andy Grunwald Date: Sun, 27 Mar 2016 13:37:50 +0200 Subject: [PATCH 0455/3440] Add go-jira: Go client library for Atlassian JIRA --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..e5dec6b6b3c 100644 --- a/README.md +++ b/README.md @@ -861,6 +861,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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), and [Mapbox](https://www.mapbox.com/developers/api/geocoding/) 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 API. +* [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) - A Go library for interacting with Mesosphere's Marathon PAAS. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. From 95ec96cf8f834d813974710c3ed8dfae1f4d7e90 Mon Sep 17 00:00:00 2001 From: Dmitri Logvinenko Date: Sun, 27 Mar 2016 14:54:21 +0300 Subject: [PATCH 0456/3440] Fix ordering (build fix) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53770cdc09e..6a61bb3013e 100644 --- a/README.md +++ b/README.md @@ -551,8 +551,8 @@ 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* -* [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. +* [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. From e839aad23937ad6faedd232d968d748c3df5ea3b Mon Sep 17 00:00:00 2001 From: Andy Grunwald Date: Sun, 27 Mar 2016 17:45:00 +0200 Subject: [PATCH 0457/3440] Added cachet client library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..d0ab5961968 100644 --- a/README.md +++ b/README.md @@ -852,6 +852,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [anaconda](https://github.com/ChimeraCoder/anaconda) - A 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/) * [clarifai](https://github.com/samuelcouch/clarifai) - A 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 From be517f477a9c45ff90441f6c368b2633cd8f5c7e Mon Sep 17 00:00:00 2001 From: Andy Grunwald Date: Sun, 27 Mar 2016 19:08:04 +0200 Subject: [PATCH 0458/3440] Added megos: A client library for accessing an Apache Mesos Cluster --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..3a01cdf2902 100644 --- a/README.md +++ b/README.md @@ -874,6 +874,7 @@ 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) - A Golang SDK for Medium's OAuth2 API. +* [megos](https://github.com/andygrunwald/megos) - A client library for accessing an [Apache Mesos](http://mesos.apache.org/) cluster * [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. * [paypal](https://github.com/logpacker/paypalsdk) - Wrapper for PayPal payment API From 273c93292d915658f68e87c316eaef757aa6e247 Mon Sep 17 00:00:00 2001 From: Charney Kaye Date: Thu, 17 Mar 2016 00:55:26 -0400 Subject: [PATCH 0459/3440] add github.com/go-music-theory/music-theory --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..6fe5d632466 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [mp3](https://github.com/tcolgate/mp3) - A native Go MP# decoder. +* [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. * [ontomix](https://github.com/go-ontomix/ontomix) - Sequence-based Go-native audio mixer for Music apps. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. From 713731c03ce6134450f87ad05fe9a5c9b2ac5ec6 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Tue, 29 Mar 2016 22:02:18 -0400 Subject: [PATCH 0460/3440] correct description typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a90ac33af2b..a1c7c117880 100644 --- a/README.md +++ b/README.md @@ -1021,7 +1021,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. * [Iris](https://kataras.github.io/iris) - A very minimal but flexible and high-performance golang web application framework, providing a robust set of features for building web applications. -* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create a customizable frameworks. +* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. * [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. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. From 0d029a704d8dee1329cd0ba03f753525df5cebf9 Mon Sep 17 00:00:00 2001 From: Charney Kaye Date: Wed, 30 Mar 2016 21:27:56 -0400 Subject: [PATCH 0461/3440] go-ontomix/ontomix is now go-mix/mix --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 6fe5d632466..55d24339a11 100644 --- a/README.md +++ b/README.md @@ -91,9 +91,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flac](https://github.com/mewkiz/flac) - A native Go FLAC decoder. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. +* [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. * [mp3](https://github.com/tcolgate/mp3) - A native Go MP# decoder. -* [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. -* [ontomix](https://github.com/go-ontomix/ontomix) - Sequence-based Go-native audio mixer for Music apps. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. From 98126a499d50766e67242b6e1f75413426c31138 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 29 Mar 2016 17:45:43 +0200 Subject: [PATCH 0462/3440] add link to VarHandler * https://github.com/azr/generators/tree/master/varhandler --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..d1d21e51581 100644 --- a/README.md +++ b/README.md @@ -1036,6 +1036,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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. +* [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and ouput handling. * [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. * [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. * [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. From f95ef7f12f3e0a46ab9781fdb953b7ca559ff3bc Mon Sep 17 00:00:00 2001 From: Daniel Fu Date: Fri, 1 Apr 2016 17:56:46 +0800 Subject: [PATCH 0463/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e392f1a3e5d..fcadcfb71e3 100644 --- a/README.md +++ b/README.md @@ -626,6 +626,7 @@ 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) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. +* [kcp-go](https://github.com/xtaci/kcp-go) - KCP - A Fast and Reliable ARQ Protocol. ## OpenGL From e7336dde40d9ed7b5edb6666402e70e37ce78f12 Mon Sep 17 00:00:00 2001 From: Josh Baker Date: Sun, 3 Apr 2016 04:34:50 -0700 Subject: [PATCH 0464/3440] Adding Tile38 Tile38 is a geolocation data store, spatial index, and realtime geofence. It supports a variety of object types including lat/lon points, bounding boxes, XYZ tiles, Geohashes, and GeoJSON. It's like Redis but for GIS. - Website: https://tile38.com - godoc.org: https://godoc.org/github.com/tidwall/tile38 - goreportcard.com: https://goreportcard.com/report/github.com/tidwall/tile38 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1d21e51581..d16cec2ec6e 100644 --- a/README.md +++ b/README.md @@ -234,6 +234,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [rqlite](https://github.com/otoolep/rqlite) - Replicated SQLite, using Raft consensus. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. +* [Tile38](https://github.com/tidwall/tile38) - A geolocation DB with spatial index and realtime geofencing. *Database tools.* From 353e1f05126076ac817520e3f5fb090f0ab500a0 Mon Sep 17 00:00:00 2001 From: kirillDanshin Date: Sun, 3 Apr 2016 22:53:20 +0300 Subject: [PATCH 0465/3440] Update PULL_REQUEST_TEMPLATE.md see #855 --- .github/PULL_REQUEST_TEMPLATE.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 452dd04a29c..063df7a2390 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,3 +4,16 @@ Please provide package links to: - godoc.org: - goreportcard.com: - gocover.io: + + +Note, that new categories can be added only when there are 3 packages or more. + +Make shure 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 +- [ ] I have added gocover.io link +- [ ] I have added goreportcard link +- [ ] I have read [Contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#contribution-guidelines) and [Quality standard](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard). + +Thanks for your PR, you're awesome :+1: From 8cdb2102cf8bd44eaf5eb44b240bf6b8775197a5 Mon Sep 17 00:00:00 2001 From: Charney Kaye Date: Sun, 3 Apr 2016 16:40:34 -0400 Subject: [PATCH 0466/3440] re-add github.com/go-music-theory/music-theory --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index be12872e6a1..633c92061b7 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. * [mp3](https://github.com/tcolgate/mp3) - A native Go MP# decoder. +* [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. From 3969288cc972190ac900f0fb498f7ca2112396fd Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Mon, 4 Apr 2016 10:40:37 +0800 Subject: [PATCH 0467/3440] Add gofight package in testing section. Signed-off-by: Bo-Yi Wu --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a6e4b9a1e4f..cf2b4926816 100644 --- a/README.md +++ b/README.md @@ -499,7 +499,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [slog](https://github.com/ventu-io/slog) - The reference implementation of the Structured Logging Facade (SLF) for Go * [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) - A Go package striving to emulate the features of the BSD tail program. * [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. @@ -622,7 +622,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grab](https://github.com/cavaliercoder/grab) - Go package for managing file downloads * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. * [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. +* [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 * [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. @@ -795,6 +795,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gocheck](http://labix.org/gocheck) - A more advanced testing framework alternative to gotest. * [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. From e10a98eb0a7cad843b2be5c583a16a8b4f612ada Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Mon, 4 Apr 2016 14:03:56 +0800 Subject: [PATCH 0468/3440] Fix markdown error --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e078f497836..32b150ae082 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications* -* [cli] (https://github.com/mkideal/cli) - A feature-rich and easy to use command-line package based on golang tag +* [cli](https://github.com/mkideal/cli) - A 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) - An alternative CLI with "human face", in spirit of Go command * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions From cfe1468fcfccfd1019a3ca0fad4e39434924f017 Mon Sep 17 00:00:00 2001 From: Chris James Date: Mon, 4 Apr 2016 09:42:27 +0100 Subject: [PATCH 0469/3440] adding mockingjay --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e078f497836..cd7d40614d8 100644 --- a/README.md +++ b/README.md @@ -500,7 +500,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [slog](https://github.com/ventu-io/slog) - The reference implementation of the Structured Logging Facade (SLF) for Go * [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) - A Go package striving to emulate the features of the BSD tail program. * [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. @@ -623,7 +623,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grab](https://github.com/cavaliercoder/grab) - Go package for managing file downloads * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. * [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. +* [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 * [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. @@ -1176,6 +1176,7 @@ Software written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. +* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. From 5159b1312bccb6094212e18ca6b39d87dcc1fbfb Mon Sep 17 00:00:00 2001 From: Paolo Galeone Date: Mon, 4 Apr 2016 16:45:34 +0200 Subject: [PATCH 0470/3440] Add rts: https://github.com/galeone/rts Add https://github.com/galeone/rts --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 408263f2c8e..11f12804933 100644 --- a/README.md +++ b/README.md @@ -1120,6 +1120,7 @@ Go software and plugins. * [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. * [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. +* [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. ## Software Packages From 3a5988ff4659074070610f0430660620b30a7783 Mon Sep 17 00:00:00 2001 From: Daniel Fu Date: Tue, 5 Apr 2016 09:50:37 +0800 Subject: [PATCH 0471/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fcadcfb71e3..cba64647392 100644 --- a/README.md +++ b/README.md @@ -616,6 +616,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gotcp](https://github.com/gansidui/gotcp) - A 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) - An experimental FTP server framework. +* [kcp-go](https://github.com/xtaci/kcp-go) - KCP - A Fast and Reliable ARQ Protocol. * [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 @@ -626,7 +627,6 @@ 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) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. -* [kcp-go](https://github.com/xtaci/kcp-go) - KCP - A Fast and Reliable ARQ Protocol. ## OpenGL From 09574f0bdfb8b0804072419bb016df34f1ab45e5 Mon Sep 17 00:00:00 2001 From: mmcdole Date: Mon, 4 Apr 2016 22:39:32 -0500 Subject: [PATCH 0472/3440] Add github.com/mmcdole/gofeed --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 11f12804933..575010c8da8 100644 --- a/README.md +++ b/README.md @@ -835,6 +835,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. + * [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 From d7bf6ede0d6a8eed20dcf778402cb933d643faa7 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Fri, 8 Apr 2016 11:10:28 -0400 Subject: [PATCH 0473/3440] Proposing the addition of roaring. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2387488b3b4..5394b84ba14 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing +* [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) - An in-memory LRU string-interface{} map with expiration for golang @@ -1181,7 +1182,7 @@ Software written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. -* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. +* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. From f0e8579a65fd48218c737faa7eb33e6e60344740 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Fri, 8 Apr 2016 11:37:30 -0400 Subject: [PATCH 0474/3440] Putting back the spurious space? --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5394b84ba14..acb43e4b4b2 100644 --- a/README.md +++ b/README.md @@ -1182,7 +1182,7 @@ Software written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. -* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. +* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. From 82a20489070db51021cd6b993fd99b67bb0c24f1 Mon Sep 17 00:00:00 2001 From: Nick Stogner Date: Fri, 8 Apr 2016 14:54:50 -0400 Subject: [PATCH 0475/3440] Add httpware --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2387488b3b4..6221caff4b9 100644 --- a/README.md +++ b/README.md @@ -1075,6 +1075,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). * [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. * [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs. +* [httpware](https://github.com/nstogner/httpware) - Stackable middleware (using net/context) with easy chaining. * [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang. * [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. * [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. From 2e26a59cd52e7beb2c25b77310b73ae6c0a24809 Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Fri, 8 Apr 2016 16:07:23 -0700 Subject: [PATCH 0476/3440] Add rest-layer --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2387488b3b4..26fdf809298 100644 --- a/README.md +++ b/README.md @@ -1042,6 +1042,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application. * [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. * [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. +* [REST Layer](http://rest-layer.io) - A framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. From ea833910150eb50aa02a1a32e4b38025717493f5 Mon Sep 17 00:00:00 2001 From: schachmat Date: Tue, 12 Apr 2016 15:14:54 +0200 Subject: [PATCH 0477/3440] add ingo config utility --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06e025c112b..069571bd2d6 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy +* [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 * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files * [store](https://github.com/tucnak/store) - A lightweight configuration manager for Go From d28d27c5c3f53d77921437887756fe6a64278a9f Mon Sep 17 00:00:00 2001 From: Pavel Larkin Date: Tue, 12 Apr 2016 12:58:50 -0400 Subject: [PATCH 0478/3440] Add data structure: adaptive radix tree --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06e025c112b..7777e46a8da 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [count-min-log](https://github.com/seiflotfy/count-min-log) - A 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) - A Go implementation of Adaptive Radix Tree. * [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures * [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. From 6c3285a32ea4c69b490f86295110a5b7e639559a Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Wed, 13 Apr 2016 21:03:58 +1000 Subject: [PATCH 0479/3440] geo-golang newly supports OpenStreetMap --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7cd9bcb738e..e7f7e10b24e 100644 --- a/README.md +++ b/README.md @@ -871,7 +871,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -* [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), and [Mapbox](https://www.mapbox.com/developers/api/geocoding/) geocoding / reverse geocoding APIs. +* [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 API. * [go-jira](https://github.com/andygrunwald/go-jira) - Go client library for [Atlassian JIRA](https://www.atlassian.com/software/jira) From 9d55bb011e3c1285ae06fb8ba7760aa4810e7f4e Mon Sep 17 00:00:00 2001 From: Harrison Shoebridge Date: Thu, 14 Apr 2016 08:13:02 +1000 Subject: [PATCH 0480/3440] Rename Engi to Engo We've recently renamed the project and moved to an organisation. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7cd9bcb738e..8208c2874e9 100644 --- a/README.md +++ b/README.md @@ -394,7 +394,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Awesome game development libraries.* -* [engi](https://github.com/paked/engi) - A cross-platform game engine following the Entity Component System design pattern +* [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 From 457be4e1869243757b3cfed5357a9407a4724c4a Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Thu, 14 Apr 2016 20:50:04 +0800 Subject: [PATCH 0481/3440] Add a push notification server. A push notification server using Gin framework written in Go (Golang). * Support Google Cloud Message using go-gcm library for Android. * Support HTTP/2 Apple Push Notification Service using apns2 library. * Support YAML configuration. * Support command line to send single Android or iOS notification. * Support Web API to send push notification. * Support zero downtime restarts for go servers using endless. * Support HTTP/2 or HTTP/1.1 protocol. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8208c2874e9..c6d61e3cfde 100644 --- a/README.md +++ b/README.md @@ -545,6 +545,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. +* [gorush](https://github.com/appleboy/gorush) - A push notification server using [APNs2](https://github.com/sideshow/apns2) and google [GCM](https://github.com/google/go-gcm). * [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [NATS](https://github.com/nats-io/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. From 9e328658a6c8aea7fee816c781507797dc9bcd99 Mon Sep 17 00:00:00 2001 From: Charney Kaye Date: Fri, 15 Apr 2016 17:59:08 -0400 Subject: [PATCH 0482/3440] Add gofpdf --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ecff0cb3203..efddbf68efd 100644 --- a/README.md +++ b/README.md @@ -775,6 +775,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. * [ego](https://github.com/benbjohnson/ego) - A 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) - A PDF document generator with high level support for text, drawing and images. * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. * [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. * [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. From 2d39d12bfb786b5c3722ebe5a26fbdc503c7753f Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Fri, 15 Apr 2016 16:32:14 -0600 Subject: [PATCH 0483/3440] Add archiver --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ecff0cb3203..d585caa6128 100644 --- a/README.md +++ b/README.md @@ -561,6 +561,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* * [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. +* [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. * [banner](https://github.com/dimiro1/banner) - Add beautiful banners into your Go applications. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). From 47a5744658e65c4895b4139337f7f5ff61ba450f Mon Sep 17 00:00:00 2001 From: Yanyi Wu Date: Mon, 18 Apr 2016 15:36:03 +0800 Subject: [PATCH 0484/3440] gojieba [GoJieba](https://github.com/yanyiwu/gojieba) - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm. [here](https://github.com/yanyiwu/gojieba/blob/master/README_EN.md) is its english README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4bf64ad5a57..035faf4b88b 100644 --- a/README.md +++ b/README.md @@ -597,6 +597,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [GoJieba](https://github.com/yanyiwu/gojieba) - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm. * [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting 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. From 4e30e33e8ffa13df1d40197d587fb4f41a44b861 Mon Sep 17 00:00:00 2001 From: yanyiwu Date: Mon, 18 Apr 2016 15:36:38 +0800 Subject: [PATCH 0485/3440] alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 035faf4b88b..ef4bd3bb05d 100644 --- a/README.md +++ b/README.md @@ -593,11 +593,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. * [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. * [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 * [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. -* [GoJieba](https://github.com/yanyiwu/gojieba) - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm. * [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting 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. From c9a94920dc8ef5263327eab0b12512dacb79aa0e Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Tue, 19 Apr 2016 17:27:22 -0700 Subject: [PATCH 0486/3440] Fix typo in PULL_REQUEST_TEMPLATE.md. --- .github/PULL_REQUEST_TEMPLATE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 063df7a2390..a4a4de0575b 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -8,7 +8,7 @@ Please provide package links to: Note, that new categories can be added only when there are 3 packages or more. -Make shure that you've checked the boxes below before you submit PR: +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 @@ -16,4 +16,4 @@ Make shure that you've checked the boxes below before you submit PR: - [ ] I have added goreportcard link - [ ] I have read [Contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#contribution-guidelines) and [Quality standard](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard). -Thanks for your PR, you're awesome :+1: +Thanks for your PR, you're awesome! :+1: From d6791ea1a206f841da79a3b59238eb88e65ef644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Wed, 20 Apr 2016 11:11:42 +0200 Subject: [PATCH 0487/3440] Add Storm ORM --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4bf64ad5a57..503070388db 100644 --- a/README.md +++ b/README.md @@ -663,6 +663,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. +* [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. From 816f03c32a0384ed8bb38a396b48481234766d77 Mon Sep 17 00:00:00 2001 From: Will Dixon Date: Thu, 21 Apr 2016 17:35:51 -0400 Subject: [PATCH 0488/3440] Added Wlog --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4bf64ad5a57..aa6185b193d 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. +* [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency. ### Advanced Console UIs From 8866baa9f103548b844cbbe1059e12042b92d529 Mon Sep 17 00:00:00 2001 From: Will Dixon Date: Thu, 21 Apr 2016 20:04:00 -0400 Subject: [PATCH 0489/3440] Added Wmenu --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aa6185b193d..16258d25cda 100644 --- a/README.md +++ b/README.md @@ -141,6 +141,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. * [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency. +* [wmenu](https://github.com/dixonwille/wmenu) - An easy to use menu structure for cli applications that prompts users to make choices. ### Advanced Console UIs From cc029eee3671b05a77859de20ca0dc824c98fbd7 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Mon, 25 Apr 2016 08:10:58 -0400 Subject: [PATCH 0490/3440] Add Structured Logging library https://github.com/go-playground/log --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 503070388db..e77ffacfde4 100644 --- a/README.md +++ b/README.md @@ -491,6 +491,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [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 * [logex](https://github.com/chzyer/logex) - An golang log lib, supports tracking and level, wrap by standard log lib From cb478653a88b21a3eaf6627fc4375237cbbd2b82 Mon Sep 17 00:00:00 2001 From: Jens Breitbart Date: Mon, 25 Apr 2016 18:33:01 +0200 Subject: [PATCH 0491/3440] Added go-imgur. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 503070388db..cb91b6ecb4d 100644 --- a/README.md +++ b/README.md @@ -879,6 +879,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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), and [Mapbox](https://www.mapbox.com/developers/api/geocoding/) 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 API. +* [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) - A Go library for interacting with Mesosphere's Marathon PAAS. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. @@ -1190,7 +1191,7 @@ Software written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. -* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. +* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. From 64138f62e05d21ef28678563ca05dde4166ae38e Mon Sep 17 00:00:00 2001 From: Pascal de Kloe Date: Tue, 26 Apr 2016 13:07:59 +0200 Subject: [PATCH 0492/3440] Add Colfer to serialization --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb20c6e439c..c750fedb4a6 100644 --- a/README.md +++ b/README.md @@ -750,6 +750,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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 * [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 From 1772aad577fffcb0cec0b2b36f02c9d9014c735b Mon Sep 17 00:00:00 2001 From: Philip O'Toole Date: Tue, 26 Apr 2016 18:17:11 -0700 Subject: [PATCH 0493/3440] The repo for rqlite has changed --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5edf7b822ea..168fb818920 100644 --- a/README.md +++ b/README.md @@ -238,7 +238,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. -* [rqlite](https://github.com/otoolep/rqlite) - Replicated SQLite, using Raft consensus. +* [rqlite](https://github.com/rqlite/rqlite) - Replicated SQLite, using Raft consensus. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. * [Tile38](https://github.com/tidwall/tile38) - A geolocation DB with spatial index and realtime geofencing. From 9f95208c0d117af8da7435863ca24d7672e81d5a Mon Sep 17 00:00:00 2001 From: Jerry Jacobs Date: Sun, 1 May 2016 08:38:05 +0000 Subject: [PATCH 0494/3440] Add secdl, Golang implementation of Lighttpd ModSecDownload algorithm --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e8d9f327567..7c38768447e 100644 --- a/README.md +++ b/README.md @@ -581,6 +581,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [margelet](https://github.com/zhulik/margelet) - A framework for building Telegram bots. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [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... * [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 From d5751889afb8259bd612687024bb92ba0659db4f Mon Sep 17 00:00:00 2001 From: Lars Date: Mon, 2 May 2016 11:14:50 +0200 Subject: [PATCH 0495/3440] Added d3d9 library. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c00b3a76abc..385fa8077c4 100644 --- a/README.md +++ b/README.md @@ -1301,4 +1301,5 @@ Where to discover new Go libraries. ## Windows +* [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9 * [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. From 6be7749ec821080f238a5b15f3adfa5588791ee8 Mon Sep 17 00:00:00 2001 From: Razvan Tudorica Date: Sun, 8 May 2016 17:47:54 +0300 Subject: [PATCH 0496/3440] web.go is not maintained for over 3 years and the website is not up anymore --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 5221de5f8de..e44902c1570 100644 --- a/README.md +++ b/README.md @@ -1069,7 +1069,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and ouput handling. * [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. * [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. -* [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. * [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. From 6494f7d49fd8085acde756d96ae138b08b97affd Mon Sep 17 00:00:00 2001 From: bjflanne Date: Thu, 12 May 2016 10:45:27 -0400 Subject: [PATCH 0497/3440] Added NATS to Distributed Systems, and updated Messaging section with NATS Go client --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5221de5f8de..69eb5b5149f 100644 --- a/README.md +++ b/README.md @@ -335,6 +335,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. * [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and distributed systems platform. +* [NATS](https://github.com/nats-io/gnatsd) - A 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. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. @@ -552,7 +553,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gorush](https://github.com/appleboy/gorush) - A push notification server using [APNs2](https://github.com/sideshow/apns2) and google [GCM](https://github.com/google/go-gcm). * [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. -* [NATS](https://github.com/nats-io/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. +* [NATS Go Client](https://github.com/nats-io/nats) - A lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library. * [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs * [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. * [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. From 3c53c3461b4c8fa7bf2952d0bb9addff7c8df6ab Mon Sep 17 00:00:00 2001 From: Alexey Palazhchenko Date: Thu, 19 May 2016 20:36:24 +0400 Subject: [PATCH 0498/3440] Add reform --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 69eb5b5149f..16671532dad 100644 --- a/README.md +++ b/README.md @@ -670,6 +670,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. +* [reform](https://github.com/AlekSi/reform) - A better ORM for Go, based on non-empty interfaces and code generation. * [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. From 0d79c56aa6c2a3d94cb98997a7392dcb088cc4cf Mon Sep 17 00:00:00 2001 From: Monmohan Date: Fri, 20 May 2016 06:38:52 +0800 Subject: [PATCH 0499/3440] Added xferspdy to Utilities section. Added xferspdy to Utilities section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 69eb5b5149f..12a5b296658 100644 --- a/README.md +++ b/README.md @@ -991,6 +991,7 @@ 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. * [ugo](https://github.com/alxrm/ugo) - ugo is slice toolbox with concise syntax for Go. +* [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. From 578cd1b41a2938a1a5b80ac856cfc7d0b30004a8 Mon Sep 17 00:00:00 2001 From: Wesley Hill Date: Tue, 24 May 2016 02:51:14 +0100 Subject: [PATCH 0500/3440] Add durafmt (#961). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 12a5b296658..3b6bc7aebff 100644 --- a/README.md +++ b/README.md @@ -317,6 +317,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for working with dates and times.* +* [durafmt](https://github.com/hako/durafmt) - A time duration formatting library for Go. * [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. From 2f2e708f6a4f1c32a15f806f08b07e77885d76ef Mon Sep 17 00:00:00 2001 From: obivan Date: Wed, 25 May 2016 01:31:10 +0600 Subject: [PATCH 0501/3440] Remove hk, it is deprecated. (#962) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 3b6bc7aebff..1bf635aa2a3 100644 --- a/README.md +++ b/README.md @@ -1169,7 +1169,6 @@ Software written in Go. * [gox](https://github.com/mitchellh/gox) - A 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. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. -* [hk](https://github.com/heroku/hk) - Heroku command-line interface in Go. * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. * [Mora](https://github.com/emicklei/mora) - REST server for accessing MongoDB documents and meta data. From 94563ef40b9890be8a2ec4daaef15ef31ec12c52 Mon Sep 17 00:00:00 2001 From: Brice Figureau Date: Wed, 25 May 2016 19:27:31 +0200 Subject: [PATCH 0502/3440] Add Go WinRM client library and cli tool (#963) This (now mature) library is in used in Packer and some other Go projects. As of this writing it is maintained, and relatively well tested. Godoc: https://godoc.org/github.com/masterzen/winrm Go Report Card: A+ https://goreportcard.com/report/github.com/masterzen/winrm Gocover: 86% https://gocover.io/github.com/masterzen/winrm Signed-off-by: Brice Figureau --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1bf635aa2a3..e3c9756b2ed 100644 --- a/README.md +++ b/README.md @@ -648,7 +648,7 @@ 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) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. - +* [winrm](https://github.com/masterzen/winrm) - A Go WinRM client to remotely execute commands on Windows machines ## OpenGL @@ -1180,7 +1180,7 @@ Software written in Go. * [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) - A Web-based IDE for Teams using Golang. - +* [winrm-cli](https://github.com/masterzen/winrm-cli) - A cli tool to remotely execute commands on Windows machines ### Other Software * [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine From d9477e63ce6aa7b077eb95bf54ca2bcf65b16c49 Mon Sep 17 00:00:00 2001 From: abo Date: Thu, 26 May 2016 10:27:41 +0800 Subject: [PATCH 0503/3440] Add ratelimiter to utilities --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e3c9756b2ed..17714b9d1fb 100644 --- a/README.md +++ b/README.md @@ -983,6 +983,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go. +* [ratelimiter](https://github.com/abo/ratelimiter) - Redis-based rate counter and rate limiter for Go. * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. From cfa0ca4546e5dd372b82448ead8958a02c82aa2a Mon Sep 17 00:00:00 2001 From: abo Date: Fri, 27 May 2016 10:42:22 +0800 Subject: [PATCH 0504/3440] ratelimiter rename to rerate --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 17714b9d1fb..afc9d26eff4 100644 --- a/README.md +++ b/README.md @@ -983,8 +983,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go. -* [ratelimiter](https://github.com/abo/ratelimiter) - Redis-based rate counter and rate limiter for Go. * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. +* [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. From 154841c37856de7713a92af9cd394c2fd2ed51ef Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Sat, 28 May 2016 12:15:39 +0530 Subject: [PATCH 0505/3440] Added levenshtein to Data Structures --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e3c9756b2ed..4297bdfd365 100644 --- a/README.md +++ b/README.md @@ -212,6 +212,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. +* [levenshtein](https://github.com/agnivade/levenshtein) - Implmentation to calculate levenshtein distance in Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go From 4b08ce173470ae3f8487531e62d862595dab98fb Mon Sep 17 00:00:00 2001 From: Baiju Muthukadan Date: Mon, 30 May 2016 12:29:36 +0530 Subject: [PATCH 0506/3440] esc - resource embedding package (#973) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6f1660b1912..1e67bc33c49 100644 --- a/README.md +++ b/README.md @@ -703,6 +703,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Resource Embedding +* [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 From aaf8fe884a492e96dfefb336f17ef9b0734096cc Mon Sep 17 00:00:00 2001 From: Eduard Date: Mon, 30 May 2016 12:34:47 +0300 Subject: [PATCH 0507/3440] Added router Bxog Added the router Bxog to the section Web Frameworks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1e67bc33c49..b909ce35f8f 100644 --- a/README.md +++ b/README.md @@ -1031,6 +1031,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. * [Echo](https://github.com/labstack/echo) - A fast and unfancy micro web framework for Go. * [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. From ec6d09aa976a98c7274c3bb99dff20df59fbf55a Mon Sep 17 00:00:00 2001 From: redaready Date: Mon, 30 May 2016 12:36:09 +0200 Subject: [PATCH 0508/3440] Update README.md chang iris url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e67bc33c49..faca90ac2f0 100644 --- a/README.md +++ b/README.md @@ -1052,7 +1052,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. -* [Iris](https://kataras.github.io/iris) - A very minimal but flexible and high-performance golang web application framework, providing a robust set of features for building web applications. +* [Iris](https://github.com/kataras/iris) - A very minimal but flexible and high-performance golang web application framework, providing a robust set of features for building web applications. * [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. * [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. From 37f1978a1614f3d9bfc9b0ebd3b915689cfe00fe Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Tue, 31 May 2016 17:45:26 +0900 Subject: [PATCH 0509/3440] Add Ebiten (#972) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1e67bc33c49..0b616156c14 100644 --- a/README.md +++ b/README.md @@ -399,6 +399,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Awesome game development libraries.* +* [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple SNES-like 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. From ee3b44c26d530e8a839fe93843048d5262f7ee65 Mon Sep 17 00:00:00 2001 From: Tomas Aparicio Date: Wed, 1 Jun 2016 07:55:53 -0400 Subject: [PATCH 0510/3440] feat(docs): add baloo package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0b616156c14..3ade0367a82 100644 --- a/README.md +++ b/README.md @@ -807,6 +807,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [assert](https://github.com/go-playground/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing * [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 * [frisby](https://github.com/verdverm/frisby) - a REST API testing framework * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go From ef8fe0fb3916853b310b39a957719d53dce37c5e Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Thu, 2 Jun 2016 18:11:57 -0400 Subject: [PATCH 0511/3440] Add lux and its utilities (#979) --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 0b616156c14..98e112a3f05 100644 --- a/README.md +++ b/README.md @@ -402,6 +402,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple SNES-like 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. +* [glm](https://github.com/luxengine/glm) - A performance oriented vector, matrix, geometry library. * [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-collada](https://github.com/GlenKelley/go-collada) - Go package for working with the Collada file format. @@ -409,7 +410,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework +* [lux](https://github.com/luxengine/lux) - A 3D physically based rendering engine. +* [math](https://github.com/luxengine/math) - A float32 native version of standard library math. * [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox +* [tornago](https://github.com/luxengine/tornago) - A 3D rigid body physics engine in pure Go. ## Generation & Generics From 86f830a513f1279242694c6abc34710af6de1ba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 8 Jun 2016 03:56:18 +0100 Subject: [PATCH 0512/3440] Add github.com/mvdan/sh to Text Processing (#981). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e6d888d615..deb4d28ec7b 100644 --- a/README.md +++ b/README.md @@ -868,6 +868,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goregen](https://github.com/zach-klippenstein/goregen) - A library for generating random strings from regular expressions. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. * [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) - A shell parser and formatter * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. * [Slugify](https://github.com/avelino/slugify) - A Go slugify application that handles string. * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). From 3e2888988024e5c98f67b8b971f0afd5b73bb367 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Wed, 8 Jun 2016 11:53:14 -0400 Subject: [PATCH 0513/3440] Update location/name of codegangsta/cli (#982). Also update description to match repository description. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index deb4d28ec7b..2cf9c035766 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line application. * [climax](http://github.com/tucnak/climax) - An alternative CLI with "human face", in spirit of Go command * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions -* [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [docopt.go](https://github.com/docopt/docopt.go) - A command-line arguments parser that will make you smile. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser * [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. @@ -140,6 +139,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. +* [urfave/cli](https://github.com/urfave/cli) - A simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). * [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency. * [wmenu](https://github.com/dixonwille/wmenu) - An easy to use menu structure for cli applications that prompts users to make choices. From c7f498d0eaea2de1004c8b85a205742ffd25d654 Mon Sep 17 00:00:00 2001 From: Hafiz Ismail Date: Mon, 13 Jun 2016 15:28:15 +0800 Subject: [PATCH 0514/3440] Update `graphql-go` new repo URL. (#985) Previously `github.com/chris-ramon/graphql-go` is now `github.com/graphql-go/graphql`. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2cf9c035766..ac0fb5740cf 100644 --- a/README.md +++ b/README.md @@ -702,7 +702,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. * [graphql](https://github.com/sevki/graphql) - GraphQL implementation in go. -* [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. +* [graphql-go](https://github.com/graphql-go/graphql) - An implementation of GraphQL for Go. * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. From 240a6b86acecfb7db129df83b15e19d59dcdfb9c Mon Sep 17 00:00:00 2001 From: Stan Bright Date: Mon, 13 Jun 2016 14:16:44 +0300 Subject: [PATCH 0515/3440] Add 'Awesome Go @LibHunt' to the Websites section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ac0fb5740cf..5aa3100e4f7 100644 --- a/README.md +++ b/README.md @@ -1288,6 +1288,7 @@ Where to discover new Go libraries. ## Websites +* [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. * [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - A curated list of awesome remote jobs. A lot of them is looking for Go hackers. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. * [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. From 2ea571100e0c45d5e0578291f418b12620b977ea Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Mon, 13 Jun 2016 10:47:58 -0400 Subject: [PATCH 0516/3440] add form library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ac0fb5740cf..d377abcbbaa 100644 --- a/README.md +++ b/README.md @@ -389,6 +389,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 struct, creating objects as necessary. Dual Array and Full map support. * [formam](https://github.com/monoculum/formam) - decode form's values into a struct. * [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. From a81460ecdd298f7fb0f0dfa4ea856552aa6055a7 Mon Sep 17 00:00:00 2001 From: Daniel Fu Date: Tue, 14 Jun 2016 10:59:31 +0800 Subject: [PATCH 0517/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ac0fb5740cf..42cf5f5fa3f 100644 --- a/README.md +++ b/README.md @@ -643,6 +643,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grab](https://github.com/cavaliercoder/grab) - Go package for managing file downloads * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. * [kcp-go](https://github.com/xtaci/kcp-go) - KCP - A Fast and Reliable ARQ Protocol. +* [kcptun](https://github.com/xtaci/kcptun) - An extremely simple & fast udp tunnel based on KCP protocol * [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 From a8da292afeafe764deef40a9a99a07b269cd8a9d Mon Sep 17 00:00:00 2001 From: "A. Darian" Date: Wed, 15 Jun 2016 23:35:07 +0100 Subject: [PATCH 0518/3440] Add sleuth to "Distributed Systems" section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ac0fb5740cf..5106489ca10 100644 --- a/README.md +++ b/README.md @@ -338,6 +338,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and distributed systems platform. * [NATS](https://github.com/nats-io/gnatsd) - A 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. +* [sleuth](https://github.com/ursiform/sleuth) - A library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq)). * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. * [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. From e48c9b8a0730bd96ea07d4765efcebaac556325c Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Thu, 16 Jun 2016 10:24:58 -0400 Subject: [PATCH 0519/3440] update pool description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d377abcbbaa..8ee56a66179 100644 --- a/README.md +++ b/README.md @@ -441,7 +441,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for managing and working with Goroutines* * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. -* [pool](https://github.com/go-playground/pool) - Go consumer goroutine pool for easy goroutine handling + time saving. +* [pool](https://github.com/go-playground/pool) - a limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. * [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. From 2ab6f043a419ab4c407fe5d6aa8232fe49fff8cc Mon Sep 17 00:00:00 2001 From: Dean Karn Date: Tue, 21 Jun 2016 00:05:23 -0400 Subject: [PATCH 0520/3440] Update go-playground/form's description as it now also supports Encoding url.Values from a struct. (#997) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ee56a66179..f9341b56dd1 100644 --- a/README.md +++ b/README.md @@ -389,7 +389,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 struct, creating objects as necessary. Dual Array and Full map support. +* [form](https://github.com/go-playground/form) - Decodes url.Values into struct values and Encodes struct values into url.Values. Dual Array and Full map support. * [formam](https://github.com/monoculum/formam) - decode form's values into a struct. * [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. From 9fa75d6f9061f16e62d63b41b99225106e5be816 Mon Sep 17 00:00:00 2001 From: Danny van Kooten Date: Tue, 21 Jun 2016 10:02:45 +0200 Subject: [PATCH 0521/3440] Add dannyvankooten/vat to Financial. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f9341b56dd1..1f823181acd 100644 --- a/README.md +++ b/README.md @@ -380,6 +380,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang * [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers +* [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates ## Forms From b50aedbb85eb7cb0d19fb5b8f492686add9990ba Mon Sep 17 00:00:00 2001 From: Melih Mucuk Date: Tue, 21 Jun 2016 18:38:30 +0300 Subject: [PATCH 0522/3440] geocache package added to Database section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f9341b56dd1..4623243b830 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. * [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. +* [geocache](https://github.com/melihmucuk/geocache) - An in-memory cache that is suitable for geolocation based applications. * [goleveldb](https://github.com/syndtr/goleveldb) - An 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 From dc056e4b45d838b12126408af154819e1f8be7e5 Mon Sep 17 00:00:00 2001 From: Melih Mucuk Date: Tue, 21 Jun 2016 18:44:18 +0300 Subject: [PATCH 0523/3440] change order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4623243b830..2c121066393 100644 --- a/README.md +++ b/README.md @@ -231,8 +231,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. -* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. * [geocache](https://github.com/melihmucuk/geocache) - An in-memory cache that is suitable for geolocation based applications. +* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. * [goleveldb](https://github.com/syndtr/goleveldb) - An 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 From c061c4ce5a8854f08da00dac987a4b5edb239ad3 Mon Sep 17 00:00:00 2001 From: aymer Date: Wed, 22 Jun 2016 06:38:41 +0800 Subject: [PATCH 0524/3440] Add zap logger package from Uber. (#996) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f9341b56dd1..4b7c22c5152 100644 --- a/README.md +++ b/README.md @@ -519,6 +519,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go package striving to emulate the features of the BSD tail program. * [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. +* [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. ## Machine Learning From 3ba9783c4ff5cfc507275bcb9f2ed98c77bca5f0 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Wed, 22 Jun 2016 11:01:31 +0300 Subject: [PATCH 0525/3440] add more info to PR template and gocover.io altername --- .github/PULL_REQUEST_TEMPLATE.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index a4a4de0575b..eaf3b70c615 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,9 +1,9 @@ Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! -Please provide package links to: +**Please provide package links to:** - godoc.org: - goreportcard.com: -- gocover.io: +- gocover.io or coveralls: Note, that new categories can be added only when there are 3 packages or more. @@ -11,9 +11,9 @@ 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 -- [ ] I have added gocover.io link -- [ ] I have added goreportcard link +- [ ] I have added godoc link to the repo and to my pull request +- [ ] I have added gocover.io or coveralls 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) and [Quality standard](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard). Thanks for your PR, you're awesome! :+1: From ba9fd5f6b6fb2d6aef4203902781718e63e082f5 Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Thu, 23 Jun 2016 02:35:04 -0400 Subject: [PATCH 0526/3440] Remove 4 repos from Game Development section. (#1003) --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 64590b3276c..301efee0c8b 100644 --- a/README.md +++ b/README.md @@ -406,7 +406,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple SNES-like 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. -* [glm](https://github.com/luxengine/glm) - A performance oriented vector, matrix, geometry library. * [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-collada](https://github.com/GlenKelley/go-collada) - Go package for working with the Collada file format. @@ -414,10 +413,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework -* [lux](https://github.com/luxengine/lux) - A 3D physically based rendering engine. -* [math](https://github.com/luxengine/math) - A float32 native version of standard library math. * [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox -* [tornago](https://github.com/luxengine/tornago) - A 3D rigid body physics engine in pure Go. ## Generation & Generics From 070624face26ff4b405f7e92f77afb97e25468f4 Mon Sep 17 00:00:00 2001 From: Alexey Palazhchenko Date: Thu, 23 Jun 2016 17:33:42 +0400 Subject: [PATCH 0527/3440] Update reform repository --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 301efee0c8b..a9e464b2a78 100644 --- a/README.md +++ b/README.md @@ -677,7 +677,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. -* [reform](https://github.com/AlekSi/reform) - A better ORM for Go, based on non-empty interfaces and code generation. +* [reform](https://github.com/go-reform/reform) - A better ORM for Go, based on non-empty interfaces and code generation. * [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. From 2043601169a46ddfbd3d19629a3b04529d1a2739 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Thu, 23 Jun 2016 14:31:46 -0400 Subject: [PATCH 0528/3440] added ozzo-validation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9e464b2a78..4a507b37462 100644 --- a/README.md +++ b/README.md @@ -1012,6 +1012,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for validation.* * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. +* [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. From aa6a2a8fb1036602d81818dab11be92c6d22eebe Mon Sep 17 00:00:00 2001 From: Michel Aquino Date: Sat, 25 Jun 2016 01:43:02 -0300 Subject: [PATCH 0529/3440] Add govendor, a Go package manager. (#1007) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 4a507b37462..f90407a567f 100644 --- a/README.md +++ b/README.md @@ -694,12 +694,15 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gom](https://github.com/mattn/gom) - Go Manager - bundle for go. * [goop](https://github.com/nitrous-io/goop) - A simple dependency manager for Go (golang), inspired by Bundler. * [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. * [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 * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. From 4c9bd66b4ab438ca3b3489c5f6abb169f2316511 Mon Sep 17 00:00:00 2001 From: Victor Gaydov Date: Fri, 1 Jul 2016 09:06:52 +0400 Subject: [PATCH 0530/3440] Add httpexpect. (#1010) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f90407a567f..747de15da83 100644 --- a/README.md +++ b/README.md @@ -832,6 +832,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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 * [restit](https://github.com/yookoala/restit) - A 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) - A sacred extension to the standard go testing package. From 1999458e7ad03d5d2f88035bb4684c5f6658d259 Mon Sep 17 00:00:00 2001 From: mstrong Date: Fri, 1 Jul 2016 21:58:43 -0400 Subject: [PATCH 0531/3440] Correcting goreturns URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 747de15da83..69213c5045b 100644 --- a/README.md +++ b/README.md @@ -1136,7 +1136,7 @@ Go software and plugins. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. -* [goreturns](https://sourcegraph.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. +* [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. * [interfacer](https://github.com/mvdan/interfacer) - A linter that suggests interface types. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 54a5e4c2bc0917c4609a287c84d173c636641daf Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sat, 9 Jul 2016 00:39:51 -0700 Subject: [PATCH 0532/3440] Remove aac/h264 package because of 404. Resolves #1016. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4607aa1f74a..f5abf8c391f 100644 --- a/README.md +++ b/README.md @@ -1035,7 +1035,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for manipulating video.* -* [aac/h264](https://github.com/nareix/codec) - Golang aac/h264 encoder and decoder. * [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. From 101db9110051db024207a5d9452991f44fc1d362 Mon Sep 17 00:00:00 2001 From: Stefan Cocora Date: Sat, 9 Jul 2016 08:58:44 +0100 Subject: [PATCH 0533/3440] Add gvt to package management. (#1017) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f5abf8c391f..f83fd966680 100644 --- a/README.md +++ b/README.md @@ -697,6 +697,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 From 31c6a709c4c424ced70e525de52c7b54639c2c6b Mon Sep 17 00:00:00 2001 From: mozillazg Date: Sun, 10 Jul 2016 10:54:47 +0800 Subject: [PATCH 0534/3440] add go-unidecode --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f83fd966680..f3ee3d5bcf4 100644 --- a/README.md +++ b/README.md @@ -604,6 +604,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-i18n](https://github.com/nicksnyder/go-i18n/) - A package and an accompanying tool to work with localized text. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. * [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. +* [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 From 9fa12a2d2896ab7e4eebae1be31db3b9f2297c18 Mon Sep 17 00:00:00 2001 From: Shamsher Ansari Date: Tue, 12 Jul 2016 15:23:32 +0530 Subject: [PATCH 0535/3440] Add gods, go data structure. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f3ee3d5bcf4..f6244b10539 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-adaptive-radix-tree](https://github.com/plar/go-adaptive-radix-tree) - A Go implementation of Adaptive Radix Tree. * [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures * [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. +* [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing From 9439e246985f27e4409644d4391595a932e0ed11 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Wed, 13 Jul 2016 21:16:52 -0300 Subject: [PATCH 0536/3440] Add editorconfig-core-go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f3ee3d5bcf4..ef1927adb88 100644 --- a/README.md +++ b/README.md @@ -862,6 +862,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. * [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 * [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. From 9fde6ab50661140f6eb6573666a1927fd74265bd Mon Sep 17 00:00:00 2001 From: Blake Orth Date: Sat, 16 Jul 2016 11:57:12 -0600 Subject: [PATCH 0537/3440] Add gaad, a native Go AAC bitstream parser. (#1023) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 32c201ceb9b..503d45528a6 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. * [flac](https://github.com/mewkiz/flac) - A native Go FLAC decoder. +* [gaad](https://github.com/Comcast/gaad) - A 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. * [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. From 627f9eacea885ede73871ad6386b494e972cb71f Mon Sep 17 00:00:00 2001 From: mozillazg Date: Sun, 17 Jul 2016 07:36:12 +0800 Subject: [PATCH 0538/3440] add go-slugify --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 503d45528a6..6a0ed2c8906 100644 --- a/README.md +++ b/README.md @@ -872,6 +872,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [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. * [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. From ceef91dccceed1106e357c6deb99de2ce32e4da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mustafa=20Ak=C4=B1n?= Date: Mon, 18 Jul 2016 14:33:05 +0300 Subject: [PATCH 0539/3440] Added Gongular web framework --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0afbb73777b..cd827aab994 100644 --- a/README.md +++ b/README.md @@ -1071,6 +1071,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple. * [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster +* [gongular](https://github.com/mustafaakin/gongular) - A fast Go web framework with input mapping/validation and (DI) Dependency Injection * [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. From a15c9827fd953df0f744944f555cc1b914e4861d Mon Sep 17 00:00:00 2001 From: Ben Gadbois Date: Mon, 18 Jul 2016 12:38:44 -0700 Subject: [PATCH 0540/3440] Removing unmaintained bmizerany/assert --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index cd827aab994..122957f273a 100644 --- a/README.md +++ b/README.md @@ -820,7 +820,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * Testing Frameworks * [assert](https://github.com/go-playground/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions - * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing * [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 From 8a544bffd18977afc64df1125e0b8b92b1b4eb81 Mon Sep 17 00:00:00 2001 From: Mehrdad Arshad Rad Date: Wed, 20 Jul 2016 08:54:47 -0700 Subject: [PATCH 0541/3440] added mylg repo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 122957f273a..7aa0ad26281 100644 --- a/README.md +++ b/README.md @@ -1225,6 +1225,7 @@ Software written in Go. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. * [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. +* [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. * [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. From 47e399abbffface62a3690f3e2769c6ba6568494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vytautas=20=C5=A0altenis?= Date: Wed, 20 Jul 2016 20:54:30 +0300 Subject: [PATCH 0542/3440] Fix some typos --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 122957f273a..b8f8670f3aa 100644 --- a/README.md +++ b/README.md @@ -204,17 +204,17 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. * [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. * [bloom](https://github.com/zhenjl/bloom) - Bloom filters implemented in Go. -* [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) - A 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) - A Go implementation of Adaptive Radix Tree. -* [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures +* [go-datastructures](https://github.com/Workiva/go-datastructures) - A collection of useful, performant, and thread-safe data structures * [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. * [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. -* [levenshtein](https://github.com/agnivade/levenshtein) - Implmentation to calculate levenshtein distance in Go. +* [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 * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go @@ -241,7 +241,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. +* [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [rqlite](https://github.com/rqlite/rqlite) - Replicated SQLite, using Raft consensus. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. @@ -943,7 +943,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package. * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. -* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub and Bitbucket. +* [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. ## Utilities @@ -1258,7 +1258,7 @@ Where to discover new Go libraries. ## Benchmarks * [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. -* [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - A few miscellaneous Go microbenchmarks. Compare some language features to alternative aproaches. +* [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - A few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. * [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. * [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. * [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. From 51e65c6593cece461b09a62fc2beb99007968acd Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Wed, 20 Jul 2016 20:54:10 +0300 Subject: [PATCH 0543/3440] add dlog --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e271b6d01a..401ea467f9c 100644 --- a/README.md +++ b/README.md @@ -906,6 +906,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. +* [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. * [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. * [fzf](https://github.com/junegunn/fzf) - A command-line fuzzy finder written in Go From eb3074188fd37e259f71301a91ef705eff0c95d5 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Thu, 21 Jul 2016 03:13:52 +0300 Subject: [PATCH 0544/3440] support any coverage service --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index eaf3b70c615..86e0ef59e35 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,7 +3,7 @@ Please check if what you want to add to `awesome-go` list meets [quality standar **Please provide package links to:** - godoc.org: - goreportcard.com: -- gocover.io or coveralls: +- coverage service link (gocover, coveralls etc.): Note, that new categories can be added only when there are 3 packages or more. From 113f0eb0226d75407249dbd79ae9e8bbef7b3af3 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Thu, 21 Jul 2016 03:14:36 +0300 Subject: [PATCH 0545/3440] rename coverage checkbox --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 86e0ef59e35..8b15977c293 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -12,7 +12,7 @@ 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 gocover.io or coveralls 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) and [Quality standard](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard). From bcc6a031ff3468588cfefd16b0e67898198d7861 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Thu, 21 Jul 2016 03:17:09 +0300 Subject: [PATCH 0546/3440] add github link to links list + bold font weight --- .github/PULL_REQUEST_TEMPLATE.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8b15977c293..8c1dadd7cae 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,14 +1,15 @@ Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** +- github.com repo: - godoc.org: - goreportcard.com: - coverage service link (gocover, coveralls etc.): -Note, that new categories can be added only when there are 3 packages or more. +**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: +**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 From 94ca39d5554f1cf2dda1d6a7d8c767d0b24677c3 Mon Sep 17 00:00:00 2001 From: Ryan Leary Date: Thu, 21 Jul 2016 10:06:22 -0400 Subject: [PATCH 0547/3440] Add Kazaam JSON transformation project --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 18fe1723e54..a82a4b00450 100644 --- a/README.md +++ b/README.md @@ -990,6 +990,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. +* [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. * [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) - A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. From 897a28cb286d9a636d350372e19868c0cc94eb84 Mon Sep 17 00:00:00 2001 From: Eduard Date: Mon, 25 Jul 2016 17:52:18 +0300 Subject: [PATCH 0548/3440] Add implementation of the "Bailey-Borwein-Plouffe" algorithm. (#1039) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f28f9b38e3a..bb066cfa71f 100644 --- a/README.md +++ b/README.md @@ -751,6 +751,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language * [mudlark-go](https://github.com/pwil3058/mudlark-go-pkgs) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. * [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) - A 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) From 61854840c4c96b67d6c6b5c4f0b4ff13ec631703 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Tue, 26 Jul 2016 10:46:09 -0400 Subject: [PATCH 0549/3440] update form description for new functionality added. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bb066cfa71f..1ceb612d69f 100644 --- a/README.md +++ b/README.md @@ -395,7 +395,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 struct values and Encodes struct values into url.Values. Dual Array and Full map support. +* [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. * [formam](https://github.com/monoculum/formam) - decode form's values into a struct. * [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. From ca0847c316d6dc3bdc17a649063303ffb0be335e Mon Sep 17 00:00:00 2001 From: Belac Darkstorm Date: Wed, 27 Jul 2016 00:43:15 -0500 Subject: [PATCH 0550/3440] Added bbConvert --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1ceb612d69f..99c218baba2 100644 --- a/README.md +++ b/README.md @@ -862,6 +862,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for parsing and manipulating texts.* * Specific Formats + * [bbConvert](https://github.com/CalebQ42/bbConvert) - Converts bbCode to HTML that allows you to add support for custo bbCode tags * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer From ff1d1e4e1589b060f5bc6d6e2282007e4d1f7394 Mon Sep 17 00:00:00 2001 From: Belac Darkstorm Date: Wed, 27 Jul 2016 00:51:23 -0500 Subject: [PATCH 0551/3440] Fixed typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 99c218baba2..0ab835cb6e6 100644 --- a/README.md +++ b/README.md @@ -862,7 +862,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for parsing and manipulating texts.* * Specific Formats - * [bbConvert](https://github.com/CalebQ42/bbConvert) - Converts bbCode to HTML that allows you to add support for custo bbCode tags + * [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 * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer From 5cefaca668649e86b4131c396a13f2e654b4814a Mon Sep 17 00:00:00 2001 From: Alex Flint Date: Sun, 31 Jul 2016 09:26:21 -0700 Subject: [PATCH 0552/3440] add go-arg under CLI --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e3633dbdc9..484ecd1b390 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [climax](http://github.com/tucnak/climax) - An alternative CLI with "human face", in spirit of Go command * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [docopt.go](https://github.com/docopt/docopt.go) - A command-line arguments parser that will make you smile. +* [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) - A command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. From 3afa170e8e0d8ece1651203a6d6f43eb14245fb7 Mon Sep 17 00:00:00 2001 From: Josh Baker Date: Mon, 1 Aug 2016 13:23:14 -0700 Subject: [PATCH 0553/3440] Adding BuntDB --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e3633dbdc9..246646621c7 100644 --- a/README.md +++ b/README.md @@ -227,6 +227,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Databases implemented in Go.* * [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. +* [buntdb](https://github.com/tidwall/buntdb) - A fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. * [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. * [cockroach](https://github.com/cockroachdb/cockroach) - A Scalable, Geo-Replicated, Transactional Datastore * [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server. From bf1af4e0d828b9d15e43486b89fa022c51cd5a1a Mon Sep 17 00:00:00 2001 From: Leonel Quinteros Date: Sat, 6 Aug 2016 23:52:47 -0300 Subject: [PATCH 0554/3440] Add YARF and gotext --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a646375ca38..78d3e2353be 100644 --- a/README.md +++ b/README.md @@ -883,6 +883,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts * [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) - A library for generating random strings from regular expressions. + * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. * [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) - A shell parser and formatter @@ -1104,6 +1105,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. * [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. * [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. +* [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. From 68e3d6948cb4f59ed59096c22445ff6d31442c7a Mon Sep 17 00:00:00 2001 From: Ahmet Alp Balkan Date: Wed, 10 Aug 2016 16:37:27 -0700 Subject: [PATCH 0555/3440] add govvv --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 78d3e2353be..3f0a3a9e32d 100644 --- a/README.md +++ b/README.md @@ -1198,6 +1198,7 @@ Software written in Go. * [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) - A “go build” wrapper to easily add version information into Go binaries * [gox](https://github.com/mitchellh/gox) - A 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. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. From b8cb52f84550479edde986c2505c4f91cb81ba16 Mon Sep 17 00:00:00 2001 From: Michael Fogleman Date: Thu, 11 Aug 2016 23:12:35 -0400 Subject: [PATCH 0556/3440] Add gg, ln, pt graphics libraries. (#1056) --- README.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 78d3e2353be..037dc6fd15a 100644 --- a/README.md +++ b/README.md @@ -475,23 +475,26 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for manipulating images.* -* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips +* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. +* [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. * [gift](https://github.com/disintegration/gift) - Package of image processing filters. * [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. -* [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library +* [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library. * [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. * [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. * [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. -* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing +* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. * [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. * [img](https://github.com/hawx/img) - A selection of image manipulation tools. +* [ln](https://github.com/fogleman/ln) - 3D line art rendering in Go. * [mpo](https://github.com/donatj/mpo) - A decoder and conversion tool for MPO 3D Photos. -* [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go +* [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go. +* [pt](https://github.com/fogleman/pt) - A path tracing engine written in Go. * [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods. * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. -* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes +* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. * [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. * [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. From 54762b1390fdd11ce94f7f9684226d3cb6528f9c Mon Sep 17 00:00:00 2001 From: Albert Date: Sun, 14 Aug 2016 00:48:52 +0500 Subject: [PATCH 0557/3440] Add id3v2 library. (#1057) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4688e84f6ad..e1761ab3960 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gaad](https://github.com/Comcast/gaad) - A 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. +* [id3v2](https://github.com/bogem/id3v2) - Fast and stable ID3 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) - A native Go MP# decoder. * [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. From dbb6a3c8721093cdc818fb1dba859b0f98c39188 Mon Sep 17 00:00:00 2001 From: Peng Xiao Date: Wed, 17 Aug 2016 19:10:15 +0800 Subject: [PATCH 0558/3440] add gobgp to networking Signed-off-by: Peng Xiao --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1761ab3960..a97aa987ac2 100644 --- a/README.md +++ b/README.md @@ -645,6 +645,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go library for downloading files or directories from various sources using a URL. * [go-stun](https://github.com/ccding/go-stun) - A 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) - A Go library for packet processing with libpcap bindings * [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap From 463f872faefdb3819646ea3287ecbac11bf44104 Mon Sep 17 00:00:00 2001 From: Christian Zangl Date: Mon, 8 Aug 2016 21:59:29 +0200 Subject: [PATCH 0559/3440] add Hjson --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a646375ca38..12216568ef2 100644 --- a/README.md +++ b/README.md @@ -176,6 +176,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy +* [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 * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files From d2d8d6ef3cef1aecae95117d400a0c06ada9c7b2 Mon Sep 17 00:00:00 2001 From: Alessio Pracchia Date: Thu, 18 Aug 2016 01:19:09 +0200 Subject: [PATCH 0560/3440] Update README.md Realize is a Go build system with file watchers and live reload. It can run, build and watch file changes with custom paths --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1761ab3960..ef0755e6e40 100644 --- a/README.md +++ b/README.md @@ -1016,6 +1016,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go. +* [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. From 0817b7745e592b592ba0194cfb4787473ab04a96 Mon Sep 17 00:00:00 2001 From: Denis Bernard Date: Thu, 11 Aug 2016 14:26:14 +0200 Subject: [PATCH 0561/3440] Add Ngaro to Embeddable Scripting Languages [ngaro](https://github.com/db47h/ngaro) - Ngaro VM implementation enabling scripting in Retro --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1761ab3960..6ef4653b860 100644 --- a/README.md +++ b/README.md @@ -378,6 +378,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - a 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) - A JavaScript interpreter written in Go * [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go From f7c75e3ed359388b55d3d6b17f11b8ae80544417 Mon Sep 17 00:00:00 2001 From: "Anthony N. Simon" Date: Sun, 21 Aug 2016 05:01:30 +0200 Subject: [PATCH 0562/3440] Add bild, a collection of image processing algorithms in pure Go. (#1051) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1761ab3960..d46d6392ec8 100644 --- a/README.md +++ b/README.md @@ -476,6 +476,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for manipulating images.* +* [bild](https://github.com/anthonynsimon/bild) - A collection of image processing algorithms in pure Go. * [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. * [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. From 9e47557c0b58e70e4b216af64366cc2d00b81f93 Mon Sep 17 00:00:00 2001 From: seborama Date: Mon, 22 Aug 2016 23:13:41 +0100 Subject: [PATCH 0563/3440] [govcr] Add govcr HTTP mock for Golang: record and replay HTTP interactions for offline testing. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d46d6392ec8..c177c66e0a9 100644 --- a/README.md +++ b/README.md @@ -856,6 +856,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter * Fuzzing and delta-debugging/reducing/shrinking From 0986810ae9f4522948d593aa7b55afdbe4ee402e Mon Sep 17 00:00:00 2001 From: Eliseu Benedito Codinhoto Date: Wed, 24 Aug 2016 02:30:27 -0300 Subject: [PATCH 0564/3440] Add GopherCon Brazil. (#1066) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a7f19fa4c5d..2cbbbb34083 100644 --- a/README.md +++ b/README.md @@ -1297,6 +1297,7 @@ Where to discover new Go libraries. * [GolangUK](http://golanguk.com/) - London, UK * [GopherChina](http://gopherchina.org) - Shanghai, China * [GopherCon](http://www.gophercon.com/) - Denver, USA +* [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR * [GopherCon Dubai](http://www.gophercon.ae/) - Dubai, UAE * [GopherCon India](http://www.gophercon.in/) - Bengaluru, India * [GothamGo](http://gothamgo.com/) - New York City, USA From bf8003d72754abac9f112c6dc93ad05f0261b7c6 Mon Sep 17 00:00:00 2001 From: John Rowley Date: Fri, 26 Aug 2016 23:21:14 -0700 Subject: [PATCH 0565/3440] Added github.com/robbert229/jwt Added my jwt library to the list. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2cbbbb34083..d5ffe589ecb 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. +* [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implmentatino of JSON Web Tokens (JWT). * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. From ed29b52dfbf7f970267c77457c3058aac0ca07ac Mon Sep 17 00:00:00 2001 From: bogem Date: Sat, 27 Aug 2016 14:21:46 +0500 Subject: [PATCH 0566/3440] Complete description about id3v2 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2cbbbb34083..9be51f5c3b6 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gaad](https://github.com/Comcast/gaad) - A 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. -* [id3v2](https://github.com/bogem/id3v2) - Fast and stable ID3 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) - A native Go MP# decoder. * [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. From bcf6637732fc32e5a0823efe45d84343d61fbc32 Mon Sep 17 00:00:00 2001 From: Andrew Brampton Date: Sun, 28 Aug 2016 09:39:41 -0700 Subject: [PATCH 0567/3440] Add hilbert - Mapping values to and from space-filling curves. (#1075) Such as Hilbert and Peano curves. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9be51f5c3b6..cb07c265c2f 100644 --- a/README.md +++ b/README.md @@ -217,6 +217,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. +* [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. * [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 * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. From 815fcb6c774d4f155339039c2e2786f7bfa05b30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wo=C5=BAniak?= Date: Tue, 30 Aug 2016 06:29:32 +0200 Subject: [PATCH 0568/3440] Add battery package, provides cross-platform, normalized battery information. (#1070) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cb07c265c2f..a7c96862c1b 100644 --- a/README.md +++ b/README.md @@ -589,6 +589,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [banner](https://github.com/dimiro1/banner) - Add beautiful banners into your Go applications. +* [battery](https://github.com/distatus/battery) - A cross-platform, normalized battery information library. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. From f253600912ef2697eecd0bd00ef42817f3ec64bc Mon Sep 17 00:00:00 2001 From: Miguel Loureiro Date: Tue, 30 Aug 2016 19:05:12 +0100 Subject: [PATCH 0569/3440] Add Carbon, a simple time extension, ported from PHP Carbon library. (#1076) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a7c96862c1b..feaeb10d747 100644 --- a/README.md +++ b/README.md @@ -326,6 +326,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for working with dates and times.* +* [carbon](https://github.com/uniplaces/carbon) - A simple Time extension with a lot of util methods, ported from PHP Carbon library. * [durafmt](https://github.com/hako/durafmt) - A time duration formatting library for Go. * [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. From 055bd7cc5768ad80d1b070349df4efab20e3a638 Mon Sep 17 00:00:00 2001 From: adranwit Date: Wed, 31 Aug 2016 20:13:56 -0700 Subject: [PATCH 0570/3440] Added new go projects (#990) * Added new go project - added datastore connectivity - datastore testiblity * Added viant datastore connectivity and testability projects asc bgc dsc toolbox --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index feaeb10d747..7c08514a4a0 100644 --- a/README.md +++ b/README.md @@ -284,6 +284,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for connecting and operating databases.* * Relational Databases + * [bgc](https://github.com/viant/bgc) - Datastore Connectivity for BigQuery 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. @@ -296,9 +297,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. * NoSQL Databases + * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. * [cayley](https://github.com/google/cayley) - A 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 @@ -700,7 +703,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. - ## Package Management *Libraries for package and dependency management.* @@ -836,6 +838,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 + * [dsunit](https://github.com/viant/dsunit) - Datastore testing for SQL, NoSQL, structured files. * [frisby](https://github.com/verdverm/frisby) - a 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 @@ -854,7 +857,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [restit](https://github.com/yookoala/restit) - A 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) - A sacred extension to the standard go testing package. - + * 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 @@ -1032,6 +1035,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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. +* [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. * [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. From d996dec37829c1ff9f160e59c46ce951e4cd35d1 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Thu, 1 Sep 2016 06:28:43 +0300 Subject: [PATCH 0571/3440] fix latest merge :( Signed-off-by: Kirill Danshin --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7c08514a4a0..ab4bede0c42 100644 --- a/README.md +++ b/README.md @@ -297,9 +297,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. * NoSQL Databases - * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. + * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. * [cayley](https://github.com/google/cayley) - A 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 @@ -857,7 +857,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [restit](https://github.com/yookoala/restit) - A 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) - A sacred extension to the standard go testing package. - + * 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 From 93af5ae0d32d49363472625c263bd52a69737170 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Thu, 1 Sep 2016 12:29:28 -0300 Subject: [PATCH 0572/3440] Add gormigrate --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ab4bede0c42..9f9a10f027f 100644 --- a/README.md +++ b/README.md @@ -252,18 +252,22 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. * [Tile38](https://github.com/tidwall/tile38) - A geolocation DB with spatial index and realtime geofencing. +*Database schema migration.* + +* [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 migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. +* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., +* [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. + *Database tools.* * [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. * [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. -* [goose](https://github.com/steinbacher/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. * [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. -* [migrate](https://github.com/mattes/migrate) - Database migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. * [orchestrator](https://github.com/outbrain/orchestrator) - MySQL replication topology manager & visualizer * [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser -* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., -* [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. * [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.* From e511788c1ea94c763ffe19a25e61e6eb5bc3bfe9 Mon Sep 17 00:00:00 2001 From: Yaron Sumel Date: Mon, 5 Sep 2016 07:55:49 +0300 Subject: [PATCH 0573/3440] Add grapes (#1080) * Update README.md * new grapes github.com repo: https://github.com/yaronsumel/grapes godoc.org: https://godoc.org/github.com/yaronsumel/grapes goreportcard.com: https://goreportcard.com/report/github.com/yaronsumel/grapes coverage service link (gocover, coveralls etc.): N/A 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 read Contribution guidelines and Quality standard. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ab4bede0c42..5364f88691d 100644 --- a/README.md +++ b/README.md @@ -1216,6 +1216,7 @@ Software written in Go. * [govvv](https://github.com/ahmetalpbalkan/govvv) - A “go build” wrapper to easily add version information into Go binaries * [gox](https://github.com/mitchellh/gox) - A 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. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. From 464bccade5fc79831b1cbbecc26d829b9a835e86 Mon Sep 17 00:00:00 2001 From: SlevinT Date: Sun, 4 Sep 2016 22:46:37 -0700 Subject: [PATCH 0574/3440] Update Readme (#1079) * Update Readme Added the package listing for go-openapi allows parsing swagger files outside of the go-swagger package. * ammending change whoops was not paying attention. sloppy on my part --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5364f88691d..527e15e6df8 100644 --- a/README.md +++ b/README.md @@ -599,6 +599,7 @@ 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) - A generic object pool for Golang. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. +* [go-openapi](https://github.com/go-openapi) - A collection of packages to parse and utilize open-api schemas * [go-shortid](https://github.com/ventu-io/go-shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [gopsutil](https://github.com/shirou/gopsutil) - A 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 From 10e0296b52a62ddd27300c9d62ba1ab590826306 Mon Sep 17 00:00:00 2001 From: Patrick O Date: Mon, 5 Sep 2016 21:18:02 +1000 Subject: [PATCH 0575/3440] Add SQLBoiler to ORM section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 527e15e6df8..6a1af8bba0c 100644 --- a/README.md +++ b/README.md @@ -700,6 +700,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - A better ORM for Go, based on non-empty interfaces and code generation. * [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. +* [SQLBoiler](https://github.com/vattle/sqlboiler) - An ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. From edd5b671302f32da31793e8b02aee4b22c08479c Mon Sep 17 00:00:00 2001 From: Patrick O Date: Mon, 5 Sep 2016 22:07:09 +1000 Subject: [PATCH 0576/3440] Add SQLBoiler to ORM section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a1af8bba0c..b704cdf72d6 100644 --- a/README.md +++ b/README.md @@ -699,8 +699,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - A better ORM for Go, based on non-empty interfaces and code generation. -* [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. * [SQLBoiler](https://github.com/vattle/sqlboiler) - An ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. +* [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. From 7857f0e24cb24d77ad1774cc4f9eddaec83dde76 Mon Sep 17 00:00:00 2001 From: Andras Belicza Date: Tue, 6 Sep 2016 12:07:22 +0200 Subject: [PATCH 0577/3440] Added bitio. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 527e15e6df8..6e3801c9eb8 100644 --- a/README.md +++ b/README.md @@ -594,6 +594,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [banner](https://github.com/dimiro1/banner) - Add beautiful banners into your Go applications. * [battery](https://github.com/distatus/battery) - A cross-platform, normalized battery information library. +* [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. From dd898550d4581356241f4ef54c9ecd343be0c9ab Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Tue, 6 Sep 2016 16:07:19 +0300 Subject: [PATCH 0578/3440] add gocryforhelp (#1036) * add gocryforhelp * fix sort --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 527e15e6df8..060297374d8 100644 --- a/README.md +++ b/README.md @@ -1339,6 +1339,7 @@ Where to discover new Go libraries. * [Go Blog](http://blog.golang.org) - The official Go blog. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. +* [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - A collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. * [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art. * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. From 12982de1fe84a3868c824ac8a0c4b09114d808be Mon Sep 17 00:00:00 2001 From: Gerasimos Maropoulos Date: Tue, 6 Sep 2016 23:21:46 +0300 Subject: [PATCH 0579/3440] Add go-events --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 060297374d8..c7eae96a583 100644 --- a/README.md +++ b/README.md @@ -570,6 +570,7 @@ 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. * [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. +* [go-events](https://github.com/kataras/go-events) - Simple Nodejs-style EventEmmiter for Go. * [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 From 08ebca9376f61756f207da112d2bff4911571e58 Mon Sep 17 00:00:00 2001 From: HeadwindFly Date: Wed, 7 Sep 2016 12:01:41 +0800 Subject: [PATCH 0580/3440] Added CleverGo web framework --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 060297374d8..1fb4ee66c99 100644 --- a/README.md +++ b/README.md @@ -1078,6 +1078,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. +* [CleverGo](https://github.com/headwindfly/clevergo) - CleverGo is a simple, easy to use and high performance web framework for Go. * [Echo](https://github.com/labstack/echo) - A fast and unfancy micro web framework for Go. * [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. From 72f6ca75f824dc9ef76af66a254da3cf9ee67369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20Belicza?= Date: Fri, 9 Sep 2016 04:30:48 +0200 Subject: [PATCH 0581/3440] Added session. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1e2b12ea6e..a8d9c62e2be 100644 --- a/README.md +++ b/README.md @@ -1117,6 +1117,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. +* [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). * [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A Go framework for building JSON web services inspired by Dropwizard From 636007d47dd3dafc84456527f4c693765a181d0a Mon Sep 17 00:00:00 2001 From: Gerasimos Maropoulos Date: Fri, 9 Sep 2016 07:09:32 +0300 Subject: [PATCH 0582/3440] Add simple go-serializer --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1e2b12ea6e..90c8916fec4 100644 --- a/README.md +++ b/README.md @@ -795,6 +795,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [go-serializer](https://github.com/kataras/go-serializer) Serialize custom types or content to []byte or string * [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. * [mapstructure](https://github.com/mitchellh/mapstructure) - Go library for decoding generic map values into native Go structures. From ba0d39097d6e5782768621702c41f8e171b3adbc Mon Sep 17 00:00:00 2001 From: Gerasimos Maropoulos Date: Fri, 9 Sep 2016 07:13:12 +0300 Subject: [PATCH 0583/3440] Add go-options --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1e2b12ea6e..ca3cdd18c7b 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy +* [go-options](https://github.com/kataras/go-options) - Clean APIs for your Go Applications * [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 From 2768256b62181dfb2797d9de9e39783171368b3d Mon Sep 17 00:00:00 2001 From: Gerasimos Maropoulos Date: Fri, 9 Sep 2016 08:35:41 +0300 Subject: [PATCH 0584/3440] Fix test, go-options is top of the gofigure(;) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ca3cdd18c7b..5544e1e7c3c 100644 --- a/README.md +++ b/README.md @@ -176,8 +176,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 -* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [go-options](https://github.com/kataras/go-options) - Clean APIs for your Go Applications +* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [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 From 8a7b019d777cb2ab9264741301dd918e11e28c57 Mon Sep 17 00:00:00 2001 From: Yandry Pozo Date: Fri, 9 Sep 2016 11:53:05 -0700 Subject: [PATCH 0585/3440] Add CoreOS raft implementation. (#1093) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0d54bfbbc3a..82c1eec7495 100644 --- a/README.md +++ b/README.md @@ -352,6 +352,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and distributed systems platform. * [NATS](https://github.com/nats-io/gnatsd) - A 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. * [sleuth](https://github.com/ursiform/sleuth) - A library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq)). * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. From a539eb3aab34e3fd56ae4725addeb1a647a75cad Mon Sep 17 00:00:00 2001 From: Pavlos Ratis Date: Sun, 11 Sep 2016 14:56:50 +0100 Subject: [PATCH 0586/3440] add golang-challenge The Go Challenge is a monthly programming challenge for Go developers. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 82c1eec7495..7832d710d25 100644 --- a/README.md +++ b/README.md @@ -1345,6 +1345,7 @@ Where to discover new Go libraries. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. * [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. * [Go Blog](http://blog.golang.org) - The official Go blog. +* [Go Challenge](http://golang-challenge.org/) - Learn Go by solving problems and getting feedback from Go experts. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - A collection of Go projects that needs help. Good place to start your open-source way in Go. From cf90e8f65d9d7f303f5fb3ca51a04f6935965827 Mon Sep 17 00:00:00 2001 From: Dima Veselov Date: Sun, 11 Sep 2016 19:04:23 +0300 Subject: [PATCH 0587/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 82c1eec7495..9db99010fed 100644 --- a/README.md +++ b/README.md @@ -625,6 +625,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dpar](https://github.com/danieldk/dpar/) - Transition-based statistical dependency parser. * [go-eco](https://github.com/ThePaw/go-eco) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. * [go-i18n](https://github.com/nicksnyder/go-i18n/) - A package and an accompanying tool to work with localized text. +* [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. * [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. * [go-unidecode](https://github.com/mozillazg/go-unidecode) - ASCII transliterations of Unicode text. From 00a293819c2282cadd214452339f185db6c7afe6 Mon Sep 17 00:00:00 2001 From: Jesse Szwedko Date: Sun, 11 Sep 2016 15:41:44 -0700 Subject: [PATCH 0588/3440] Add go-circleci --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 82c1eec7495..6173dc00e6b 100644 --- a/README.md +++ b/README.md @@ -927,6 +927,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go client library for interacting with CircleCI's API * [clarifai](https://github.com/samuelcouch/clarifai) - A 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 From e2158fc58438d51622b969604569e88622474012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Riguera=20Lopez?= Date: Tue, 13 Sep 2016 18:17:05 +0200 Subject: [PATCH 0589/3440] Removed heka https://github.com/mozilla-services/heka From the [Readme](https://github.com/mozilla-services/heka): This project is deprecated. Please see [this email](https://mail.mozilla.org/pipermail/heka/2016-May/001059.html) for more details. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6173dc00e6b..1fa1f4f6131 100644 --- a/README.md +++ b/README.md @@ -1253,7 +1253,6 @@ Software written in Go. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - A chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. -* [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. * [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer. * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine. * [ipe](https://github.com/dimiro1/ipe) - An open source Pusher server implementation compatible with Pusher client libraries written in GO. From 98a04673038d4c08a4c70a0aec1378b4c9849153 Mon Sep 17 00:00:00 2001 From: Aaron Schlesinger Date: Fri, 16 Sep 2016 00:27:03 -0700 Subject: [PATCH 0590/3440] Add Go In 5 Minutes website. (#1104) 5 minute screencasts focused on getting one thing done. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1fa1f4f6131..37973cc4288 100644 --- a/README.md +++ b/README.md @@ -1346,6 +1346,7 @@ Where to discover new Go libraries. * [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. * [Go Blog](http://blog.golang.org) - The official Go blog. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. +* [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - A collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. From dbe8740dee06f689d805f9127d9654231ba5e2fe Mon Sep 17 00:00:00 2001 From: peter-mogensen Date: Mon, 19 Sep 2016 15:44:22 +0200 Subject: [PATCH 0591/3440] Added gone/log std-lib compatible log library (#1082) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37973cc4288..aea63456002 100644 --- a/README.md +++ b/README.md @@ -518,6 +518,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. +* [gone/log](https://github.com/One-com/gone/tree/master/log#readme) - Fast, extendable, full-featured, std-lib source compatible log library. * [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. From fb481bb7deb7a0dc3584e626fc4354be4689c79e Mon Sep 17 00:00:00 2001 From: Bradley Falzon Date: Sun, 25 Sep 2016 02:24:30 +0930 Subject: [PATCH 0592/3440] Add apicompat. (#1109) Tool that checks recent changes to a Go project for backwards incompatible changes. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aea63456002..f6940cffafa 100644 --- a/README.md +++ b/README.md @@ -1167,6 +1167,7 @@ Go software and plugins. ## Code Analysis +* [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. * [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. From 6cf8f63095ad330196496d1ec92dcb3f7fb0e13d Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sun, 25 Sep 2016 17:10:34 +0900 Subject: [PATCH 0593/3440] Add Tendermint --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6940cffafa..9bbf645f4bc 100644 --- a/README.md +++ b/README.md @@ -354,6 +354,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [sleuth](https://github.com/ursiform/sleuth) - A 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. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. * [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. From 21dc05aabc65512067d522843aaba9c939b5aed5 Mon Sep 17 00:00:00 2001 From: devghosh Date: Tue, 27 Sep 2016 20:33:08 +0530 Subject: [PATCH 0594/3440] add florest library High performance workflow based REST API Framework Repo: https://github.com/jabong/florest-core Godoc: https://godoc.org/github.com/jabong/florest-core/src GoreportCard: https://goreportcard.com/report/github.com/jabong/florest-core Coverage: https://coveralls.io/github/jabong/florest-core --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6940cffafa..d287cd78272 100644 --- a/README.md +++ b/README.md @@ -1088,6 +1088,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [chi](https://github.com/pressly/chi) - Small, fast and expressive HTTP router built on net/context. * [CleverGo](https://github.com/headwindfly/clevergo) - CleverGo is a simple, easy to use and high performance web framework for Go. * [Echo](https://github.com/labstack/echo) - A fast and unfancy micro web framework for Go. +* [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework * [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. * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io). From 2e678d24726515217d1abe70a678231e18ee8c57 Mon Sep 17 00:00:00 2001 From: topu Date: Sat, 1 Oct 2016 23:50:49 +0200 Subject: [PATCH 0595/3440] Add pkg/errors. (#1113) Package errors provides simple error handling primitives. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6940cffafa..07d0de7e016 100644 --- a/README.md +++ b/README.md @@ -601,6 +601,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. +* [errors](https://github.com/pkg/errors) - A package that provides simple error handling primitives. * [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) - A generic object pool for Golang. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. From 0dfb848f9553f753bfb4c9e3e71524504515fac6 Mon Sep 17 00:00:00 2001 From: Matthias Ladkau Date: Sun, 2 Oct 2016 21:02:32 +0200 Subject: [PATCH 0596/3440] Add EliasDB. (#1094) EliasDB is a graph based database which aims to provide a lightweight solution for projects which want to store their data as a graph. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 07d0de7e016..7c2184101cc 100644 --- a/README.md +++ b/README.md @@ -238,6 +238,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [couchcache](https://github.com/codingsince1985/couchcache) - A 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) - A home-grown disk-backed key-value store. +* [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. * [geocache](https://github.com/melihmucuk/geocache) - An in-memory cache that is suitable for geolocation based applications. From 7c6ebfa2d1408f1533ffe72c7098d4cd54b0145f Mon Sep 17 00:00:00 2001 From: smallnest Date: Mon, 3 Oct 2016 22:42:55 +0800 Subject: [PATCH 0597/3440] add rpcx --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7c2184101cc..738ac861acc 100644 --- a/README.md +++ b/README.md @@ -354,6 +354,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [NATS](https://github.com/nats-io/gnatsd) - A 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. +* [rpcx](https://github.com/smallnest/rpcx) - A distributed pluggable RPC service framework like alibaba Dubbo. * [sleuth](https://github.com/ursiform/sleuth) - A library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq)). * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. From 7b4371c85d10813e039a3e22b6bc24ccdece58c8 Mon Sep 17 00:00:00 2001 From: smallnest Date: Mon, 3 Oct 2016 22:59:12 +0800 Subject: [PATCH 0598/3440] add go-web-framework-benchmark --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 738ac861acc..60ab6f98bef 100644 --- a/README.md +++ b/README.md @@ -1302,6 +1302,7 @@ Where to discover new Go libraries. * [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - A few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. * [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. * [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. +* [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. * [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. * [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. * [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. From 588fc9e8d3286d666e398bfd96010816775ff5cb Mon Sep 17 00:00:00 2001 From: zpatrick Date: Mon, 3 Oct 2016 20:26:30 +0000 Subject: [PATCH 0599/3440] add fireball --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 03adfa8538b..49532cb0533 100644 --- a/README.md +++ b/README.md @@ -1097,6 +1097,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [chi](https://github.com/pressly/chi) - Small, fast and expressive HTTP router built on net/context. * [CleverGo](https://github.com/headwindfly/clevergo) - CleverGo is a simple, easy to use and high performance web framework for Go. * [Echo](https://github.com/labstack/echo) - A fast and unfancy micro web framework for Go. +* [Fireball](https://github.com/zpatrick/fireball) - A more "natural" feeling web framework. * [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework * [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. From 026b1652124c090642e95339d4b894ec2f735580 Mon Sep 17 00:00:00 2001 From: Vadim Shakun Date: Thu, 6 Oct 2016 14:04:47 +0400 Subject: [PATCH 0600/3440] Update README.md append description of RapidMQ - mq managing library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 03adfa8538b..cf1a0ab24df 100644 --- a/README.md +++ b/README.md @@ -591,6 +591,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [NATS Go Client](https://github.com/nats-io/nats) - A lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library. * [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs * [pubsub](https://github.com/tuxychandru/pubsub) - A 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 * [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. * [Uniqush-Push](https://github.com/uniqush/uniqush-push) - A redis backed unified push service for server-side notifications to mobile devices. * [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). From 6b272fffbe5e9408a578dd30eda05ec99d31c42c Mon Sep 17 00:00:00 2001 From: Christian Rocha Date: Fri, 7 Oct 2016 07:24:20 -0400 Subject: [PATCH 0601/3440] fix typo: MP# -> MP3 (#1120) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 03adfa8538b..954ae70d222 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings 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) - A native Go MP# decoder. +* [mp3](https://github.com/tcolgate/mp3) - A native Go MP3 decoder. * [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. From 92ac8a0e47512809bc0c63425bf2fadab086f7a3 Mon Sep 17 00:00:00 2001 From: crufter Date: Sat, 8 Oct 2016 15:13:40 +0100 Subject: [PATCH 0602/3440] Add crufter/borg --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 954ae70d222..3ef0e8c7bb3 100644 --- a/README.md +++ b/README.md @@ -1254,6 +1254,7 @@ Software written in Go. * [winrm-cli](https://github.com/masterzen/winrm-cli) - A cli tool to remotely execute commands on Windows machines ### Other Software +* [borg](https://github.com/crufter/borg) - A terminal based search engine for bash snippets * [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine * [Cherry](https://github.com/rafael-santiago/cherry) - A 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. From d2f4030c3b5bc26a63d1f1b3e7db622f9b622f7d Mon Sep 17 00:00:00 2001 From: Tory Adams Date: Mon, 10 Oct 2016 16:33:59 -0700 Subject: [PATCH 0603/3440] Goworker (#1112) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e20a979a03..c896b41b89f 100644 --- a/README.md +++ b/README.md @@ -461,7 +461,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Goroutines *Tools for managing and working with Goroutines* - +* [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) - a limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. * [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. From 3b9639d50e02969465f063561dbe996ecc6ac561 Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Mon, 10 Oct 2016 21:21:46 -0300 Subject: [PATCH 0604/3440] Markdown to html, generate page to awesome-go.com (#1127) * initial version html generate After being made to change the master generate html based on markdown, ref #363 * change package name, repo to main * up port 80 on caddy server * install mux on travis build * generate sitemap * added robots.txt * set metatags on html page * update repo via exec get the most current readme * remove unnecessary lowdash assign * fix linter errors, remove unnecessary conversion, add binary to .gitignore * fix fonts, use domain-level assets --- .gitignore | 2 + .travis.yml | 2 +- Dockerfile | 8 + docker-compose.yml | 15 + repo.go | 42 +- repo_test.go | 2 +- tmpl/assets/awesome-go.css | 43 + tmpl/assets/fonts/firasans.css | 140 ++ tmpl/assets/fonts/firasans.ttf | Bin 0 -> 57640 bytes tmpl/assets/fonts/firasans.woff | Bin 0 -> 26168 bytes tmpl/assets/fonts/firasans.woff2 | Bin 0 -> 20516 bytes tmpl/assets/fonts/firasansbold.ttf | Bin 0 -> 67080 bytes tmpl/assets/fonts/firasansbold.woff | Bin 0 -> 28712 bytes tmpl/assets/fonts/firasansbold.woff2 | Bin 0 -> 22592 bytes tmpl/assets/fonts/firasansbolditalic.ttf | Bin 0 -> 71852 bytes tmpl/assets/fonts/firasansbolditalic.woff | Bin 0 -> 31564 bytes tmpl/assets/fonts/firasansbolditalic.woff2 | Bin 0 -> 24892 bytes tmpl/assets/fonts/firasansbook.ttf | Bin 0 -> 57564 bytes tmpl/assets/fonts/firasansbook.woff | Bin 0 -> 26592 bytes tmpl/assets/fonts/firasansbook.woff2 | Bin 0 -> 20864 bytes tmpl/assets/fonts/firasansbookitalic.ttf | Bin 0 -> 62364 bytes tmpl/assets/fonts/firasansbookitalic.woff | Bin 0 -> 28692 bytes tmpl/assets/fonts/firasansbookitalic.woff2 | Bin 0 -> 22644 bytes tmpl/assets/fonts/firasansextralight.ttf | Bin 0 -> 56564 bytes tmpl/assets/fonts/firasansextralight.woff | Bin 0 -> 25708 bytes tmpl/assets/fonts/firasansextralight.woff2 | Bin 0 -> 20084 bytes .../assets/fonts/firasansextralightitalic.ttf | Bin 0 -> 60864 bytes .../fonts/firasansextralightitalic.woff | Bin 0 -> 28036 bytes .../fonts/firasansextralightitalic.woff2 | Bin 0 -> 21968 bytes tmpl/assets/fonts/firasansitalic.ttf | Bin 0 -> 61996 bytes tmpl/assets/fonts/firasansitalic.woff | Bin 0 -> 28312 bytes tmpl/assets/fonts/firasansitalic.woff2 | Bin 0 -> 22268 bytes tmpl/assets/fonts/firasanslight.ttf | Bin 0 -> 56048 bytes tmpl/assets/fonts/firasanslight.woff | Bin 0 -> 25720 bytes tmpl/assets/fonts/firasanslight.woff2 | Bin 0 -> 20128 bytes tmpl/assets/fonts/firasanslightitalic.ttf | Bin 0 -> 60688 bytes tmpl/assets/fonts/firasanslightitalic.woff | Bin 0 -> 27900 bytes tmpl/assets/fonts/firasanslightitalic.woff2 | Bin 0 -> 21884 bytes tmpl/assets/fonts/firasansmedium.ttf | Bin 0 -> 57332 bytes tmpl/assets/fonts/firasansmedium.woff | Bin 0 -> 26212 bytes tmpl/assets/fonts/firasansmedium.woff2 | Bin 0 -> 20604 bytes tmpl/assets/fonts/firasansmediumitalic.ttf | Bin 0 -> 61796 bytes tmpl/assets/fonts/firasansmediumitalic.woff | Bin 0 -> 28548 bytes tmpl/assets/fonts/firasansmediumitalic.woff2 | Bin 0 -> 22528 bytes tmpl/assets/fonts/firasanssemibold.ttf | Bin 0 -> 67644 bytes tmpl/assets/fonts/firasanssemibold.woff | Bin 0 -> 28728 bytes tmpl/assets/fonts/firasanssemibold.woff2 | Bin 0 -> 22472 bytes tmpl/assets/fonts/firasanssemibolditalic.ttf | Bin 0 -> 72096 bytes tmpl/assets/fonts/firasanssemibolditalic.woff | Bin 0 -> 31568 bytes .../assets/fonts/firasanssemibolditalic.woff2 | Bin 0 -> 24876 bytes tmpl/assets/jquery-custom.min.js | 5 + tmpl/assets/logo.png | Bin 0 -> 4491 bytes tmpl/assets/marked.js | 1286 +++++++++++++++++ tmpl/assets/normalize.css | 425 ++++++ tmpl/robots.txt | 1 + tmpl/sitemap.xml | 12 + tmpl/tmpl.html | 34 + 57 files changed, 2014 insertions(+), 3 deletions(-) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 tmpl/assets/awesome-go.css create mode 100644 tmpl/assets/fonts/firasans.css create mode 100644 tmpl/assets/fonts/firasans.ttf create mode 100644 tmpl/assets/fonts/firasans.woff create mode 100644 tmpl/assets/fonts/firasans.woff2 create mode 100644 tmpl/assets/fonts/firasansbold.ttf create mode 100644 tmpl/assets/fonts/firasansbold.woff create mode 100644 tmpl/assets/fonts/firasansbold.woff2 create mode 100644 tmpl/assets/fonts/firasansbolditalic.ttf create mode 100644 tmpl/assets/fonts/firasansbolditalic.woff create mode 100644 tmpl/assets/fonts/firasansbolditalic.woff2 create mode 100644 tmpl/assets/fonts/firasansbook.ttf create mode 100644 tmpl/assets/fonts/firasansbook.woff create mode 100644 tmpl/assets/fonts/firasansbook.woff2 create mode 100644 tmpl/assets/fonts/firasansbookitalic.ttf create mode 100644 tmpl/assets/fonts/firasansbookitalic.woff create mode 100644 tmpl/assets/fonts/firasansbookitalic.woff2 create mode 100644 tmpl/assets/fonts/firasansextralight.ttf create mode 100644 tmpl/assets/fonts/firasansextralight.woff create mode 100644 tmpl/assets/fonts/firasansextralight.woff2 create mode 100644 tmpl/assets/fonts/firasansextralightitalic.ttf create mode 100644 tmpl/assets/fonts/firasansextralightitalic.woff create mode 100644 tmpl/assets/fonts/firasansextralightitalic.woff2 create mode 100644 tmpl/assets/fonts/firasansitalic.ttf create mode 100644 tmpl/assets/fonts/firasansitalic.woff create mode 100644 tmpl/assets/fonts/firasansitalic.woff2 create mode 100644 tmpl/assets/fonts/firasanslight.ttf create mode 100644 tmpl/assets/fonts/firasanslight.woff create mode 100644 tmpl/assets/fonts/firasanslight.woff2 create mode 100644 tmpl/assets/fonts/firasanslightitalic.ttf create mode 100644 tmpl/assets/fonts/firasanslightitalic.woff create mode 100644 tmpl/assets/fonts/firasanslightitalic.woff2 create mode 100644 tmpl/assets/fonts/firasansmedium.ttf create mode 100644 tmpl/assets/fonts/firasansmedium.woff create mode 100644 tmpl/assets/fonts/firasansmedium.woff2 create mode 100644 tmpl/assets/fonts/firasansmediumitalic.ttf create mode 100644 tmpl/assets/fonts/firasansmediumitalic.woff create mode 100644 tmpl/assets/fonts/firasansmediumitalic.woff2 create mode 100644 tmpl/assets/fonts/firasanssemibold.ttf create mode 100644 tmpl/assets/fonts/firasanssemibold.woff create mode 100644 tmpl/assets/fonts/firasanssemibold.woff2 create mode 100644 tmpl/assets/fonts/firasanssemibolditalic.ttf create mode 100644 tmpl/assets/fonts/firasanssemibolditalic.woff create mode 100644 tmpl/assets/fonts/firasanssemibolditalic.woff2 create mode 100644 tmpl/assets/jquery-custom.min.js create mode 100644 tmpl/assets/logo.png create mode 100644 tmpl/assets/marked.js create mode 100644 tmpl/assets/normalize.css create mode 100644 tmpl/robots.txt create mode 100644 tmpl/sitemap.xml create mode 100644 tmpl/tmpl.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000000..83b7210a216 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +tmpl/index.html +awesome-go diff --git a/.travis.yml b/.travis.yml index 6812fc17641..684c823c20c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,4 +8,4 @@ sudo: false install: - go get github.com/russross/blackfriday - go get github.com/PuerkitoBio/goquery - + - go get github.com/gorilla/mux diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000000..f58bfdeb1fc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM golang:alpine + +RUN apk add --update -t build-deps curl go git libc-dev gcc libgcc +RUN go get github.com/russross/blackfriday github.com/gorilla/mux + +WORKDIR /srv + +CMD ["go", "run", "repo.go"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000000..b42a8ac0d36 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +version: "2" + +services: + caddy: + image: abiosoft/caddy + volumes: + - ./tmpl:/srv + ports: + - 80:2015 + webhook: + build: ./ + volumes: + - ./:/srv + ports: + - 9000:9000 \ No newline at end of file diff --git a/repo.go b/repo.go index e0281bfd25d..194d402238a 100644 --- a/repo.go +++ b/repo.go @@ -1 +1,41 @@ -package repo +package main + +import ( + "io/ioutil" + "net/http" + "os" + "os/exec" + "text/template" + + "github.com/gorilla/mux" + "github.com/russross/blackfriday" +) + +type content struct { + Body string +} + +func generateHTML() { + // Update repo + exec.Command("git", "checkout", "-f").Output() + exec.Command("git", "pull").Output() + + input, _ := ioutil.ReadFile("./README.md") + body := string(blackfriday.MarkdownCommon(input)) + c := &content{Body: body} + + t := template.Must(template.ParseFiles("tmpl/tmpl.html")) + f, _ := os.Create("tmpl/index.html") + t.Execute(f, c) +} + +func hookHandler(w http.ResponseWriter, r *http.Request) { + go generateHTML() + w.Write([]byte("Done!\n")) +} + +func main() { + r := mux.NewRouter() + r.HandleFunc("/hook", hookHandler) + http.ListenAndServe(":9000", r) +} diff --git a/repo_test.go b/repo_test.go index d6e72627d35..5aeaa44ea42 100644 --- a/repo_test.go +++ b/repo_test.go @@ -1,4 +1,4 @@ -package repo +package main import ( "bytes" diff --git a/tmpl/assets/awesome-go.css b/tmpl/assets/awesome-go.css new file mode 100644 index 00000000000..5dd55395cd9 --- /dev/null +++ b/tmpl/assets/awesome-go.css @@ -0,0 +1,43 @@ +* { + max-width: 100%; + box-sizing: border-box; + font-family: "Fira Sans"; + text-decoration: none; + font-weight: 300; +} +.awesome-logo { + max-width: 500px; + width: 100%; + margin: auto; + display: block; +} + +a { + color: #669; +} +a:visited, h1, h2, h3, h4 { + color: #494368; + font-weight: 400; +} +h1 > a:nth-child(1) { + margin-left: 10px; +} +h1 > a img { + padding-right: 5px; +} + +#content { + width: 100%; + padding: 40px 80px; +} + +@media (max-width: 720px) { + #content { + padding: 20px 40px; + } +} +@media (max-width: 420px) { + #content * { + word-wrap: break-word; + } +} \ No newline at end of file diff --git a/tmpl/assets/fonts/firasans.css b/tmpl/assets/fonts/firasans.css new file mode 100644 index 00000000000..b52258d7dd3 --- /dev/null +++ b/tmpl/assets/fonts/firasans.css @@ -0,0 +1,140 @@ +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans ExtraLight'), + local('FiraSans-ExtraLight'), + url('/assets/fonts/firasansextralight.woff2') format('woff2'), + url('/assets/fonts/firasansextralight.woff') format('woff'), + url('/assets/fonts/firasansextralight.ttf') format('truetype'); + font-weight: 100; + font-style: normal; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans ExtraLight Italic'), + local('FiraSans-ExtraLightItalic'), + url('/assets/fonts/firasansextralightitalic.woff2') format('woff2'), + url('/assets/fonts/firasansextralightitalic.woff') format('woff'), + url('/assets/fonts/firasansextralightitalic.ttf') format('truetype'); + font-weight: 100; + font-style: italic; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans Light'), + local('FiraSans-Light'), + url('/assets/fonts/firasanslight.woff2') format('woff2'), + url('/assets/fonts/firasanslight.woff') format('woff'), + url('/assets/fonts/firasanslight.ttf') format('truetype'); + font-weight: 200; + font-style: normal; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans Light Italic'), + local('FiraSans-LightItalic'), + url('/assets/fonts/firasanslightitalic.woff2') format('woff2'), + url('/assets/fonts/firasanslightitalic.woff') format('woff'), + url('/assets/fonts/firasanslightitalic.ttf') format('truetype'); + font-weight: 200; + font-style: italic; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans Book'), + local('FiraSans-Book'), + url('/assets/fonts/firasansbook.woff2') format('woff2'), + url('/assets/fonts/firasansbook.woff') format('woff'), + url('/assets/fonts/firasansbook.ttf') format('truetype'); + font-weight: 300; + font-style: normal; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans Book Italic'), + local('FiraSans-BookItalic'), + url('/assets/fonts/firasansbookitalic.woff2') format('woff2'), + url('/assets/fonts/firasansbookitalic.woff') format('woff'), + url('/assets/fonts/firasansbookitalic.ttf') format('truetype'); + font-weight: 300; + font-style: italic; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans'), + local('FiraSans-Regular'), + url('/assets/fonts/firasans.woff2') format('woff2'), + url('/assets/fonts/firasans.woff') format('woff'), + url('/assets/fonts/firasans.ttf') format('truetype'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans Italic'), + local('FiraSans-Italic'), + url('/assets/fonts/firasansitalic.woff2') format('woff2'), + url('/assets/fonts/firasansitalic.woff') format('woff'), + url('/assets/fonts/firasansitalic.ttf') format('truetype'); + font-weight: 400; + font-style: italic; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans Medium'), + local('FiraSans-Medium'), + url('/assets/fonts/firasansmedium.woff2') format('woff2'), + url('/assets/fonts/firasansmedium.woff') format('woff'), + url('/assets/fonts/firasansmedium.ttf') format('truetype'); + font-weight: 500; + font-style: normal; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans Medium Italic'), + local('FiraSans-MediumItalic'), + url('/assets/fonts/firasansmediumitalic.woff2') format('woff2'), + url('/assets/fonts/firasansmediumitalic.woff') format('woff'), + url('/assets/fonts/firasansmediumitalic.ttf') format('truetype'); + font-weight: 500; + font-style: italic; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans SemiBold'), + local('FiraSans-SemiBold'), + url('/assets/fonts/firasanssemibold.woff2') format('woff2'), + url('/assets/fonts/firasanssemibold.woff') format('woff'), + url('/assets/fonts/firasanssemibold.ttf') format('truetype'); + font-weight: 600; + font-style: normal; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans SemiBold Italic'), + local('FiraSans-SemiBoldItalic'), + url('/assets/fonts/firasanssemibolditalic.woff2') format('woff2'), + url('/assets/fonts/firasanssemibolditalic.woff') format('woff'), + url('/assets/fonts/firasanssemibolditalic.ttf') format('truetype'); + font-weight: 600; + font-style: italic; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans Bold'), + local('FiraSans-Bold'), + url('/assets/fonts/firasansbold.woff2') format('woff2'), + url('/assets/fonts/firasansbold.woff') format('woff'), + url('/assets/fonts/firasansbold.ttf') format('truetype'); + font-weight: 700; + font-style: normal; +} +@font-face { + font-family: 'Fira Sans'; + src: local('Fira Sans Bold Italic'), + local('FiraSans-BoldItalic'), + url('/assets/fonts/firasansbolditalic.woff2') format('woff2'), + url('/assets/fonts/firasansbolditalic.woff') format('woff'), + url('/assets/fonts/firasansbolditalic.ttf') format('truetype'); + font-weight: 700; + font-style: italic; +} diff --git a/tmpl/assets/fonts/firasans.ttf b/tmpl/assets/fonts/firasans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5ea949d23c094dabf64c26616527d8600a852bb9 GIT binary patch literal 57640 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansbold.ttf b/tmpl/assets/fonts/firasansbold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bcf62411d2b33293b94c42db3e7f5fade82c888b GIT binary patch literal 67080 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

?3*EFqCLrbnS}acFATDSL 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ΠAgg`n|<1!43D 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 C2!ql9 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansbold.woff b/tmpl/assets/fonts/firasansbold.woff new file mode 100644 index 0000000000000000000000000000000000000000..dae100fbe0f070e71f6bf3e1690b48ceeadf3e13 GIT binary patch literal 28712 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%0AECOMEFoisXtb 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 MfYwbI?SX*)3(8+I4*&oF literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansbold.woff2 b/tmpl/assets/fonts/firasansbold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..05c5da2f5074ae36071a53a72b583eed2c6d5591 GIT binary patch literal 22592 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansbolditalic.ttf b/tmpl/assets/fonts/firasansbolditalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fab739eb10273196ee50295f7c96a9be88fd5b91 GIT binary patch literal 71852 zcmc${2Yj2?bvAzQeK83R3<4lHKnw!lULXl^gF}myL~2kJB~cPdEy~)s^h@H;X@*-jqe(3A|D5~27^Fm5a^2tGi9`|a z1#s`V=brhTa~Wrh+3=T+Sr_*&T%;@2`xtxulX$gu@$k^<8y7r&7k+;ozrMJ5^+@l1 zd#}ElareWFaqH0Py2ka_96!X^*M5)jTc-9*?2m{qu4nA)Yw-N>siTK|8!N>_jQ!KI zG=BU39ecVz?*CiHUd4FJ|J^ZhXg}U(#pmNWGws-Y&Gzf^+%IEnF=Jo&{?2U^TeH^u zr=77c$ML*nCtff;&F;nbeH*`*?c8(t*i^CgK|DW(1+3e>Z))P^>5(eNzJ$*dwR*?(}`{-ysl z@dw6!_)i%BkDy6zB3s;~D`W~YvLLHtIq|HDGOJ0i6HHfM#r+PyUhzAWMwc;{=W#Zmpuqm3rTWy$4P&DDBKdr_gm zkewq$o6G7D!j+q6S9pFR+mPGzm-YIm&i}ZtsVQcxbLCl9DP@&C*}`hE*%Rknwp>Sn zEeB*0Ow7E&g*b=#=CQ%SXKRMn#a&nmA7h+v8PwsKvVkeew6d%yUdXWRg0l&{tSDkM z`BW%FWAPll&SKW(>GNz>y~S1K2s)xzi8G&8)!fwb>~)n-JshZMFAvsquo?c+`8VnU zem?kY307F1XAn%U2rd|(uyC_^ z%V4fGM==^rW7%24WSWu-pAgH62A?gX@fc$=AIyB$yyJ<2VRbxxmK?`S#>vb#6XEF7 z<8|sl{LaOp3x?Bj>1|jqO_mlsHWv3XR_ZM&#(IhhJq2!%*a0eN|5-|^xG`!B8iO(U zCl-wb@h57Oe~k2yzaDMPTNF7RnTlK=j^*_?Ey!IIydgLlJROYXer2+0ihuI+(|6;) z>CaE!i2tU+`h4bhGn++N>0%)kjn|hH2}O7j~ZQWV>lQvIP+b6^;5g{xemBaELz_^*3wfQ z``E6{&i$_OfmOY|bqlKbL+v-OIAweI!Q54AdK;^}75N?4FW;AU|NC)Rln4P7w>aE$9{3eBw0HHwh7J8|7OptGc~N=C!pipZtNZZ+ zz1p{FQF-UWN}N4~HO;&sz9e2@UQnx^?TWi9%iP&nW~0HRh`b!^u^7nZT%(#>FKMI$ zjdl(~F7OT5>}fimg?J4QRT^=wjA~C64vIK@rJU8*mX`aF=jra>1H?{;K zm1F*j+ZNVTc8FI-`(o>wPIWD;+_HQ}eA%*X!@U!Y)e9?p9WDNC<-v-E1q1AyGr0yn1(Gk^G$O`l0xO@ipW4 zY^AufCMrK>51-jKeBG(x z9qyBz_uSom3g1%C4)I@$5VNqQgU=R04mzPN#33*S#5Lr^B+kg(=)-dT<# z!Ep}W;)nQAoQ(o3Vb1nzo9{RJTX~x;@d`hB979NtvU8Y&g~e1Z%9e^Mbv*1eBhE&X zuQECo77pRTEZmZwoGJ^pYnt-Ol#=AkHFFQ7Yy)Oxcmaf}ml8y<#KSl9ZHn!!Q-0-o zh~WrMbG3M$*_fZLQfHEJW+B%u|I9k;`#TSY&(2nQ^!r$wjDV>-hSk&n^sk|HBR5U zvZk#b^lJbSKLIUmU;{6MF(I4zfU2zNIAY$6O@Ke=oKSixZpGUfA0hIpT4!wR#e8{0 z{Xqv9ILcQ(u=L^P-`_6y*umSuFMq=D{{)TPY+XFd#TDj+yb}02)%sBswt@H&UkbJz zW16n^&}+~k3bdRM^84r^7t6=ud7S0jEm>w0b91*oDcf>|F=X_|x&%lA`!3SLOQ-fZ zyH9WBwm@Py_XF=~s0hS+N2kT}Q_CX#8?Ro@uQ~Xh)58_P@RHSgG0&gFHv0|c8D_`g zt`OI=GOp7bxT3Q`&RQ`yy*6hr3{OSqFf+ZLZ7`^F#~f4K=cm{7I;NjWjTCtQDAq=U zgp|>o1^p#Og$4Qcyc`zhVPkR~2BVilPl;e4rM;_oOjYCRx&jl^OINln^>!Xw_P)iN z8wQ#e)-|;HL#@r_!G(+acZ=u87RM%BhDBYWh;iU*A?QE5QnI3_oSw!`7)zxq#C zebcfrM@`SRu3J`YZdls6a41r{tC2q_qVIK0j0Kkrw3cmK*}b-F#KZX>$c-RYZUe88 z&2)7<*8!U6gPI<29j%>~Q<`QXZT?#Zja;WovssYrK+JV2H4@J`*NrBJ>4?$X#YMzw zs!?ROLbw$2LQ|62G~ohADB7r6hQ=19u?scnU!jC!Q;q z`49eIQsP8kBu@Z}kbDCRc2xC#E-qVMv^hxollkV4`S~vrpS_KjCw_0^9~Z6XU#=H9 zSAzt3pk^hg>3~&L$=1IdF3bYSNTLxT-DLkus%;sRjJtufE`41Q1HA-H=_!@3N0W~g z2Ey5VrOy1)N?&EZ*Xb=UGhiChu$Iy|M)tJihX@&xrJMw^B2Dc&F3I-vo<~maIq|^I zEk`zA{jbs5e#cPRu9mLydhci*pKjg0@zjptlO55uYpxz0*!k#!V3XI_xTx5d@O0OC zBMwXTy0QvvZ~e^AMGz}e~ex4Uz2w zjKNTQlX(8~KBq|BefhGe+Bni!JS3D$*O$#@tq%6uLBi``NmlS2%nHzylbp)K2;<5smiDNu(r zK~ycD=^uYk)A%OsCqG|H{&AqZJ@Mg`5dbUWXRvjCC1>wpTh2L2G=i&W5gvRyCogP2 zXn!ERA`+OTvz}qvWQxeyL;6coL{2u}k?qOxTxzmO+vy=W&FXec*HO4;-9m3$=7cqK z$`v6GgM(An^Mr^)w;Nu7#|6tchZ{q&5KknY~HuR z{7sxABMZb!=|F<`6A&zl7=eU^Q49-VIgCWr_lGS;{~P9y*%Di_`Q!MTzjQ6H({G5$t=VsnTuPyA~)zxR%h9Y1lyK74ZrH13=5g^E~&ZHZe7K_(Bv zD?Di&q#0%BY(}{>FT@=s#U%2IBPEdn7c1gLX@a<`-)&SJe@W1+C`xob%Ba@ z8C(&pVkV$`9cx;^`q(E`hIY8QS?RC{owNGvRF(ZqjknDAQrI zLC2>uhL6Qd+gds6?riOA>uad1u7q;%xbkze%|^C>FCcGO`if+Mgf%y@OF%s+hG?T^ zUF9m$M}#Y>*`|)hZVru+3(G~cfBGMb7i^8kmMATohE^80?On2AFl?;y)_HPny?Nx; zRV~hk@7}n@b722J{3^KW>X)->N&^m8Rm?74`PzdEj_h678Q#2UxOsYOcWvUIJDXRp zEkAIydCk6Eu^S%`?yLB>7Z=`n*Pj0Kf79~srd5;8-QeJvZ{n{S*fU0!#nzlNb1Yhu z{Z1GS;7c8h86ma|!jR{hNh5UPpmcy>(_n}WHjPfl5F6EzNt0tTnX*jK|76w_NVA4V z9YMrkj(jclG_U{Co{xCEhwr~%oI5|rvw3^s%P@<;$4o58JhI`H7PB?#PL_bt5s%bQ zkT0Od`53+lwzD*`<31c4h!q90S{p~x!OqDsItF{!9P|gv{Lnyf&?vN1#T`)}eukt` zSj83XCqH-FgCG0x#H-veI>S2J+ctH^+g8PQ4)DF6V_UBg=N?%!5^Sw$PqcKj4A5yM z?`0i$wSbMs^S~%9SHbDagOp1eA+D5QL;N9A7)upHastyPS*$&ju}P>Hn>EK`(6Itu zpsE;YTI33fxPWIUMA@bAJ8m2pi*_{)RpcLUU)44Bm%H7up_Ag3RqGn!+jllT);_uJ zzS}#F9vxdiQi^DM2(-HUU#3dJyidFjXCB1l_RH--(J(BZ85;Eglbd1Rid z;}o4v83A|D7)3|>o#BuNWqc9x7Ix5&;=9#ZIPfns z(-^-X_35AmeYc#&1X%|qB+d_k&*@xX7N8t?b4l;&W%_ail|5wgA{>B7ub;p9%fhc( zzZy9^!9OVCpFEQIt^C$7_y-#Xt7~^Wi}*(&drF%@(o4cOK--gvDp@EU=JV5Qm;zWx z^{1e6^m@rkG)Pcv&%v47>9E_Zx!GVRM6y&bDaB5RQ*|TG=~t3+h@ZW6^`-@j+eT}g z3tFSKu63}7>ki*>^DTvKYi|&*tXtFEv+H2zvfhG+4=0{kdgrb2YmcsPp|e2yc&FUQ zls5!dhuk1CAIWmmn5&pfMgcbon*0zBJ=`I(z92c0&X6iKa8`+SQ6);DEB^d9D$h=w z4ga4o{^k{lA0m$Rd!BtBp0@mM?!|X2EF&g{4bvpVg&wyS6N}>GKl{YQ6L>4UsV~p0 z<;`*h;TJ$!HH7#QrpdOz*nN@yF%90rr&^drkd#-n=$3;wuQJyU3`R?O8_laA(_ZM_ z(iyfM@ht5Z{o2`kO3u&B+RquW@T7c|X@f0;@B~$1<{*)Z=l}^?nN2`cdh8`THjv`d zG~Xgng-8DmR5<;~Pd?3+kAV=MOWes1@;;3c|AcSSvjyrIw@SHN6EW?T4@u>=*P(=*Zr(hv3+im&z@@OE`(GpXFior-*T*RZ|i;sG83qE$H#!%Am z=>1;~pZzYkJ@DRyo&V;ZhZ2Z)CQA9gsp}KBVIDcG<0Uh~-zh}}LK2q|^<^I<@YW=a8>i&8o#ZVRC1@~88!ssaw4fa zrO20A9Vl3YJ;5S6g&{%!)>EV5koXED{>vf1EdpWhAz@Dm00l-VNGFAT6+ii}CvM5F zUAU`fneXg(+sj*vb9S|hbCa9P2NpN^{vRJNtf?(rBdNGs5Eb)Tkga>spijAAB{=xR zE&DMuL1BhD6!oQ^BPWTlk<4k#ir2p!3P#EtQsU+tC_z)pHLD5}<{B|!TPfnfP1}zw zJy5rMRHf+9b+;#)BtiE|+VYPa`^QFo$93KP8eQ*8d_^TH(HHC_rQ8@On+=b09tIMQcw(LLnc<#1QChWbLXvvw@UMqi<56!N{7WN+=6U;wF`Dm5Kyf zPE+r?~(CQX^gN^m6-(UxmaSGu=aBRe>kdY2Iy(l=60GJRN zYxGF4Vc0_$Vq>=K33sS$odLv&vgyomp{gRsG&u zZ#}@jnP}YKp9!PRS zs*xz=8^5~k>Bg@=4H5RLXeKHy2Fb|I$!0w-XBh=zUP-Ra#kxeM+;q|ln97KJkdmA) zLj~D2$!!5SqlzlEKlB~T-+UwQvFuNL#QfM9VLJ~UasDfaEa4CM@CW#ytMI)!tn=k8 z1C)H~doNF1+hMuLd@MW%Nb8sqb;qI#zx{n5AAa!TZ}J;H+I!o_e#Va^?%=tJH~D_f z`+xC^#20AAShloAOsw@K11#B;!o4hV+HFKmjw7fN^l;e|p+`Tu=9!OkUE(bW#pe^> z;tg2eZ}2Tqtk2APRNjGVmF_+cKiDE|P#1t7VNQz)yf`~M_ma(SlWR0{3cgd2P6QHX zcug=7vhv-DH|-p>Of2O$p5UKB)@tVUnVa}QC8ot1U_L>1PRunz$%2xE!%j)dckM=_W+i#)MFSq9!Nf6lPAKVE_Z3RaMZ zi6SIPHUovHk;!<&y{HXg`=GEoK{Rm!%;trTYU zV#!%1BQ#V}bY|qIt{Q}#Psfulol|x>IV&!7mbyxFEG(Zx*i)PUK>-<2NyZ6~q@oxA zndMYp-@@xBdbvE>RI-BalC8BIW;-gkWsb#x)Xv2ZY`puh`)a)PL z*}7%md={9J6=Nk;;!i-y6tVSjB*X=y7&-otT8E45a<&0{I%gTu`y(L%6_B(A5Obj(gE^tPlnzie;V^m1z`m5+u6IUqA9$fIH#(-wxf0R)K$jtCw9g5@9Y7MOF`oi(AbJt#hr0Gx&1|42Zn%|GGOHbeh^aCaqx?#U@>I`B{o0; zNE=lZ8AX|o@qospS;|kII1G#ZaP5#u6AJly$WUm5C_yn6&$Zh;Zdx_F|DxK^$zW4aPJ2sxaj|&qeBrY3{oC7)?Cy_p zL*mo*%a(;ECchlPN{g`4Z0w7Zm9Q0Yi&+m@mW5>`T~#NJfixkoLYz@Biwd$Rzetp-{1(W~xsK4*{ z(D;tT^BYH6q8wN#V3q+uONh-YU4{NJ%JMeL?{o(C`w zii?VYY>N;odLUjvp0jkMClS)3$OkMkK9$OZxft@66l0j0{WM;jdVn{O-%sxofOkPu z0PRHXc7coBZNe*1;8eQX0bq$J5CD7yVId$Sqse>`p9+Tb`V+pZqPA=HL^?anO+$G@ zM$5tRRlQIIHz0nvH*x>5Ya$2T{R{bly$!=t)tgTOBh?IOC+D6SDByo6T$>wBd0p`f;+^!{Y$P;Zr2$p`v zlrGL6=sX|;J zk4>wmJ{|bmMM`3d=&d63DDsvslNqX&oqnd~ouJP(TkEKSya2Yv-aVg z&{;oRyC`-;>u(Th>RY!b@iMSUoFRJ03oxT>)*8<;fEIi}pW;i)EJ3KEvN8qWi)HXa zNP!|Jpemr4gBPsT7nDmn&`m2uZ>Nv2Y z`*8h=#bsONUyvMshQ6ti^DSo2sfW0bZSr?l-i`!n0Nq0BU6Gl5Q7l#R>LUL62d3x_%L?KNyGqj6}C`r z4$^TTM+z1s0YQ1l{5V_O8HVbu!>her2M3$0iyoQ2ZE<1RP%XP^YuD9#`*L5ki8tGq z9ZuV+koTZQNK&JSZI8nx7r=x-Yf9@HCV?6{Cd-eclB$`ma7PPVwjz6xx`d>sV038U zTY|Es_3Pl_?URpJ+6SvwkLA}bgpbfy7;kJ0lU_Z)$i{O$kpq(r6Pp%QryK++P5AR7 z0DX1G;ImeU4GZOsVeext$gKiQqyUA89m5L>9WffCX$jN@&=C?D`pl)OI8q|oYSpK4 z4}GMf;w4Fm%++YwK%pU?l*jWj>~ex$JLGY?wy>zC*jn3J5QMZ4g{wrs^nh{M;y((< zR14+mf%ATYe+N5JN*)6aD|5g`=5~B%(p^g{VtJ~hnM#tZDPQJ%#StJxeA@tGO}%8^i<9YMbM^Fv5fpYY+oAu4wj60V1UoQ=m9Hj0n6Z zWnBZ$q0rM*Tp?4x#B(t=p8;%d4+f1Cyal#bRW&H#fCbu3!27=j^tJ-8x3X{OeL5S{k>s zoN3V8+zrijXNI<{U%^i%9*vZ&<-?dIuoohTSza`Trp|?6OP3Qvi+yJN!)5nBDIAGy z{0vc`3NbW+&z>)aHkHmjTwx4t*(dW(ek$~^a>oO?$L{AhCywJwr}!iE2OR!wtSJZI zYe5Xnd|?bN<7+RT@~|Uvr^V1Hq7tDH8sB*RM|+Mw^Q|KvZQS%>syq48mw3^Cf8--r z=gb>30eBX)&L#0IGPH1@Q#nbBjgpv#}_dG*z_x2BoHh^Z}sE?y9CHbJ}a0Ry~0 zKqeXa+sMj7+mOFUwIU=zxER7xz07NauCdYa;zsiF;Nf|xPRbQEQl%8!iC815Mqn5m z%&jVean~AatTGqr3#+n^jAwg{u82JpGL_r~R)Un7T$x;`FNYRnmJ2FOF38}DI6?t~CuiH8 z$@MJgy>LBt_B#I~e+W60ZW+UCGQ*ZyQG{-eWYGj3e53qX~(gQUcip{5~p)lJ!t_Ted65rFu)*=Gji2Upjc2f0u?a z{54Ri*EjkD6?$Ei>w*<}eM3L}yK6SOL3yM;;Hz#3lvXEyCO(wHJ2cL$6<!b^-;88A^eAQC4j`AK?PIG8AyXc3m3TdX#u&>1H1t0pN`1SA& zS0{dV{u|;P-iMDNoj8UpTM0W7w^NYP1~~yf){`Bg(;QPmaUiUsCp9N+j~>{#csFVB zUYd|JY_-6i95@d_sdkQ_?%;ooprLf+63`n7=`awNNc3!9->UY>n~vY%Y8k$6#mN<8 zP4TWR&VRT5yFd_m^Vog2w;wsWzIEkj!}@iHv)#*vNoHJ0*06_kx?E51W!O>~SwqPP z>RkW#vW7U-7ve#{1B|sxg*8`%${H!NOX4e%cn~QY_>-D!C}itYmU0_~LCOZblnr`( zs!rEVxTNCQPjou{2qY|FhxCL=a?{DD3dqb8Z<_zag9oG6%yZJO2WI8M5y% zp}t4eJuQY$Y2w1j#8v}hrI@_YC~J0AkpY~Qj!|7lau7nL+(;#qa*&Y{_}KtS(0^f{ z*^HXjj1|y6QaP)JjzcPcYd0<6`0y`lzgl~C;%xA%!L!3n;aE}jwr2jB$qlt@m(}t` ziBF4jfBDP#FBVipoFmv(nF)Ug^LD}l&nMZe378_li6D^?tf9F}z+9UQZAi-dA&V#m zhIlsiM>m1N5MC&7zX<#iC1dumWelhpj@J2zW>XMN^S zBZ^wj4&P=MS^n=h7m|ej`D?xZSbEx0<{Jlx#9C8tf8j{pMl({^a zvh+wLGkBlqET3Z|fa8Tclg}lNH;JUgvGmKrMiq}I0$+0P(|vK`?9e|9pM46@HWg`b z*+}9H4h8z?vXR8*%R~~ZIGqKcKpu0aaivKirAF1sC{Q6d>M{3`h{9e?q=ebUgp|#% z3MmZ>MM5eH6DBF0{<`GoDPQl2m2XUN{*3?6-Ch0N+dKK+ZyK*#J5(pmolJBsZCj<; zoo|nHRyPYKin>=m>=KQ>1N_1oi`RI=vWha)V~t|cS@N-Z#YQ5LzZF` zx(bZohhA1N>mg3#7Mrb*)R)U-E|!JhDRD|76-cf~%*#uG;8&%qa-%=eSi0qor}i{g z-Cq^`{B!@^X|1g;A0G8AjfU?F*Y2!YDPB2XEUSC3Dr8B}@{_lQf?4}5?QI|8_Qdbb zE~FCLnO{KWW?@}r?0CE&2sboPBGjVM{5*(I0xl%;m}xw8vT77YD7YeJNkdO3PdFT0 z)R#^`FV3mnf@k6{E%Fq&>;TxaGG3;6CP<{gbC>BfHLwT0rxuN>3J}GxvFQUw{rXkQ zR~pP8zV`mXEiHqc{W_(kb!lKhW0#@?s}>LR?-8#|4t0-OO(RREuAW-e(Op+vf3&IE zA8uPqz7ctwN%X1(Vbs}hs5Tivk~?w{eLI(N?JWC-`#8rTtEq|oU(UAD>7(3tWHQljnZ~#rD>tr$vx7oBUo)vrWZw-AMc)#G$D+^*lqZfqaPdz~v(o2w_{* z-7C&~fcMEd51I1TkyZmiJq7u&ACj5LxjGG*$&AVJTQYRo=$whCwc7ctIg3zfcON*# z&W7VM;{Y~>C85s#9orBtX+xm%L5kru`{B@qwga*Bg?0lct5_U|Y_zh@7tBfAIDAj= zp5}XM=a8UEFlLA;$@e6AMkN*JiUHq)tirZt*t^1WcKD7A19yO*OPjQzqqlMx-Is^U zZj;em3R!9)L5FT4awW?x( zq_baCoE>^~`0Rwpm8e$ufa-~VI|R5?sxqW=c?fW@hi3J>69o8`RZB_Ht`JhCH&u`; z15z;1E?F%lH!M}&@(!z|E{Qt^*)%f*GV>C+W9$&8{ek0jG2F5AHoyZpY*9Q5p#dON zA$>I`BL^lQoJ+_EPCk1)pZw+hI6&p`V~I zFS-x)i+@4v(~AnytK(S#v=}M?6o}+1W&9$D@F}|OSSRB<;3=3m1cPBK%s?g`V73v{ zGP2>KcnBkPsvB{Mamb^)-F~0j>-NIfu-TkuI_NlERH&;q(xDzpULI1Yz?A2^9Y84e zyINMAUYY%H_D%PPSKhbP@`&Z;`x4)2>sVc$m+;-uUO!M#Wa9TVA;np%tXgfl_E6uk zUA?;H%T3q%5amlp5SBy(0&+KOGx`hp^ znhVe&g{`72TH7F!dB}xPold5xq*t*43ZInEQ-xBL;6ou2nQb;B&Sppfr>X9lB5p3< zr%RNp{@L)gi63h&+WD{IlWHI!NH*BmYN}vJRq_DEC%$)@Bq~? z;2o4JrGy^k?Bc|$5&#eIA<+cWp!_K9qs%xu#QKRx%Ldj=ZOJQptjrW{?60kb!#J3T zp5FJDzjnncIN<40CMqW-Wi%YVLqbDZLI# z$k!#UCej6khM5UZgBi9OH3ou z$3#uwr&*3R#3^EHXcbY#-|Et$XcK2ec;f6tqN-_0$F`=_WWizB>Wru#Dq_^iV$Ej6 z$%D*dx~(w9qzjk!FRA31_+5LRVtGvizZ~>qa%4GXPA*Bqw~{2BI7{@~)|D|OIUUpu z!0R!>mMvn3xwyJ7eYz6}d zh`NEpLz1PPixmhnuX_J;=f;bBPp@xm9qg>H7$6z^7yegXSa(&!niaK&RyT#IW6G7* zK=e`c<8tlm3u+)#bM1ep2BHk7tVH}btZo7`3?6MY>Ocn=n^OlcoPV8H} zrhc@cGEx=mBK?Fq2}Df@J?KV6Xv52e`Os6TU_u7$?20yruyfvGo7?WzfP~3~8C_ai zRN3ax2=Qw)7`5h)eC6=;?&-Uy4&7QYc)Y7&QQjweVgp;kb)u}VZM?4J+0DlfwjbWy zzI|DTZE5WnbB)#$mF0-G!*d1l>C0GymylZ}*qdUMW+^!!avHg%Xia&r4D18)6(XH& zLsO2{>R#{9_d7$C>w8E$(-|oRBAvQVZI(URM1*p` z+ObA>QlOh(x?)4cI!Zx?cBr$TA&QZSVT|V%7nKF5*;J?!_7ozRF|Qu^f+X?}>d)O$ zD;yHiNoj+YSonSZp~EYq#aR~n9oJ5ts^336*rYhS)(`mW+*y&}<^qEVh&y-bJT)yV zN7}pMH+|^n*1;RcV;xKDoQauGSEsL`@rgja%z<2Xr3bbIyO@f-ysBrA=&!3^x!T=PT_11j?Aj#CmUPuG$~AUJ2X^+ZtB8~?*d8vaFJDK!J}!wO z>>x#=q6jHgrP>G*MTjS`{-vHF6rnsvmw_Ub;VkKkTnUO$jVBc?1S-~T!f%A zf~ACdEMgoPR0@_-&K1)`+l`IMh^abpluyncf^e#=zS)RX%9utVH3Gdl6g?0$Is`X# z0_Y(<`m!o|MIxFxD=984aOT_ck`Y#!oXyA@BEmopSLPyDXGB?}7r-XPv1In}{H?Pg zl-MJxwh4j*-!{(Lkq#@qeXe#^oRyA{Oo{^+_vgw`MRDEE$5+<+&J3I>saYEA5oHH* z!j(%BZ~pw}!ttGbEp<2-zn}R};Q=Nvm-WZ9VEZ9j0`h9nl2oWwWfTgS%ol1c%nY?s zxI}bwKmXQ4t&`5GGRh*j#>iCw|tjQ<$r@F`|<6U>VAhs(8BtFE)cVG2)z(sz9uhn*@9J8>b z3>cUKaKhCND;@77#!BrbHF!dhPu%0h78Ku8jK9D4J>huu)$_k4ZFT8dg)25OX4NXF z^5)&FRZuxN1UjXA20(nsP<%%k7(vBB7XyN&qN`lSRuOu>=FYY=1N=(^XVBPw5_naj z$-7(+0UB!c5G31F0Ydc<9U1iyv&X~(*ci%IUwJ)5QpCS&^$=H9w=31uWk+^1>UQP4 zQ;}T_%MODZp3arj?Y_fGsy?-niUM=${!k?q%n6D=sg+b2BY*{YN0n6CX@DMraLuGPA4DxnI{uvxfl6`qt#qit27VPk1AAYQOd4;$&7eIY7<;)P?@AZSRWgp z0Xa0mlY9!=w96st9;xmnS&{H4)d)2i2NU!ma)eqUM-l2$RvN&>%YrgO%|TP?UPjbv zVg$mdC{_J|4mL^zwO78iwe{Ub-)L1lPDRmF$ys@(DXY>Gb61d39Bqg-)zvnS4)Plk zXZw$%L)%%@aq=+M89|JFG1eJm_q=2w)Jl@s04mb6RVHGyjzL`Epy1?gguF@e8$q~z znPVg)sRLDeTZRLI^a)@i^j?zBV2Hz_-l~qH$h;oOfiYCCF-!rRq^{g%0Z>zAr%Np! z0sF<}SLr7~fV%oF5TIHuWzDK+lmw_K1Od)SRs#vBV)X(N5Z4K2N6a7wD&)e#o{nd^ z;nxw2AsI73TtI`yYSDdl_tPGBfYd$0RroM_+5`IJA>XZ)k^~Dl?&zkZ((uw_gDAQ+GT{Bzb@DA zWLx4{`G8Ae(V4NHR2G3u@XT0fDc+t=Bj6dO&XPl9JC)qr9ArD3xlT-527A)mh3kl9 zo&!^+t(xwi!j!R3!x`Ho6xt=4sLUzw&%tk-l~X`fFO}zt%xVM`8I{CPNpmdCWtSN> zP;&~h3?>(_&>9V?}+Wzd%$clJ7_|S0j{;f$0p$DHu6A{7_B-pN|BVOe)Av!OJSr8@y&zQwkKrE-7*b zTmcOn0J~eu(?xhnH_Z!27-E(NNM?eDk(IV}WI1 zpuuCI672Q^JL1Ro|4=x-HF@3PhGk2GsKH(mM3QRe$6!Y@=#mEsvS0T5XKwWTK)(-| zO{#7vqHG9GB+f^&=SN@K=kb970R{)oE7j{m2$_K+??_K@F1O8!t2^=`Knm15SEw{s zMT5IZ_2PB{X>rTzZrXV)%)53?EICuye)V&YEi7!kYH@RYf7G2X%G~Gw>r*p*Uvur5~3n%L>MC0Hu-#xhVnDF_2->j+Mkvd$g+!QLpT)hxvLARGm9@QFt;7D zx(aZ81Xyw13jUTa7**SFR%05ph>%@rejp34e6lp-`|0Ydsqr0iy4AGHPBr3mvIOhV zWF6LDS9Q|VqCsJ|>kY}v<7#Phu5qz)iExCGZsBoXL7=u}Fi?x%#2ZcN4N z5u#t7WeMns;8(4wA|wD8dtsg(Ao#ta;`d~-NvB}LiJ4J}Chz64qp7`*Lw-u|zcGm? zNp(d@Rt*QK)4^GEN2x*Ij`FrHbDhEAYVNK)v!*kr)A&f%?SqzI%mkoRK=!c5E^CdHrPZIA4S4PkrT_1`c`^du+`RHViGQ0fEx?Jp zaZgJbvI5BJ!id2RQ1dDs7NpmuB`}mY>H{XQ4z(!{mV~+uy1c8GE*p{(7#0jF50fKx zC?ldA0S(e=U43a`bb|}bXk163#%(i7z%txpkb-~Ey zy~lL+GiYtKI@Hm&p=ELT=C0$ryq;5Mpi8c#svgrv?rC;z20Mr8!;-t8e`H2gy~<^n z^SfPDKf51~CK+dS+<|egpj`KBGrTlGw5E^It)iM3MMAikGybnybe!L7MC=h=DZD` zOr}%v3#9D?AI$A4E_6xsA58VIFAD%EkQJt*j7E}up@pN9#;?c;?%rLrU|a9zt4iEUB*R``3nBK{x4WdF=(68&v~o(Bj~;m6!bhZYj15p`V9p$@Ls z>LmQ6JYgm6CmTr*)P){JoCGJyu#`f{F?fn$5W5o?0YJtm4U~8#x>}DKB9Z3ID4v5b zHYfFGx}VquniI{C(mJ!ll-8M<{l(JClK28^3QBExnYDBo35mDQ&!lSU92yorX}^;8 z_-81^Wf#fQs0wjzvIg=)_K=Vnv;uUtw*h&fLjfIprdcHiMXAaHnA$RpCQWo9x@1Z5 ztf$F(4tfT%%Tl_6Y}tz{FIO$5o0}FxXU#MmmN#c)#Ganjfg+U*+cviq1=s|!3viMH zHzOg>58+3h^-^sQacwRfJcaFtmkQqkhRK+OPIgdTw>SBaUXns{LOx8Q{v~b_9~{ij zPva&D2Ah${6NLjeD~%ob)221HRM!)VwhZ++AA8JyZMye~koBR@0A)mYJgu&kVhYlo zAz___3=-T9Q&p=&VT#~%s6hqI@qt6HV)8VQQ5L{%1R6AE990T4QsI6Q^2T>3F>k}q zP(A2#-E)D1D16iEZ>ekAAH-RBcO~p0pdElHhKFhp=$J_rp&m8n!;A)Cy9jurw!Z1W z2_*#CEK%h}0~`#|<}cqdYgD}Kq66@4IL7LysW35{%UR@cmbgl6XqOX032z}G`;q~K z)ZtBe3sYiL1K0v%B*ivEAso+T2vPGQ%_HpV_#}dVFKzPA!h0$lN#eKhJ~j zQ^NMB!qx{hL@mMLuTdU>3YdDZQUvUhD~*>)cMV)7U{R@qF@PdJ$#F9B1Ed?dZiOCq zNkNIjZgtsQa7*F5Y0@YSA;F18|0_RKmeLsW1DC|_Id!|C;Ir?=-|o-8=RK9&$3J^( zB=IvrUFOTHp8ouOw??X;`P{KDSc~sZc)o7;e~@BAgh8S_F=3Frmsn5VJ6w;afbdAT z-_PsuqKgqwNoq5!q;yr?Y>L@qH56*VYN+)A8k}9tOM8zE?>cI)>D}2f>ir_WVMFmh z@RW1Ct8T;kg_VboW|^lFFPzG|DJTr z`Le#}gCB@Qp853nli_`S;dM8TCEkO;)ovcf@s>R?7NY-)1zJtE!T`8ipv)Ivuhk@J zB7kHVUZ0%{m4)&vP-)U&v&*akn&==Kg`OC(sHo?GWC5qwi3@yAt2LbO$7euC@n4C* zWv0~K+|;&8l23ju7N~tK^{$%td*jqo-NZ~V5%iQ|f>b1UW{m&JS@tC)V}I!sfBV3( z#5Uo00AC1RWJ0a=g+WACDgpQ?)WJB;6+!}Zi3}#8nf%cI)V~CJ-GG3>1ja(7s~yVH z{XsDSz_=SEj+^oh@|J2$0&MHN^liFl{eh{z{L?Kl z%Yv?+=8?m=2({mFOGn7R1!%X`{TpiSOKWUiM{XE^w-w#vb&e&q`DF!84_5U9MDwW< zHN=j_ZGO8jnnJmPtWlpsm^2g13$u?>J4R&^gv4ye(Jlw|4Fn69@rerDa%(zBzvC%P zvCQ$XvIrthT1whj0K}=qsetxpQOq9oV1(DD-N2tT42uA~5N-s%L~FvxF5v7}%wM27 zEK69aG(uLVUbI3rTh_4BUj7EFCZyRFuNq;Z> zWy#4BT_Y8?r;%w9trgz|6}#Yjk)>Ab8c%QQU$eZuE>i6E1siW#bn)WdTc-~Qr&_(c zc7I+~Jhr-Ud0xm{Q(@RRyOehl6#89aMk4hZ*vWW7B~l?3AP)76aOZ+fA_s&?RxSgp zpHo*D$Pq%+VhAsK@uSvC?`P;rwL4ElrR!Afb8(Y+hE z^yH!>p*jim;@h+!F!1h<_}1+`DRM-&_s_-fT?2R@f=b=d-bqVUmqv!#3Ue$I&qpvn z%!ewPs4mw9PdwL-KrU`5hBb$nmnIB~5M;*{18Gq}!k8>lDG9=m!FpNEBLzWv>|8NG zcgf*DD=j)h1Z19h;h{6XETi4WN?FC5Jmgxh51eY0@e(ZyFn8*r?P3SwxfG?t6)6Zr zBW9<~9sR!5>H<<0nA^BaD?oIs_H#M)_Muzwa8)FS8;~B1CZ#B`Pv^2_CfmhO@<#uq zGT9kkmU@8QB7y_FBm)iCEgi3R^~kDtxLoOSJwz*@%I?QO{X$4%n9)X9_hd^aU3oMv z!%0K)cyOa&NN|8PxiIiasS!!n$gKahLCtKZU{-Q#u0jZ|dn~Ncc#VLQJsc89$r^XAMovuRJgQd{b;j|5h&^GIUF;ag! zwFh|kVYLg(Ll1p$QLEe)tSN?FDP(^W&vju<=--YtIVDGBL%#>rN$$jixshggRj+N_^wKea-dij$%Kl?&~$|XFhIi$U+xTU;@(I=mCSN7(g+K4QfdZxAENSlG#P}Br`iV^sfI6)~cEcR2)638XkBjUZN!#q%)y1Gu* z`eoc+hgv^X3dIp)xbz$|u#4})95W(qA|Bao*zZk&KP8qy#eb@JnFwqFy5+K*ZHwol zQbTx=)389Jab&^)JkX>~A(THc?0zf>|KEa;p;Y=kRKV>^J%l-n^hbuW*R&cg@v06+ z2uTxyFEvM>$^MlbUk+wmiTTXr;@p(>s;kJo z_k_F*GkHBG=2!?FPWO$-l@()UC0DevzRO%$I9PS*mC@y}$(13R%#XJ&ToF$x=+>c8 zTtc!u^J^iz(3tCp` z0hI&n{+Ehe0_q1GLtwL#EOgjJo7Zu&1`HdJ;v`6=Ec;F4Ed9wrDZHg|1D(Q5xMdhG z;4{odF@@2{;*Y?>guw-^Jb@R?bYjhfD3c(d01K1_Y=i@{r9nXRA}(P?8Wp7nT6xdB z{p$%66ebOg=Jgl0ut!MuO(K0WNJ>32E`BFfI>>PG_Qbf8O2RGQ=1wZyN)td_#({4M zp2N*oO6EP59e{Ld_gKDYmvM_w9>=X(bZJ=7`=D>nGi47vX84}%7a}KdHNP!m&bg=+ zN0Wk7fJ<`U#(vERojo& z@y{o2;wKVu)fblco7vEl#%#@@PUaHCM?r{u^|)Q0%W@;>;7O<-(t_9d7?bb6R|Me1_u%^tL&!l0SdG#5V4J;{6K4D4oXjXaI7n>D; znG|rp^sJH&xS7DEnX^jukv8%V58+_6rg}*~M~6UbCjA!id=2KZ89a~sMu0P=u0yIC zE{1m_;29I(QySI;i^35|8rJw#cBRt{>-6A@8rJhbMAIz@pouq^@7Eug(}v(tsgE-n z5y<`s<(MKryY7%(zys+NL2&?dqAeE)Rl5S6=ziU0*V`-0rcdovDyJbz>>N?=)kLVdXla> zBGh0H^=b?{MFp(D>G0>vQ^cVasIny{dtg%+2(%nG(p8Am2%@|+r_172n?V>$BBkA> zVV~L$q9|+AN=`i?7R2;F{TFkQ+7}{;)-3?~&g`@U4W8zri_AQ=w)or5Jg!YV-w~KI zaYIns2s!a?>Opp<#Ocq8S_<=2KyOyLtufE%E}>-1_iWbj6*`IR?Kd6UpIai)z2un< zh)e1x(Aq{+J~#Um{4@^&9`rh0sB|-+L6{+^ z_do97E7Y!e3U&0XVRyyder{sE97HUOZHQPZv$K&t#$nAOy*s4_BLxL7XGblopj3^B zT<)iko`M*1#yb?nI6}#8Wj(}zQGuc>f;U%D9tnq%t*{+-HBm{pGr-JJT|f0H7ka*s zreGP_OWykS&G%C6LF+H03!k8SEFo^G;_)5RDKpObzeJ~Go7a@LoeuqK6}bFU8Fc#L z+gIbJQon01RhFx2G3uD(WRvLMfShAWi>a5T0iB7U2_KiW5NSg$0AG{tQd1v~&{MFr zj**}x@k!0!;#!G=tZ5vAa3Wxm5nQvNR zUiN&UyQJ!xJ>N|21&KKw+g(1EGphoEq~%k*aC2IH(OJK|d$c4T93D4JJG!)hawL=m zp?kDs^Q+6dM@yOcCS+=jlnD;R{jQDYpo1pV}ZPS-vY@-V2xpl*v41h7_P(M}y6vMewN% zE?)4p*weiJOM5=z@gC0TkN6l8Z|4VjHg8XSnX<96Yll3+K30W$4h@Ee+~XFlbGw)M*=^^1++<9i z+CUZ|jLm}LJ5$-v33{DLKWTyRMv4mbkX>AB@H>fn6HvAY2pyX99=+Z)g14IV>zUr9 z$1aCTOWhJ{TC;qf%mNXXP+O?47-UENaCQWkJm6;x#sf$q3KXK_Gq zfxShXG~(@!11q_;u|sZ3XYPRNw%}=&cWhJ@eHg`22P=Hf(gd3 zNjE{t-Y|xsgv=}}fMIL0p^6#s3>Sb%*KXE(AW9TLtv}^(LHKKz6*A3gx7srzi57y| zxZxY)k6-cy63%dVvn~IT_s^D}+Y*l&ezfT0e4EJeC$7%9Tg0C}^ogUi{YMht;0=jy zK_29whN2TOmkQRv+Su<0pLN0+C@P0=Vvztcc{SXmZ?)$r!sK?ql+goNNKcLPJVj!i zJ|GB%W)gbSl!ZbyxXCsPUUeVvhFH-Ca==M+sAg_$YAEQG8VPcx{yqC$xJU)OiLQe3 zGm}La^2;y~WCN5?`xXJo189F$C1(p-ni?w`sv5#&J}+)2M3V%)!YX)$%4O~r6a(is{jvhoJrXAb`ji7UosE>ihSP?Cs+OTe#u-YocA`7|6U$snkMlcJifJ$_FKLutG^TVIQgU6PXLfF_c1p z(@+FKJl9S|5Ebcx0BRxyKaqL^6+%$-p9bp)DH_|pS` zyacp&N}iihZ4hmL9Bqfo!#;0;J6|)Z=e8YoU!vO#Uy-414$rCDNZ&D>Zj+W?G#_2C_?^thjREN+fDI#jm>NMq}Z#H=Q`? zzD!;l~+NZ{b+UC0E%JL9|lDnp$1{HqVt-WLcs0Bt8RnFy&sp=zxtTZ>9OoED9jXBTFX zp&*ZL7UcUZLjkr`vU&?fGMNb&LUuxOq%;&tYir1ItZAxksw}62oM|LnqB6^H39k7< z28}W*v)-JKnJ!Y9H7|QHMT;h=cZDrr_rW z7C*T-1`|wGvst$xTM9v#7wPj{lQ|gAAu@I5^t%i&F-EmF7^DbPt^WlrjrDak6%p9~ z?FH?bTq>QQ`Rsp^iEnca!*AxH>ou2iJHtgdb^hxbaN?;B?q`}@Y-NwfT?;_j7*`1! zhF-aRy28eJ7wFp3)KFJjE$P}?(0ciFC5V^=iUlv;(CyqjR6RI3ogfG<)|p zaN=C=GTYo^W|RN(1|euh?8aAAYD zyZ7!re_&SY6Re3GkJ~gkQO2fU3KR*Q%*9i>(v$S?4Uh_iT%%~0rmITlJk#k^aGR_> zHqhmEMWmciDTk=XY)zgliob}vKYO2e-8?MVJa_LdxYqKmsku9;R$CNmC%2qEehwwn z(w8ULfj3K-rGloV61EN7i8}L*$@Qvii73$pqd*TDs^5t1m&LlF%t6ekgOx)OL)>5k zuT33j)KeS35+YD}Boy?OqMP4^#?HkhBA^v>Hhezu=llQK`||iWjym6}o*vz|maxGAB0TT=tE!$$BRR=t-}~qFOm|gR{i=RP{pvn? zkq#`*p9?>Y*9cwiNl_Y6!&=!5lJzCVgs_e`p{W-gIa+p1sIFGl3ZACg*1FcR^{Z-D z*Tj}x%Z>?QB~bE@Z){#dVXnDpZpDV}H*bIU+)D4j&Hnm8b#eNX_maxIB&GjHPjnnR zzNh`}+d7V2x3~Scd+WZzn!9?hIqdx~`V->ZJEcR_bXwK2(m?_L_M}r=Bc;>is`1u( zA)V^g)rrz6Os*g3G%Rs+-mjMs&Q%lF@${H!E4{^;eU&Z6nS8Ojym9@6 zYwzAb{qd_huQ|A7w&{}I3LHg&2aPvVN%{YGGnKyS-C6%PcQe`J@^uyF^jg@5rS8_p zbZIe_nVy!K9?BAfzOnO+|!HYJk)yH)3VmrZ0?O$8e30`tPn_cc_i{y3}jUPyv zMZWMX+RI94*+OX4VD|Ut#0jk_p~VcySg8S+q-KQ?Qmb!jvh-Ok{w{Z z96b+fg=lSzKE-uBr1HfzkexBGH289Xeg_VE!6v>2G2vc;GSsu$6ID3zUF~HQj_Q|1 zpF;S0a$P&K;uu)ST6Nx?q7QExs5gIGU zdMB(fwyBS@S{~#Ezl4vn7U7sArswPVG%*|3jfnpi>kHJ-o{RgW5_KYm7JpSq?S9v& z7m>%tx-zgAO$VisF<~^rRevY>w)a?HwF5|OiN{=#AU03W1Fe~uEQ#$K#O-!}fT+D9 zZkIcH1n*k3zul(3c`L`XDsZY)h6A&myswn&O0vaiSO`P&gV=h2ElD^qAw5OI4j%gA zwGrz_&hXwXydz(|UMnX>S5>U4pb@KB4O^yb5HEYKFQHUliBFG39fMyjP92*%n?Q~_ zIcUtDN+|FfIe=^2WrJV%f3EL1T0!#j#9_ zkmDzUR^ zmh-}&9m`HjOIwk)f+mx68g#_DN_O0Z)_E?ew3?USdg79!Jm-#WH#`-eOrLq8>>J*v zs=jglhl`R&rjCnFKL@QvL~9`i>_H&cEP6GyHLHM5rln&#v3_pZ<7z={Q5rs-i6bts zmpDRe?BNjavq;?=C*C@X(k~{FY6E)Hdm??OcRh*E_(W!l4XV7bzyNbQm?MXJq}sV6aTg@{!(bkHo z5o~C9qFie^zg2wBP1D|kwcZQiJ)FLxQpUD-LnxzQF08@5P1RpY2HqCNlEg+q%=Y3EJM0cm1F9iy}~Q_he2 z`lbsf(z^R2Urjlxj!yg7o=rLT-j{Ppd-S_0*12h@sc9t2=2v;g!K!ik!h2*}yNa?w zrph=v%ShKV#E z^RT9(x&kXQF?+JUcvUnLEi*4?olb;JbIoN~pNV%&vet8cWAeOozAyQA$)am^)P&sm z2S@k0_go^DK4UGH_%awIgMPKuIwZ+7u^*{3pc;942AYTI;tVMHl8P5~22^#HmKhn- zvIHS>TsBQ3VTqR6M2~ z?40q4v&rx5%3X=#{N3U# z#z2r?Gv(es<{T@=JryUYfzhJezdTfl5?h>ZQe~@0Ii1TUq(a~e zusE#%YgyP;bPOUiLDNDwy-Mb?xHAVMeqGC)IViqg6rOl;%Jngx( zpQLZiux0dSJe2W=%oO^SAlRJ?6p4@Nb z{%2le-elfGc|XWIpP!rGoIjj@ZT@ZfXA61@9xN;@ysGd=MLUZ=QS|zX-76kk@zTnj zE5E#|Xw`kI7FLg}K2=;)e6aZL;_sHEm-LmqujIv&v!xxSH4uf2Wk zud&|p`gJd@Z(M)t`rjBe#-#COe6A~4c4yi5%Dc+HSpJ`m-HwktUa6?4*kAE%#o5XY zl^?A9N@cj}#;T{Q{#+fbzPb9__~6!T&9k*e?a8|Ix~aM!)^Do6&za`j=X|cAwPDVc z?izG`#P$8gg2t;F?{9K6-O%*9yUl&tz2LdQ^FNwB%}=%zw%pnB3vZwI`x{y}Jm0#x z^^vyBw!>{-XwPil+y4Bd&7a>=yyc@^ zSzQlwmvz6p`xRfG?>YZk{}KP!0|kM12mW`^6MQQ8?>%`vm-al=^XuNG-nrhNU9{t( z&t3G!)@@s-`)qw5>HAH;umAe~pKm+7?d-+3U3~VEFK@5h{_sHNz=0jM9rx_qyz|Vi z4-d8s-Zpq{_vG&IrMF+U=CWHZ`_0h%hs%e*v}bV7V|&@&>-YZt@{2Bi;EJ_Z+<(O@ zS9V}Q+`->E9XIec=*K)$Y*J_!A|07$ib+BBG z>dRL_#UH}2AWS*`3oFCDg1^i%+J82@SgDRv;yWq3(T##S)(n;dNt6lUBtZF%J5mf zG5jmwzZ2#wS|#&>-f!_fwpZ(9#afW9;V-cg#J65s1w4DgrnUuNTyDd+1XtqD58tb` z!YpG|wk_Zb?%HOyM(Yp%N!tYX6S#j6{w+VwR%sr{LATPNi7_i*3G8f-U1#(x95 z$?9yqFt_4{{A_o_+!_9XkXI+GKpK~T=LN)7Ofu8Lknu0Wza{>~T@D$!!>?)gg#QRV zk@AA9NM*(OJaHz~>KvzZPK~;U5cJ0q78L z^B=>H_|9l@#mNY6w%3*AI|!?bmUziAs_*+Oqf-m~Cg70a~DNE{a3qyv-|mPz@A zbk^eEGAVCBzN8C6R*9xX6ZBNbhjfC{r4M=J#;{4Ur}9WIIgb;<>`#On-WakEurXQE zpo|e0pln)`_GPgEc}^P&|AF;uFj00~i9CQ0Xwuim;4}GcZaM+d~ zu4T{ZCHysmv4_Z0E7YEZVTiyOHKeW+YFCD{+!#BJH;SbKrhM1g!{Qw$AK;hGZql># z?fT{VK7CX_rhi0#K>vjPxc;pEb^Y7=PxL>9!+_3ahR*dIeTROfzF(iw@6hkjAJ!k! zpVCk1-_pOMp9zP<=fXc<*uM~37+Ki2aK*y*1@A)hf_tHUp?0BiVeLZcLUEKE#JKcD zXRI;yBL$ETllq`^6JG}In{dm{;Q72m4oG?#B&S z_EnguBlKgie+}jxxIY5>H(=g_`vKUWhxst>Pr&|Nn2+Ip9QK!BK85>P*na}^6z;FX z{tKAcUa5Z@cGN@qcW}d>p{CN$;QkZrZVpJq8b`puMGdxp%GQnO}w zU}{cd%rH+4n0nQo zlQlfU9~=#uDZ!yK(^fgWbMH`@qpWmp$S?;6;M6r-YM5 z@^2!@Qv*W=sF@2HX2!tK2wV*E%OKkZvTYbC9l>XCN=;rrJnS&pz|i>caD!=c8bQO< zD?^~n?jIO3?GB%r;_!iwVUv$En7Y#ex{R@T`+lE6K16Y;q=24g>PT?ZwAGct({Icf zb3icPWUmC1JBCIEN<%w`haAIY!-mgcr2MK=gJz@ms93e^INo69JNtJG_3x67rDbq06z&Di zd6w(nJv5)2>od_Ff>n!3}N}^kiLYruFQd8mL1wa z{uBgRfqaL-NiXQ{g=>6LEs=o8_k|9K*l)7UCpqUL-xNAg9%#YAAv4$EGlFI&lrO^p zh4UFBK>uVOPK?W8KHuEPd_hXRd91#)9AYX0Z-w;@<_hOLCvzp_Oy(-*yp7D&&Uu~8 zV&}Y_%o68(3Yn$O`BXC3IOo&ITsm1N@O$2L8w_2Y+Nbz#o|v;E&8o@JD79_#?9# z{E=A${>XGXjZTq$8k`Vo-iYBx+K!MegkYLZ(p8t!Y^XOIkP91;0eYdSNwc9N)aIZP zaajncVT0KeNm{9SAe4y@DGBM1{p!72(>ksUZ-nSXM?%nLZDFKQGmB1N!ZFt!)5eR#)l}k z&dv2YdQs2}p@u-giqc>M$H*t}x1oeuiOhw+05Q}3_2Y9chhcQiA+GkQx8ag;m^$JF zlwpogS<$s)=yA=k8KsYFRko60AC;eJD2jm(7#%&xxk%0UY=|<0*URcc^N)-g7y=98OM(Q1P(iDsaDeRXP$<+336vnl z5CT^UBJf0AMI~eu7c^oc$-n@1JI;5ITy;V;9m3g6L*ZZ;J&s;NMyb^)L`DoKiL${V zm(hvZl_*w@h%74dluEp9g;%5^mkG64xkel+Wk6$txk*vrw~}UrYWhSLt)$$H^1ww> z>p`L3IqaHu@giivEfHs=X4JVW;w+%8pm8wWPP47v@`;Po=QP{v=b%HREOW?~ix4AO zT&4^7{X$%%fR=Pgxg5w9E@To(V*rH)%KwO_TKryE6?>B@#@o?8k{gvTosPEBvY7NP z8&)(1Nf?$;dx-xsl01>9_=vFF3zk>N%!!r)@?oLNY(ZYUXbJbND06vHq3H!opVMrG z(N9tfLas&+szggp+nl71WWPk6_3$ zLNH_r5sVL({RBgnQGy}M7{QQb+-Yu%i1`4$n495zP}sJ>c1Y+GoV)Nc;WRrU&{xrm zfIcj21U)Hi1bVg8?2Ld;(Tf0`7B&JsB5VYDjnmu|0iB^20eV!}2y|B12=tiq@pLTL zPz^6%y_q&{+A0Q)TUAa2Y6CRvpWBI64!<2mvuw&AnP;iKE*vR#_%gp6bE|dYJ?|#; zq^?ZsOKVH5v#--r)0Fcq+Hvhr%3w;j-EFJDp&)S1@pY%KKegu6s#680a=J23rJh18 z>F`(q57rg;6CO4en6Ka`cA!;zVrZV;s_5;Rw3~6xL)VE>H0^9?+R>*h^KRB>^^vq~ zX&Y0Wc0*6is(YG;-*4(4LbVfk+&-4V0s*k~wyy`+130bl2*!&<|5)n@zbg94G49fZ ze3aiq=-JM)S?br)&~dnoLTKN_C`JX=Nr*Qi zdWZKaJH9l@KBnv`7#;t2WlzQU0V(i&$Bfm$v z=U|NLpJ^08hXS&P`LC57CuM4L%8mwxcE7UQSf_SU*>#Nb{8riR?31?D%AUfiY+qLP zRCdUAM%mNYpx&qK>1><+pt5H&r*7fRim_+2Svy8W1Z_F2#Xc99I5;soal`nSF&3H) z8KcujuAiAWcxcvm)bKR9Jq>uEi8Xj=+_-r9hKb3^kkK=JYznXw(^E!hYRniMpBz6h zJvA{JGIqJTT|E;su!N?L`lctxjIFbw$%)Zsm%C|02aTw7kT>}@khk=WgfL=)Tsl5; zlrYGk1G|i-CTTr1Jv%x*b*dxtSQdmwad zcKXo7)T~i+t=rY&a@Q`4dE%%MGG=E&W8+tcW)2(E2jV#PPtP2go)Ij&{GpkdX@Fa9 z<3{iPoko=r92=iHdSqh!@c7Ktp{XgOyLT~UGN?ndvqv^IHePq#b*@nvwQF?x>TMIF zhz^MYQIF3Uvk?FGBjZz$JvdUHPUBi7B)7|LOwSmTq1o{n72na(nTaE_M_orJCSB7r z2OGEdY-0gT${oZ#i~9yPj=W*u4&gln+bBkIjSA#u@+k=sGH=Yg3)`IW# z8ElXpLJS7G7@=-Jh)Mh?mL9wxV^b>L3A|0gH6&ap)HvYA*#Y4`0h|tKGw830^IB=jzU?I`HALdS+(jKhe)87vm^ zQqVaA8Y~`Su?~P{0~9pH(Q*jX&I&nBv1{S)2Axf~F}4Z%t_EF)5huYMfGhE`A2Ox& z#dNnJE)Q!5qyY$m2|<#xfIkGtDcB6mfm|zMZ9xb(_SRe6ymg)@z!{|r;Ubxjfij|S z1~eMLc>vF)(%29G8R!Z>fG_vc&&n0v)N;SPtgNALOXcRONbuy<&ttOoynMv*6 zj@SrB>b*>(_>h!Wt_4i2CXrsa;ZE{1M82675b^XK1%AqlM}X}pLXaj-!lY0KLH~B7 z{x+tecKsvnC!sq@E{uRvEr~gNl=)a`fO&R0%O)Ko)0r#_W4t*m7i&}VafUOU5w!y6 zAg#j4dNC`(%A7UW^S_R*2aRQ{oH;O}U5Rw7h8EW1bn1GP0}Y_35!y}VLo;emFY;t7 zG`Srz?qHp46Fwck1#P8nfyodMli}+UF$NTvZf6eFk2lxm1hxqOM!~70@ zC%=n-gnyLZ&F|qK%3iKdn&w=zA-Y*uEAGQG;&pv+cfwkfk+ncd3t zDbugapfY=;>26Y{!s}Le-3qT;;dLv#ZiUya@VXUVx5DdIc-;!GTj6yF6dr}&t?+vk zeviWMQTROyzenNsDEuCU-=pw*6n>Aw?@{mRA zEBwt0f3w2htnfE0{LKn~v%=r3@HZ>`%?f|B!r!d$wa&=4GK@IddJ~`LjPM8-d2UTUCF0i(b=xx+ZBAfqN`oe)voAjS9G;2 zy4n?8?TW5;C68_uf47RiTgBh4;_p`ByH)sZ6~5aFulVa${P|RTJ{6x&#phG;`4qiA zMXyiM>r?dl6h5EA=U4IhReXLGpWpIV^!OG2fPxPw_<({BDEt8>-++>DK+zLW^aK<= z0Yy(h(GyVk0t#P1@gGq92NeFG!WUHdf(lP&{!2Ty7?+Tw5&zG5|KS81N*X)0bw#EivI~)0(3%?QmG2Y(5eFpQ`zr;AiIs6EM z-d`2A7x08DQTqSt3g7k4U=F_;ACJYAWybm@bBp?iUzT=~jpZ6PA>A|9TdbXYmbhqb z!UeDJFP8_2P$Q^9+Qm?jEM%1CWWI01tw^k~$bG9Jg?_0tq0?uq%c4)F7d^=(s)ge1 z1q(`sf))!c#q*8u8&*vJJ!U-Sw~iw*ym*HUVbUq}%Uw0`o{^M~mEP$Dn20tktA}q& z6IIMbF{y=cf_^K!Wm-f?-N--)X)8i+CLYEPP>`Uw!tY|sKzKJy}-)7%qFSA#$uJO-259MYl`m|%{Ur`)3 z#Bw$4$MDNQT(_a@p2N?MI6na258-D+-1nkaMq{%YaC{o&@MHL;0oP|yetr%=9XKBc zZG=|`=C2~uDg1O$@J+ZskDncsd>iq655F`}^fJokSMW;%Wj_NAf5tBbeWg6O)5kE< z(c`NSf@+}e_n@bjiDxDHbd~hwA%x37uaJqJosNE8F8Y5CywgRanyI)gjgV#wd5MeO zr5n{+*usIDgg!aK(2q3mEXQ3d?pk5OimOQ)cuGHp9wuFdkSV?~ivA^C>p&qx&(*@f z(Ce&LE~LRk7hP4jbLiWb;vxtuL=8e0fj(N3nkU>THmYrD%@a{nD=^mrE9r;48etG! z@>v4A4fgfIWtDiY#&cx^M$#VTiB7|lRM$cx7!y}l4&tFti&<9|`rmX>ADisO3YOsV z1U`wAxU*bR(F>=01#Y5`!jhR7H@RCk)#*i$s&!M`+6t=m!Nlrv!1oCNqcA>?m`LBCmm)6WgD4VdB;q29 zM0mVC0?20oNwi^IBSI2>((9L{ZV9R051+F_I|VO<*`g(Z3MIjK*XUdFP|`oqPwGiD ztYu4tTZ$G7{v9}+zXthKV03)wf2r^Z!i2BJ~BHoeS7f4Gh zSTeX}saPkp&5C_M#k0qX59XM>Be6)SlWXiXCTc9IwL}~VbaV>$PK>d}UREs~>lSNA zzIzkb;#g?BS?215zRjD6Z81nZ&5Qk)bFt*P9L(GEBZ>aEUkRxgkB=m*%1&sn)w`g! z2ChgRK}!y?s2Kn%Ri%IAnIsP@7%Fwou^v%gikbu(SWG1$YHs)l47tb|FRHk#m?TXi z$4DqZ%D4cb%2DdwQy*T|2B+bUIPs)9G?Bsxsqc`*qLYOe5@TEvcO(pjuzGc|p{2Yd zQjhgo!X66?Nzf>VN<$SFY9ZhfImn_*n&hus&@(|;kvbBMh=b&OF4A&LQ9iPzL1C#* zrMM%KMl3QtC8*GzsIPKNFvx##FE{~c(Q9n1v33Hq_>T<~DfMC?Pn$RespV$jfKuK#jbAaII&gPF0&l}Jg%BheD=BP9B~WA97TLgPSD zU$m7dB}kvnQ0XLells{)Fv8s=(lF9T<0#L_a!k0$R6>88;-t2j2pgl}$yow4^`q2< z7%6-yUS-aunk-T)!LDjHlsD8i6|q~IhHx^BD#t{W2unN(yY-N9#FY$|*E?!Tz4$NG zf<$-pj^`rwE!HkWSbW6$#QQ~H-cnypgpy+~Rs_qKvG|o;rcQi{AO?}UrNmTx(Xc|3 zsJA22o1}6ku_Qzw3N2C<b zJn&)kTSg^o%B7>VXox__I1;ooDhq;((S54Xi90ea&Q$HJa)XtVC>-$|Q%@^-qR%BS z^rNgeP5@H4hwrz1<4uB$rz+mxk|m{@1^1R^v0P4FqU^MAS=1!HOLxnaOv|o(P?wYL z2>v2ztt3U|qpItz_}{cCc!|R$N=k`I#DexX{8c>yOcCq~N9;Ih60}s;iCmP#PdHg+ z=L@7U5@=a?fFSMSdjhi05SLFNkt~W&QfyI;H~Pi#AlqM7ZX>-wxC~GuS~bbYmh?$# z1w4BF>J4EKUX4m54Xb!e=C{0?#IQV!^i71sJNN-*FAz^+TqZG}$P!BB3B}7zlq*Fz zjCqKdF``8LSu_YgnIEa$NOFrwYvC)x!!=IgR(Q))_*A?WtV&}^nN^EgL1J2W7Cd>$ z)iC_}{?qqwFvE-Oa*0o85!8Q~B&u zv~~)Z>6@21Vl>?n=UX###X2$v#-V8pyI73*uR$x!fXxA!I>hQR8flNNMvKQ#1nK8N z+O#^2#>i7KhMfl+txcnHWHs7MaU*##nQ7GC= zohD+)QZp2V;H+GMIRK}Dr|4BC=v@OC>n17+1RgpyOTy~FC+AftWFhR9OCETpuRhav z4bzbx>EJ_BN)RLq3P(4&$KD#KvTiGGY35-*f@Y5Lpy?fmmmzmF;aM-Fw+515gRr$& z`A4h%sC;NadQ~BQ13!6@)MzF}riNwGOp2TxA$Pi0A|G{wz71GQxCOb1p{8@-Nphxn zpl0!_#4H6vE_LBaGgWT5%9}I{yE33f*+PHFzeH%Z7q)ysJ?(C%UNgD0;wHN2qP9X? zBqdYCtc|2MAF!2e}cfgzFMH z#mX%dQo1xEAJMJjCi*BWnbEjY@t!K&$&YRy=xqg6)-7X_G*lulIhmHek#bV{Y(@@X z5hHqFCTcD88evEK6SX+~POE+-*~$L}FnX);_z3d0oCsyJkw z744O(u>_SL&?ibFw*;vODw4UyGqu#471A=7f`dDFO5oiBj+SH=pX38ON#X+OBPF5I zmNZ3{9Ka+(C#0-`!(4j=w@Q7aLnIGbei3sKcS`=UH=TUuaj`%Da#b3ZTKo^267po9|_+?x(GYfs4B!_*;DxBmyk<>WT zRAOag*_W1BR3D@9L~Pbr17Spt2M1J7ic*s5O2LO*zpw;Nf?g_Nl3mc)Xo(BE&@zi+ z(RPiNFIM=mW$Cq`l9|a{7a8a+Ca*=~3(7&8+yR_h@Z)Gvb|F4Lenp^YA6kI>@yk|y z29k@MpOg}+z`KtAgO2_~DR5>2y9PIW2NGd2&?>ds<0K(!_pc!fE@@J4jQR=ko!mU= zeN=&}TC_kN;DdUJbYDlpjiSB; z@{}&r_aM6HqO^4i8$DPxX%7g4lYw9{7uD+B&qP(zobNm7n;<=~r( zwzVBkNwr(R5nlwE4tL2Dg|>@+fuwphBtpF$8LLxZ!K-+;3(m;C25}HPr6yext`au7 z>596fq2ENeI87SiC@j$#jhkr974GCG{oRm4S>%@SN?J)@X|#oM;k&S&aj7-y>%^MA za%S(|6Es+zf9IgVJpJ8!47PEw8+ISo%p2HOX02+MCgK&V+%;vQuPNSjVZs&Mr%X;9 z46!O&ch8*S=@HL1@!Tw)0YGvgH4fg%ju`Ny7>IUyqIV4WTEBAPjxiPC{+#f?ScM|D X65MGBj~*ti-e&{65YLMRT;KlzlTp0l literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansbolditalic.woff b/tmpl/assets/fonts/firasansbolditalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..48ca8dccde9bf110283ed8277e3a1e1ad1e54a21 GIT binary patch literal 31564 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 R3yJO@1_#L#;1$xCuVd{lRoIVm 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 AiU0rr literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansbook.woff b/tmpl/assets/fonts/firasansbook.woff new file mode 100644 index 0000000000000000000000000000000000000000..239780f979b52ef5aac382f1c76e3876361c2211 GIT binary patch literal 26592 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansbook.woff2 b/tmpl/assets/fonts/firasansbook.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2d880f927544c481bec4410c8c02d27d9d3390c2 GIT binary patch literal 20864 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansbookitalic.woff2 b/tmpl/assets/fonts/firasansbookitalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b4ddd45fbbc0bb3a0f9b5d8873309ead63393ca9 GIT binary patch literal 22644 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�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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansextralight.ttf b/tmpl/assets/fonts/firasansextralight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..92fa7ddbe6072798fcb6759d23bc7776d28938bb GIT binary patch literal 56564 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 YQ3pmqmcs^{OC1n95?7HRxo$ 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 z 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 WL%WTc>|wF}!{9*cX3S1NK>rJDX&F=i literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansextralightitalic.woff2 b/tmpl/assets/fonts/firasansextralightitalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c7340a406bc4bbea091c9ad4c13976626a620d97 GIT binary patch literal 21968 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%0A})N`bj zSqU#u2JSfl$wsy`X#~1DX}`Xi*P~b}lB8Oc)x@LDwBnJ{P?r^WI_q&?*9GH~#Vxz1 z+xbOeI{Ky6qZjv&zvSRJ$f7MjOhy zO7pF{>o7Kbc6PXZbbr9-D|hwh4;4~!;%0=Fdr9bA zFDt{-Ez`3yaO{9j0=B6xZC%R}^lMzzB9)+y)>B)SNY!rq2GnCy%%vr{IZlV!o8qO$ zr8Qc1_1V#!4=DklPS4t6J|C$3+cg}to&>=Vu~5ZPVP*!iwbRn$8>7rSW$aTSWBhb3of`+pZ)J|y5M3f z{}0X3!0deRVDKYV(R;MgV^>}2X?Wz(YtL?Jk=>r@tzB&s%UAtL4!Z8gQam^v!j95Y z05EqA2{V@Kuwg{RJAr}ZxF*zlypjhqns5J3B zZJri;5I_j$|Z~n!ZaZ+ zrfHHNfn+A;78@4?<}wAws$(dX8w@d=TXmJ9+e0-~_0{!drNu=a_ge5}+8WChO0r@C ze5q*r4e6hkWX(R6r0j3m>|7F-Er#40+x(zF1v;r8C818YN48eL%GH(!WVnZ`VW$b} zMz(t`391^a8_P=9Z(o?Vq%E(rAghs>!U>IRDzc-T zn|N8aWHgoJNm`>kmVSR;Zh&T5 zQ5nb>$HYa^7meZCn(E5Z5&(Q#vRjfFh5X#jy+IUzu-f9xN&Ld9oU^ z8~y>RoV#cH;Y~<#-e#@b8}P@*z1^{yadYrUY?NEG7?j)^K&TWFEUd~5Gt7r3Of=xB zP$$T(InY|}5unDTd2yLWz^V*uC&gv=^!)u7Ylg(BUER`ixSWG6Jwm|OSTO^&K-76@ z2})UvT$^|^H?k>fUPX3Sgr8~~_f!O^8|5JwVh}1V*MQ~P#d6p7yM2dNT(Z7F`#n89 z%X?RKypiWl+1InGEEN%|%a4@(jMnCLB<-mdxvv<=?MdLv-vw^z*CSA7IBH$-#4gV|33qNk(BSXd8s;Lw*JA z8Z+u%ToLaEZ@@O`UD_F(5(37lNFKFv1WJkvJq3BL)w>q09Ge&tl)iuvOnM+*=x>{B z+_dhr*7N)_TXS|A1vjXkT>$yjfkbTmSqWXY%)J5V+mi?RT?fgxjaJhk&JJ%yGMNf{D7C-6m=KF;*Tfg6$s?u;Uyzzd| zq2gCh3ye2By|&4A4{h>DmGuYu{5hVn^8aH(@ld;e875S_N>cpj=L)l3k;zqog&u*0 z-nft|l17S~khUta2$ZOKqfk}2I$RbksSH%Yz4mAOlZD6fhNFuOkhv{M4)&_>VpGKK z2Jyw_5ME?T1co;*LDkS1pu;L}X&oK9hLY(Js)?zO`nsCNP-8`TX?3uAy-*Py-l$Nm zKIb~IwrgU9|4CAZFMwz9WD7xW7F8EcP#EOk_WbW_WJ*j z_jSqYxuP=M#RKa`i>e(b!e6w}vtg7K7~!*`Z7TWhq9_C`!{$p^)kktKEn#?d0|}hJ z8`kxX$SMt#Si6XIMIwc$zw<%N9qdB_QFFq85+{Y)^k@d7P6BjHJFJujvWl{bD6URE zVsZgD6Z+Lu`tv4-`r$Q%Tju~ixsHrXRy%i;=(vc`Rmv{%;K}x_+X09v{MdhT8>=Y& z^-Z>Mb`|m0bL8*V9R)Z_;m6P7J2YJrqAml~K|CKpN0=ua?}rZxzDOEui-GwLgM-E+ zYRKxK9TiY^JPUr+qW}(`XjppoZ20hd*HHGh+p|9$xHJ3y=pQzts6mdXYr!)*)~qEp zMPkZBmq1QYtK4KUtH{MKP#4p+nm*3hTE4LnT?9Tv)zyA_wvG$s9+4IlzB{t3Xu(Di zORwEyHlR{~TzB#T`?LH-J~-}}jGoM^Yx7{qN*SHwtB^E*+C&deuNnEeUiD5dubly_ zJpbfHRqF=SNduxPmxxqi`%xp7c-$2z5nK7kV~`|Z&eNOlY{t5&CF}WinI*70;KX*I zu<$?x-~!QeN+l>2d?nMw3sHE2(!%cn3#3L6>Nx}0O`rm)1?2aG0-q$F&V%-k;y@kifqeQ&*V-Kr!JI{-1?xh@Rpu4A=3MWl&E{kyCAFL&HCMBw~{m z5Q!4@T^(@94_6EvKzm!uaAJlb+C1X(4NpZHjo06pG8j&pVwl{V4KE5Di9)iXH49Pm zs-}rR(2|l_LZ$)is9`3f#5@M$eQ2?|eyitbV$Ad@`$ z7CRM_MO0q(0l8X5^RMagj;2a(G|%0UiH z3lOojD-zuNorvL@)wjnY@uENp#o`rZB~^hcCAC|SpR?+rS?5aaCYoui$CNV2j_N?|5Itf{`qmEPxQGCenKM z;KApZ5*W87(yPi-q(MK_^0Z4Eys9A8@TfSSkB~8~*oTK9OXk6u$XC`p z^LWq1Xt%GjbqMG_hie{uT;5tR)(hztd+}p0CG3hwR#72pi$+v)QL4j)RD2pl z@r$dQ@>1n-8Yj3Y@+$FRJ;yQ#V5)T3`fSv=oNoEj@kra`lx&XR zF}7`uQn7u5XFq3}malODO}u)(fV$WJ&!1#WnwA0geg|-(^iN`itd^a^ckeO(RQ!ek zLKOS&E$kz_ieDoYO1DTKk-jPYRW6se%a_Qv$)A$HrtxZqHSf|Iv<=!jbyi)Q?tXo` zepG*}{yzQx>VIiyH+;*eF%B7TH9lpGnu<*)O?R6fF@4XpV$L;hHD7A}g88+S{*-G{ zzLWA=Y9MtW^}^H-q<$s!_i34F{w)yS+4tH%f#*8)XS^ljYZw&OOfmz(bEb zS%a6Zw^X05zPtLF8dg(Rb7RfRp@Gmt zwK=tOwfEHiwr)q=ZFS$Q*VQ-I-&z0Ha7p+b;ZKLZ*O1oG)o^LU#~Xgt7-)Q7W=^H?Ckt%*I3t$ zUBB!e=>B3)ThGJ2`rhf@XZx1=Ug+Q3|Dpb03=9t3Kk$da#=-Xv>4ri>R}Q^4eEV>8 z%aB3-IkU=LV5p^_~@IvzC!Kp^fhaxESjPn*W`fPFm^!sC%pqe z68z&M_<)(95B6&mjNig`1FXR$^U8``%f_TX0`dKAwwt%H0B>9Q9ewWk-iLb7e6~2P6H?s+;m~~(uJEY8&XQcwxA!%0rjA>{9Qn814 z>&oAxOg1D*E8oSnXQf6~BXwba&#+o)3u~0jtdwGcM)mK&K~}MGCVJ(M)<~&xn&?Qhk!ut>iNEpU-s5aQ-im94K-=%IW*)`I4_2bG5r6B!_32()SO?vk z{|NjV{;@U(5GpiSLptA#y&^dwE+W(*8t^~M><4kuy zjZP#XKwyw$JmMh?($hmv2S`A$^bQdNHUeZ@@`3e`1So)ng|Hnb>-FX`QDU#xNt|pF zZ=B27IM)cAtV1dloMLl&o!W9z@gCWvNVZbtawV0jgxbW~ef#}?|2^-}lK`(%JENKY zr~B{!>c7wFc>=92J&S)>2bye0=t8z+eaMca3x(GqykE5hHbFL`M|zPhp%2-!;4q%y zZ(RO1gb$J*kZl9d&kqLxZv$VHx6e~>H2jRqnS7JV8)3ov)Q<`V)H?PXvcWr0Zi`gC z4SgC`Zt?*t3mZ~>A-!`$lr7np{ENzCPH1IUpv~wMS0P|CD1H z?sV>UhMiN+2b?FJPdjIwZ#ds}UT}Wy{4tdRc7<{s?NmB@odeE6 zXVQ7hdBSe=HaR;qd-v>JvwLPcX4_^XvrV%bW*cU& zovoc+mDUCn=RaUU9RDr|OAuDbMS8io9>hf}ThPlP>|unkw6h2B1j4@bd^C!-b!PQvZnX30zMC{yxH|aD5u^KO@9vNzPfoKSB64 zT;BlvbA;z{eH-w9BK#q)7XYIla(;vh>FO1P7ja=XyL!!2A=gv43?v3!ch_^Oa_=s$ zX#ed4UVE*#esJiJJAKQ57idU+9Y1ZLhKGX(YwPPhHR!2WFn$Ksiw#AaJstAgp+n7H zAmom?-uXVyS$F%H^|~yU7*2RaiGg~rpkZ*|9Ru~j`r7FM*X!#;RQF)5>va;;IXLLf z80_STw;oaQkHKgV77s>~Uf|#%PY**1uduP%D-O9N>Y~{2bB;O)6bRcrG)O2zaTc{Cbf$Qb ziY20r^}g*(L)m3fW~k^Uh!BI`LvCU^n51%Hd#PHospr;0NGl~uCzy;I7K`S|?yW^G zWcF3d%v4S;6pWr(R91k(t_{`?Hr6+L6``3xAmNQ9MgeE&6{|>}v7u7rkhOLTC>H ziT(j^aWLv8yhU)nvLGBT>JEYZSF7;rG?gkEogSK5TGZs7YN}lWGgU*kWlhcA^3aT? za0Tp4;WeR|0t#1#W*iDvg=PvVtO?B&QCJ(ADWMHQskYs^So;V0f>5}Ps-*ZGN)CUJF0c@<5sL%-{w-)hL^LO%-Yp&x~7pdW=n z=ttpN=tp4#^rLVc^rP^4=ttpt=tp5F-S;Hi15VKCVlq!w{O47g#l*WwqgUg2$QoGH}H69Z_-r~o6GmYJK}8ge^W z-ZtRr#N5^ZjZ9wgC|<327OlEc@$JFRnO40V8nr`z2%I;|5GqBov)Stig|FGx>}|Rn zDjawi=$la_YDI$^c6U(4hbeEIp577Mfre%PJp>w7v<90r{#_>cccO(_fy#wHM)68x zO{3G{pzCg%2Cc4ivKuxuJO?y^<$6QZR&?(jI2&*a+}g8&bp-r4Zk{AWLaQF^O?K7>!J!v=Az&_` zmxl=ip@!B$;{e+i!lBSFslaT^qQPn>XcDJE-C5a^x#L^}&YQWQtNb);!Q&4lAYbYos0~wpW zH;Du>TQoz|)90#ai*h^KgD_dG7mfP1!SGC2SEB;n;76l0)6w02G-KPWSvWl*ud~Uf zWD$*qysoBc_z*eEG^*ts#weDs7Y6?rn~NOKT9=$Fh*}XwB{4F_(P*Ik_dV6>dwEyf zk#J_UEN-EiPlcLL*$O$E|~SE&>6Hd0B#1L3D^@l zqdBGz0LSbloCK2g5e@p5>5=j?Sw6Bnc-9;2_};FibcEj1Ue1qakmLZ{|bv;B80rVTNu1 zbcFp0(cO3$3wc|8?6=SZV;^ORu#YiBsK-OzHXn7I9vF3kAwoUD5TV`^^4{d5PSOLT zo@9tnrx+sCQ=zk^c(*PCuV|B3GU^qq?YrN0Irz6i3IqG^?ZYTXKZ>T=4CPPY|6519 zOO-l$TP&iARUN z=j+a2bAIXh%I>oB#pgk#6bZ|bpt`e8PAE|EnYH@#UW{r_56sZhI(j-+@(_Mps{8aX zhIR!Q+TrM~ddQh_hDvsqY$*;Ex=wL<<8wOoZqIoH-A?>$;Yg8+$D!8iJ`Sh@>PF1L z+c68m{5Y^Z^#`6OXT+NrN|Cf7HKcZ`oiwk-*QYAAo^yT^->u-+>&+7|(m1~jR3UE~ z>$mgZ{f4PES!xC48F-}NR-8XgZDRTUBh}2I#0P$c=!1#9p>b(LNVQuo?1TMz<_$vaJs7B5I771KRvBrb{ zLB?zssTF!$;PMQ(0_#cdlK4vecRG4QuN^p`dJ5|_2G(jR)^Q9RQ00MXf$?P&etXZv zJIW3GK;T04nZPRo7pc_+j|yC@jud=R;1bpER0~|Hb~{G|UZg_KvjUfAz!hrB`Gv$+ zs`kSE_}JmGsj&w}N8FL*RMH)uIPuoWvBO8E+|RqMEs@q{+%UxIKQijxH1WXLv13WM zcjDAIaK|Rb-Q@U)+dq12^w7lk*l^O_AMOeFj!gncj-R}7DtT;dxGfxM*|e1wQ?^nH zB{Z89AJH|>w~kJpB$_5i-+s5H#ehd9riLfR?{y>Lmhk45t;dr`M<=EZg^!ILYz=pW zJ38B1ySBPhQ-_kLrY4SzjZeAj?~R1p!;ua1G8{YUCf%vYGWVkpN+v{@wEF~kq!3sI~PLzYcwA7Y>sS5ZJV&wl1{5>jU7v8lwv zP;|4>Z-p$A;A7>?RzNrAXN*l&A4w>$HC<&XcEpL#FFF( zVYjgA;Hwj~TCq;K6*;FECkbm!0sjav#{s!`OL{L;ZAXrX!cGsQkX5V(m)CF%8j;P3 z2jv`rL?qcHWOKpm5bpDpUkvG!@B_M&XBf+bVR6boiFiXj7ms{l2Xx(sa2>7$bEPso zfgGc3l}VOjoIRok*jGaHN@ArnbwYJu@s z@&&S)@$5aIMmWZ&P1$7UqQAsG3mAn<3Fg z_%+r3HuQuYsC%1LC;WE{Jb0VJ+aLTgZ8z#}6lEDlnfIbp-;5fzQ|*HMH>sPUNuSya zuhZpkAvR^g4Y#{zd2p-Kd*%NH^=S z-iSBY5#6fWbi3}*oAhSgsk`(R{1VtU{U*I#-=Mp7kB;h?j_ZW()jRZ?^^JO`-i057 zy-DA!_vk*oSMSsNbwB>E->v#KJ)j5m?fMRVr@l)c(0A)0ozw^QupZH)`j9@Xk6??! zTl7(VOdrRm?-TljzDG~$lX^;@()a57^!@s+`T_km{dWBq_yOg=)DP*u((lmk)bG;o z*6+~|>(lzZdRo6vzh6J1AJu=YAJc!MAJ-qyAJiYxPv{TpkLbVEAJrezAJP|90WuF8tetf4lH+7yj+Szg_sZ3;%ZE-!A;yg@3#7?-0Hn!nZ^C;@=sw zKXwS;4&mD&d^?11hw$wXz8%81L-=+GzYgKIN%(9MKAYtkzY@g!HVfa)!naH8(_$7p2Lii_$7p2ujtz=`t}O{Ug6&>{CkCeukh~`{=LG#x2tq4d~9O)SpPok(!;J- zyw_dKGsJS~-0|}d=*fSBxZh&0N_=j4ItASgFUU|E6;=Q~3Rn72Q zCy%L`!;_;&RSl*9 zEU^q@mnrp5yp{c~`YA9UPhH^q%PN4mB)$Lrec?wj*4PAYulnbu)N84q;psJ87x7N| z*ZA`K5>CRPXYAg=`64dFlBEA%N9yr6hI8t7*>tQ{Hq1=T7ne>?y=-8zjg3utu+plr@p&mlKIKf{Iy@g?|z$NKD4zvMHmcOeJI z_l5=i@QOT9C|75c7V@$DHopz65XLvkki$ULn9XG46auxCwJ%fEpoM=bf?4TN%(RYU zo^?t+tftlb)FbL6>PhuE^^E$0`jR@UzOK$;cglJ79qd1OLH$_0tbU<>ss5y^&~DZu z{|M$+M56#yjsrf0vkbHzM%z7&vk)}jhtx-K7J&9gFe`f!X8=4thj#cGoF(A(1+<@E z!s&qLS;$6w9dP~@a-GNNK!Wce{`)u!A;}A%^JAPPkmzN!&A-4|0?B>}8UBQ`2y>+> z#A`sMnDMP;Lp1|ZnCUITy#aH&2DI|@e>=)BD^xtQb1<)4jQL*>&veiVWic-65hldS zu^jYl;;7f6)m7}aMN(2;3Ug^wyuGMTuZAA>B1(bf)ayfum1}?(L+$d=roEavow|^EDRmA{ z7tkkPK+FZy7J9mfx^n?I7tv#1fX7fv^1Ia2I4^SgrPR}iL3@ew9EXIpn(8p&1BXt( zl^}y$?y%UGYiTpui3Lb<`>{ZJItld9c0h}lab8Nj2pDpk_J{81D=3{b#i$0BfHwk$ zjbJb2z?12Vi@5Lcdv8v83AP|B0+(z^dGjCO$v(-rC>v14#Rs+FERT_fMpTG5GSR5Y zjI1v4Sb;FjXpC@ha2}>+@N6v8Fb^5`%vjF(GUc+|p)IV#955;nT-J!KBT}kW@F}tu zjrU+7w7mWphGpZigyjS+p-J|UIwu^z4@%^3@JpsedXPk1Mofz&;{14e8kpyRNwQ&& zqVOlbe%bgITlM2ed6m7Bbs^4HmK-U>g4wa@r~J80dTyHWlXPAS<>JjJi^YFK!#Q@p z8tQW;ztY^kU*}|)OVN%*auEGTn}b5B73nlnOZXY(eVMYf+4A8nD8*{_HcP!v=-^+8 z_{Rt!Ts{?Jb&AbAM%arfjcMe_v5n)mVU0EOu)TCDzx5gYIV-s<_f6I zMahz4CK&`4t_wRY? zu;5Uudr9?jd&xZsJa84Ygy^}E!Wifj)^0D;SH+k%}w^4_)B+Keq+U zlj{xMjQK~dBz{6Jke-X=ro3U#^UFf(KewBcoQAdd)V#uNlSX+- zr!3xvMh4fc)Hm*d<;dx|uZlX!oxZZQ$b8C#O%BT@J0&~K$GNJx8s{==FP6XpVJ3fp zP3dHp2qAdVoG}|%dO;)*>+Y%xZ<>pdFdsN14(kh+_nEA*ht4*KK1A{+oI5FCcU#? zuY6jpb4EWc_Qaga9GFL08mB>z<5M5Eso5c6W=oZwZf!}WX7R4t77NwXdD>3P%Sw~` zY~pP!g%*|+^yTC`te;=jVkv4L?Rd>HxYCey$>PN=rQyUxFdj#`^dsQpa~Bqw>!f+O zQeT(bM`ocJYocu?k1;6=;sXU`mpv0ObB3&X0*jOrJtMJ|8c#W66JYT8%hopX3*;+< zG(4)wl2smzd`4Qv$E;tTkO%o?RU&U*(J^1z!f}Sf!Z;>17ZcCW2a>%=I`O(pZapzA zl++2)log)ei!_H zpnixQVgICF0_UIL{pDnn?~)(N~~DdBD@x>)wCyVt)CrB*Ep6!dc)Tw z)Pd6~yt}|JGIPXotZy%2j5^$nT&o}%y#Wb8J_n)APj4*fod<=)y#`?^xSFF@;T&?$Y?v%Gb{u@_0Pl=;x-=LQ$Q>d(@d ze9Hjam@4SJjIR~oz8n|vAV~>>Y(eylhSi)#=|&Fxzz!s%i_+;ZVHMs-(3_(wc=}en zBv7awEx0$a_3B{xI^@}aoqx3JkJ^WJl-D}Yb#a=5tVVBAOljD#fD_9lp3+vJ9`%6l zChR4=0kuh?r=zz|WM_I0)W&B6-cl&k(lGAyrYeG1bCHMP3k!Hr1^W-B*RW@I09wM* z(--(OYo?gZxJWKKXspobmt+yYwK4K80q$nx?gU0RE|V8u&j6|wnKZ232Cj?2zZlZc z4oV}Fk-Umii{ZKai3#oz)E2XUl5}W;jf+{QYw<)e^v2Fe-3E)4avW}uq5@KqZyUT0 zes33nd~LvQgxv_&;B|9Nv9*PAnwX8KM|3&3NIuF-VVZU^o{Kr2(&&mp-p!E8UWSs9 zp#gO%qynW|s3w(8l~n>46fpzy&}(7V$n7`19isDs%p(b=^cQhbfAutAS~;4xr-w|h z|B#VQ4uNW{sAi2+a?g$8!|K`~A>d7IqA5 z*3Gih&4@cYPM*vd-rUm&eU@4}>I$L!b}74hi{<0TeLCB~+R9?VLOgb1pYeTxJOnZD z5Q~>DoG;ak9`fbz<8tlhCtL}TtAowM<$aN!$m{)B9$Ry*;4~Yb4)gh#pPD17(OG=# zahi)UWvWXH+RCSw1+bNQ%#;<42iRWXGp%X3Q0drIlMkhM4zV;+rMJWMmX68~HQm-X z@?^wv2_s}_g@);~?D`HArE%C80FVE*7>{!j~^i@-gAIE`6F1$fanTIqwv{dMwaLYj@yJi)|MTq|ZD z>mbzzj6j3XgJy|zl;c{-m(@#QbnGIA#`=XwGgm3*5sRVC_0X#xnwz5q!5Un3B7F_) zX<}&ZL2}VSWgB9MZuAwEm6zs3>ybO1O4RH@60PKM`buzB;J+Bs&|zdUlGg)=zSF`# z8OPm79br7ui!e(OZ*-#Eg*-1XQm=$XXqIEBhL{T;`MHoaBe)JU2%k!m4ujVKh%P$P zF(sHc(X|v8$wzr9Ow%SA7jrzNne+&(Q14%cu921el~!A*7QP+(8Ry%xzMA*+tx<(N zw SW|*{lU-ju_xZlKhJO39U6mh%& literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansitalic.woff b/tmpl/assets/fonts/firasansitalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..ff5a05aacaeabe4431a7e8f5d969a7d3bd36309e GIT binary patch literal 28312 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

a+skf|&Pa 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasanslight.ttf b/tmpl/assets/fonts/firasanslight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c22cfa36469f98548d2ebc83d311cc090ec90eeb GIT binary patch literal 56048 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 z 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 HsW=S)NO?~+ literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansmedium.ttf b/tmpl/assets/fonts/firasansmedium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..81f97072f7965dfde4f59c2d5dc99f82caae98c2 GIT binary patch literal 57332 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 K=RLyr;r|C;C1phb literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansmedium.woff b/tmpl/assets/fonts/firasansmedium.woff new file mode 100644 index 0000000000000000000000000000000000000000..12b998bb7f82b771a96666cbfaa584b9c793dc9e GIT binary patch literal 26212 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasansmediumitalic.woff b/tmpl/assets/fonts/firasansmediumitalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..e694422596d0515ce1892a719f0deb261b67d44c GIT binary patch literal 28548 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasanssemibold.ttf b/tmpl/assets/fonts/firasanssemibold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..69a4be5aa0e867841d38011e09d7abbb10848696 GIT binary patch literal 67644 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 z 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 U4C%4b(_Dr3=vq8)Fm%`dKjW69#Q*>R literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasanssemibold.woff b/tmpl/assets/fonts/firasanssemibold.woff new file mode 100644 index 0000000000000000000000000000000000000000..fe733039f04773c8ce535983dd33377ba478998c GIT binary patch literal 28728 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasanssemibold.woff2 b/tmpl/assets/fonts/firasanssemibold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b828fd27545bc42da1fed742eb5dfbf457672ee8 GIT binary patch literal 22472 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 XI~Q2?-rzU?$MpQt?%=D-=Ist1YGIKq literal 0 HcmV?d00001 diff --git a/tmpl/assets/fonts/firasanssemibolditalic.ttf b/tmpl/assets/fonts/firasanssemibolditalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dd5c7eee85eb61bb036697c70d412391fd5c493b GIT binary patch literal 72096 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/jquery-custom.min.js b/tmpl/assets/jquery-custom.min.js new file mode 100644 index 00000000000..ee49d986153 --- /dev/null +++ b/tmpl/assets/jquery-custom.min.js @@ -0,0 +1,5 @@ +/*! jQuery v3.0.0 -css,-css/addGetHookIf,-css/adjustCSS,-css/curCSS,-css/hiddenVisibleSelectors,-css/showHide,-effects,-effects/Tween,-effects/animatedSelector,-css/support,-css/var/cssExpand,-css/var/getStyles,-css/var/isHiddenWithinTree,-css/var/rmargin,-css/var/rnumnonpx,-css/var/swap,-dimensions,-offset,-deprecated,-event/alias,-wrap | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.0.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return a&&"[object Object]"===k.call(a)?(b=e(a))?(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n):!0:!1},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;d>f;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a)?(d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e):void 0},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"===c||r.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\x00-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\x00"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[0>c?c+b:c]}),even:pa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,e>i&&ya(a.slice(i,e)),f>e&&ya(a=a.slice(e)),f>e&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;d>b;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;d>b;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(f>b)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(1>=b&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){ +return j.call(r(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:X.test(c)?JSON.parse(c):c}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ca=/^$|\/(?:java|ecma)script/i,da={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function fa(a,b){for(var c=0,d=a.length;d>c;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var ga=/<|&#?\w+;/;function ha(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;o>n;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(ga.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ba.exec(f)||["",""])[1].toLowerCase(),i=da[h]||da._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ea(l.appendChild(f),"script"),j&&fa(g),c){k=0;while(f=g[k++])ca.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ia=d.documentElement,ja=/^key/,ka=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,la=/^([^.]*)(?:\.(.+)|)/;function ma(){return!0}function na(){return!1}function oa(){try{return d.activeElement}catch(a){}}function pa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)pa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=na;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ia,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=la.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=la.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;cc;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h\x20\t\r\n\f]*)[^>]*)\/>/gi,ra=/\s*$/g;function va(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function wa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function xa(a){var b=ta.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ya(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function za(a,b){var c=b.nodeName.toLowerCase();"input"===c&&aa.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Aa(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&sa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Aa(f,b,c,d)});if(m&&(e=ha(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ea(e,"script"),wa),i=h.length;m>l;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,ea(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,xa),l=0;i>l;l++)j=h[l],ca.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(ua,""),k))}return a}function Ba(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(ea(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(qa,"<$1>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ea(h),f=ea(a),d=0,e=f.length;e>d;d++)za(f[d],g[d]);if(b)if(c)for(f=f||ea(a),g=g||ea(h),d=0,e=f.length;e>d;d++)ya(f[d],g[d]);else ya(a,h);return g=ea(h,"script"),g.length>0&&fa(g,!i&&ea(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ba(this,a,!0)},remove:function(a){return Ba(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Aa(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=va(this,a);b.appendChild(a)}})},prepend:function(){return Aa(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=va(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Aa(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Aa(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ea(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ra.test(a)&&!da[(ba.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Aa(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}}),r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var Ca,Da=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?Ca:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),Ca={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=Da[b]||r.find.attr;Da[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=Da[g],Da[g]=e,e=null!=c(a,b,d)?g:null,Da[g]=f),e}});var Ea=/^(?:input|select|textarea|button)$/i,Fa=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):Ea.test(a.nodeName)||Fa.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var Ga=/[\t\r\n\f]/g;function Ha(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,Ha(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=Ha(c),d=1===c.nodeType&&(" "+e+" ").replace(Ga," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,Ha(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=Ha(c),d=1===c.nodeType&&(" "+e+" ").replace(Ga," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,Ha(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Ha(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Ha(c)+" ").replace(Ga," ").indexOf(b)>-1)return!0;return!1}});var Ia=/\r/g,Ja=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(Ia,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(Ja," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){return r.isArray(b)?a.checked=r.inArray(r(a).val(),b)>-1:void 0}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var Ka=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!Ka.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,Ka.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?r.event.trigger(a,b,c,!0):void 0}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var La=a.location,Ma=r.now(),Na=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var Oa=/\[\]$/,Pa=/\r?\n/g,Qa=/^(?:submit|button|image|reset|file)$/i,Ra=/^(?:input|select|textarea|keygen)/i;function Sa(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||Oa.test(a)?d(a,e):Sa(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Sa(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Sa(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&Ra.test(this.nodeName)&&!Qa.test(a)&&(this.checked||!aa.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(Pa,"\r\n")}}):{name:b.name,value:c.replace(Pa,"\r\n")}}).get()}});var Ta=/%20/g,Ua=/#.*$/,Va=/([?&])_=[^&]*/,Wa=/^(.*?):[ \t]*([^\r\n]*)$/gm,Xa=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ya=/^(?:GET|HEAD)$/,Za=/^\/\//,$a={},_a={},ab="*/".concat("*"),bb=d.createElement("a");bb.href=La.href;function cb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function db(a,b,c,d){var e={},f=a===_a;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function eb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function fb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function gb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:La.href,type:"GET",isLocal:Xa.test(La.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ab,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?eb(eb(a,r.ajaxSettings),b):eb(r.ajaxSettings,a)},ajaxPrefilter:cb($a),ajaxTransport:cb(_a),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Wa.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||La.href)+"").replace(Za,La.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=bb.protocol+"//"+bb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),db($a,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Ya.test(o.type),f=o.url.replace(Ua,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Ta,"+")):(n=o.url.slice(f.length),o.data&&(f+=(Na.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Va,""),n=(Na.test(f)?"&":"?")+"_="+Ma++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+ab+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=db(_a,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&300>b||304===b,d&&(v=fb(o,y,d)),v=gb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",0>b&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d, +d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var hb={0:200,1223:204},ib=r.ajaxSettings.xhr();o.cors=!!ib&&"withCredentials"in ib,o.ajax=ib=!!ib,r.ajaxTransport(function(b){var c,d;return o.cors||ib&&!b.crossDomain?{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(hb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}:void 0}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + + + + From e891392215adb0fde1ce84664a3e250da0ac34e7 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Tue, 11 Oct 2016 03:34:21 +0300 Subject: [PATCH 0605/3440] fix linguist data --- .gitattributes | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000000..b9b66bb9af7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +tmpl/assets/* linguist-vendored +*.js linguist-vendored +*.css linguist-vendored +*.html linguist-vendored From d0d8bb1fd7ac422fee82f365940e7b5d7382ad06 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Tue, 11 Oct 2016 04:30:20 +0300 Subject: [PATCH 0606/3440] fix links --- repo.go | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/repo.go b/repo.go index 194d402238a..9c53515c510 100644 --- a/repo.go +++ b/repo.go @@ -11,27 +11,74 @@ import ( "github.com/russross/blackfriday" ) +// memory usage optimizations +const ( + emtyStr = "" + git = "git" + checkout = "checkout" + force = "-f" + pull = "pull" + + // options + readmePath = "./README.md" + tplPath = "tmpl/tmpl.html" + idxPath = "tmpl/index.html" + + bfHTMLRendererOpts = 0 | + blackfriday.HTML_USE_XHTML | + blackfriday.HTML_USE_SMARTYPANTS | + blackfriday.HTML_SMARTYPANTS_FRACTIONS | + blackfriday.HTML_SMARTYPANTS_DASHES | + blackfriday.HTML_SMARTYPANTS_LATEX_DASHES + + bfMDOpts = 0 | + blackfriday.EXTENSION_NO_INTRA_EMPHASIS | + blackfriday.EXTENSION_TABLES | + blackfriday.EXTENSION_FENCED_CODE | + blackfriday.EXTENSION_AUTOLINK | + blackfriday.EXTENSION_STRIKETHROUGH | + blackfriday.EXTENSION_SPACE_HEADERS | + blackfriday.EXTENSION_HEADER_IDS | + blackfriday.EXTENSION_BACKSLASH_LINE_BREAK | + blackfriday.EXTENSION_DEFINITION_LISTS | + blackfriday.EXTENSION_AUTO_HEADER_IDS +) + +var ( + doneResp = []byte("Done!\n") +) + type content struct { Body string } func generateHTML() { // Update repo - exec.Command("git", "checkout", "-f").Output() - exec.Command("git", "pull").Output() + exec.Command(git, checkout, force).Output() + exec.Command(git, pull).Output() - input, _ := ioutil.ReadFile("./README.md") - body := string(blackfriday.MarkdownCommon(input)) + input, _ := ioutil.ReadFile(readmePath) + body := string( + blackfriday.Markdown( + input, + blackfriday.HtmlRenderer( + bfHTMLRendererOpts, + emtyStr, + emtyStr, + ), + bfMDOpts, + ), + ) c := &content{Body: body} - t := template.Must(template.ParseFiles("tmpl/tmpl.html")) - f, _ := os.Create("tmpl/index.html") + t := template.Must(template.ParseFiles(tplPath)) + f, _ := os.Create(idxPath) t.Execute(f, c) } func hookHandler(w http.ResponseWriter, r *http.Request) { go generateHTML() - w.Write([]byte("Done!\n")) + w.Write(doneResp) } func main() { From e76833473c415b9280810f36ff383e9ba867e6e5 Mon Sep 17 00:00:00 2001 From: Mateusz Gajewski Date: Wed, 12 Oct 2016 16:54:11 +0200 Subject: [PATCH 0607/3440] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c896b41b89f..9527d098d49 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Databases implemented in Go.* + +* [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. * [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. * [buntdb](https://github.com/tidwall/buntdb) - A fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. * [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. From 8334550212f6d77414ecb5eeddc41795206b620e Mon Sep 17 00:00:00 2001 From: steven Date: Thu, 13 Oct 2016 10:26:20 +0800 Subject: [PATCH 0608/3440] Add lhttp lhttp is a http like protocol using websocket to provide long live --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c896b41b89f..c82c61fbbc3 100644 --- a/README.md +++ b/README.md @@ -682,6 +682,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. * [kcp-go](https://github.com/xtaci/kcp-go) - KCP - A Fast and Reliable ARQ Protocol. * [kcptun](https://github.com/xtaci/kcptun) - An extremely simple & fast udp tunnel based on KCP protocol +* [lhttp](https://github.com/fanux/lhttp) - A powerful websocker framework, build your IM server more easily. * [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 From eaea8df67a1c8a807c50c4b644a75614fa86d0ab Mon Sep 17 00:00:00 2001 From: steven Date: Thu, 13 Oct 2016 15:51:36 +0800 Subject: [PATCH 0609/3440] Fix websocker -> websocket typo in lhttp description. (#1132) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ae824cc130b..cccf1f5672b 100644 --- a/README.md +++ b/README.md @@ -684,7 +684,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. * [kcp-go](https://github.com/xtaci/kcp-go) - KCP - A Fast and Reliable ARQ Protocol. * [kcptun](https://github.com/xtaci/kcptun) - An extremely simple & fast udp tunnel based on KCP protocol -* [lhttp](https://github.com/fanux/lhttp) - A powerful websocker framework, build your IM server more easily. +* [lhttp](https://github.com/fanux/lhttp) - A powerful websocket framework, build your IM server more easily. * [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 From c453a7a4aa7fd7d163bf377cd3ed4c63e7ce73ea Mon Sep 17 00:00:00 2001 From: Osamu TONOMORI Date: Fri, 14 Oct 2016 11:12:08 +0900 Subject: [PATCH 0610/3440] Add indigo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cccf1f5672b..c49b7e617f1 100644 --- a/README.md +++ b/README.md @@ -622,6 +622,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A package that exposes country and subdivision data. * [health](https://github.com/dimiro1/health) - A Easy to use, extensible health check library. +* [indigo](https://github.com/osamingo/indigo) - A distributed unique ID generator of using Sonyflake and encoded by Base58. * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [margelet](https://github.com/zhulik/margelet) - A framework for building Telegram bots. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. From 3bf2266762c572c2b7ea4a13bcc7c028923d5bb5 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Fri, 14 Oct 2016 18:44:31 +0300 Subject: [PATCH 0611/3440] Add link to PR template in CONTRIBUTING.md --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 110e8efe601..c92420e97d3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,6 +18,8 @@ To set this list apart from and compliment the excellent [Go wiki Projects page] Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. +If you removed our PR template you can find it [here](https://github.com/avelino/awesome-go/blob/master/.github/PULL_REQUEST_TEMPLATE.md). + ## Quality standard From 18ed8e6f3304c611a5a9cbdd21c7846693474272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florin=20P=C4=83=C8=9Ban?= Date: Sun, 16 Oct 2016 12:19:31 +0100 Subject: [PATCH 0612/3440] Remove iris from listing (#1135) Based on previous issues such as [1] and [2] as well as still not accepting open-source contributions, flattening contributions, closing PRs from users, editing issues, breaking changes very often and overall poor leadership of the project this PR removes the iris as a project from this listing. [1] https://github.com/julienschmidt/httprouter/issues/148 [2] https://github.com/julienschmidt/httprouter/issues/160 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c49b7e617f1..4ea3c6627d9 100644 --- a/README.md +++ b/README.md @@ -1127,7 +1127,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. -* [Iris](https://github.com/kataras/iris) - A very minimal but flexible and high-performance golang web application framework, providing a robust set of features for building web applications. * [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. * [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. From 9c72cb218440b16cc8ed82b426d29ef114f4b429 Mon Sep 17 00:00:00 2001 From: Pavlo Lysov Date: Sun, 16 Oct 2016 19:06:02 +0300 Subject: [PATCH 0613/3440] adds the "gosuite" library (#1136) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4ea3c6627d9..5c00ba54450 100644 --- a/README.md +++ b/README.md @@ -876,6 +876,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [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 * [restit](https://github.com/yookoala/restit) - A Go micro framework to help writing RESTful API integration test. From d40ea4ec7c07e4f7f6265d639a56016860c673c4 Mon Sep 17 00:00:00 2001 From: sbstjn Date: Mon, 17 Oct 2016 19:44:21 +0200 Subject: [PATCH 0614/3440] Add github.com/sbstjn/allot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5c00ba54450..f119a06e329 100644 --- a/README.md +++ b/README.md @@ -903,6 +903,7 @@ 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 * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. From 82f37dfeb93ad53903b83dcf7eb934fee1b71ebe Mon Sep 17 00:00:00 2001 From: Michel Aquino Date: Wed, 19 Oct 2016 14:08:07 -0200 Subject: [PATCH 0615/3440] Add go-torch - Stochastic flame graph profiler for Go programs (#1140) * Update README Add govendor (https://github.com/kardianos/govendor), a go Package Manager * Update README.md Adding in alphabetical order * Update README Add go-swagger * Update README.md * Update README.md * Update README.md * Remove go-swagger * alphabetic order * alphabetic order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5c00ba54450..e8534407969 100644 --- a/README.md +++ b/README.md @@ -1014,6 +1014,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. * [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. +* [go-torch](https://github.com/uber/go-torch) - Stochastic flame graph profiler for Go programs. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. From fab4b207e33d3844a13a0bfbaf01ef02d03079ca Mon Sep 17 00:00:00 2001 From: Harvey Kandola Date: Wed, 19 Oct 2016 10:43:34 -0700 Subject: [PATCH 0616/3440] Add Documize (#1142) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e8534407969..04e1ad9f910 100644 --- a/README.md +++ b/README.md @@ -1271,6 +1271,7 @@ Software written in Go. * [Comcast](https://github.com/tylertreat/Comcast) - Simulate bad network connections. * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. * [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. +* [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. * [fleet](https://github.com/coreos/fleet) - A Distributed init System. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. From 8c46a3d13607c60bbacddce60ac878e0627c89d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 20 Oct 2016 10:12:30 +0200 Subject: [PATCH 0617/3440] Add github.com/sbstjn/hanu (#1139) * Add github.com/sbstjn/hanu * Add link to tutorial for github.com/sbstjn/hanu * Update README.md Remove additional link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 04e1ad9f910..c7639585a9e 100644 --- a/README.md +++ b/README.md @@ -621,6 +621,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gopsutil](https://github.com/shirou/gopsutil) - A 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 * [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data. +* [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. * [health](https://github.com/dimiro1/health) - A Easy to use, extensible health check library. * [indigo](https://github.com/osamingo/indigo) - A distributed unique ID generator of using Sonyflake and encoded by Base58. * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. From 5a40ce1488e961b3b781ceaff865f2bea6127e4f Mon Sep 17 00:00:00 2001 From: Michel Aquino Date: Thu, 20 Oct 2016 15:11:10 -0200 Subject: [PATCH 0618/3440] Add Go swagger (#1141) * Update README Add govendor (https://github.com/kardianos/govendor), a go Package Manager * Update README.md Adding in alphabetical order * Update README Add go-swagger * Update README.md * Update README.md * Update README.md * Remove go-swagger * alphabetic order * alphabetic order * Add go-swagger * Remove link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c7639585a9e..b4ae425c4b9 100644 --- a/README.md +++ b/README.md @@ -1223,6 +1223,7 @@ Go software and plugins. * [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. * [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. +* [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. ## Software Packages From b33812d4a1d27c040fd14a626db88e9afc0826bf Mon Sep 17 00:00:00 2001 From: Erik Davidson Date: Sun, 23 Oct 2016 01:16:08 -0500 Subject: [PATCH 0619/3440] Add gomol to logging section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e123084fb26..4753529a23d 100644 --- a/README.md +++ b/README.md @@ -528,6 +528,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. +* [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. * [gone/log](https://github.com/One-com/gone/tree/master/log#readme) - Fast, extendable, full-featured, std-lib source compatible log library. * [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. From 3e024670422e9ae7e0b18308e0e1119573b648e0 Mon Sep 17 00:00:00 2001 From: jorin Date: Mon, 24 Oct 2016 20:43:20 +0200 Subject: [PATCH 0620/3440] Replace Boom with Hey (#1148) [Boom](https://github.com/rakyll/boom) has been renamed to [Hey](https://github.com/rakyll/hey) because of a name conflict with another binary. The old URL is still working but users are encouraged to change to the new one. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e123084fb26..505c5c0b2d3 100644 --- a/README.md +++ b/README.md @@ -1237,7 +1237,6 @@ Software written in Go. * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile. * [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. -* [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. @@ -1253,6 +1252,7 @@ Software written in Go. * [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. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. +* [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. * [Mora](https://github.com/emicklei/mora) - REST server for accessing MongoDB documents and meta data. From 390c87b4aac1e5820aa720237334d48252f242a1 Mon Sep 17 00:00:00 2001 From: Atsushi NAGASE Date: Thu, 27 Oct 2016 02:59:44 +0900 Subject: [PATCH 0621/3440] Add ngs/go-google-email-audit-api. (#1149) Go client library for Google G Suite Email Audit API. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 505c5c0b2d3..086bf8d04d6 100644 --- a/README.md +++ b/README.md @@ -968,6 +968,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. * [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting. * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. +* [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. * [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. From 1f8f930413f3fad1fac3a6092aae47f8a0d93b92 Mon Sep 17 00:00:00 2001 From: Wesley Hill Date: Wed, 26 Oct 2016 20:35:01 +0100 Subject: [PATCH 0622/3440] add therecipe/qt - Qt binding for Go. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 086bf8d04d6..a06d4d84e81 100644 --- a/README.md +++ b/README.md @@ -478,6 +478,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goqt](https://github.com/visualfc/goqt) - Golang bindings to the Qt cross-platform application framework. * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. +* [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [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. From d05d4a1db3816387ef328b077d0b7b18b0a21dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8B=9B=E7=89=8C=E7=96=AF=E5=AD=90?= Date: Thu, 27 Oct 2016 14:18:18 +0800 Subject: [PATCH 0623/3440] Add buaazp/fasthttprouter (#1151) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a06d4d84e81..1bed79aa292 100644 --- a/README.md +++ b/README.md @@ -1111,6 +1111,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [chi](https://github.com/pressly/chi) - Small, fast and expressive HTTP router built on net/context. * [CleverGo](https://github.com/headwindfly/clevergo) - CleverGo is a simple, easy to use and high performance web framework for Go. * [Echo](https://github.com/labstack/echo) - A fast and unfancy micro web framework for Go. +* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. * [Fireball](https://github.com/zpatrick/fireball) - A more "natural" feeling web framework. * [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework * [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. From cd9a0ffff7a5cc973150ed39b29a9d5c401639ce Mon Sep 17 00:00:00 2001 From: emersion Date: Thu, 27 Oct 2016 16:41:35 +0200 Subject: [PATCH 0624/3440] Adds go-imap --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1bed79aa292..a92528dd8bb 100644 --- a/README.md +++ b/README.md @@ -375,6 +375,7 @@ 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) - A DKIM library, to sign & verify email. +* [go-imap](https://github.com/emersion/go-imap) - An IMAP library for clients and servers * [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 * [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface From 9510c86ac6955bf0b867aad0367692b80a4e06f4 Mon Sep 17 00:00:00 2001 From: Richard Knop Date: Fri, 28 Oct 2016 15:26:55 +0800 Subject: [PATCH 0625/3440] Adding RichardKnop/go-oauth2-server. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a92528dd8bb..1d20846a7ce 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [authboss](https://github.com/go-authboss/authboss) - A modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. +* [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - A standalone, specification-compliant, OAuth2 server written in Golang. * [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. * [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. From 4e88234e549a32a0354b01f501150dab97c877f7 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 28 Oct 2016 16:42:50 -0600 Subject: [PATCH 0626/3440] Add sg ([HTTP server] stress gauge) Note that Travis-ci image says "build failing" but the actual page says it doesn't fail: https://travis-ci.org/ChristopherRabotin/sg . --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1d20846a7ce..9d32fc5ac32 100644 --- a/README.md +++ b/README.md @@ -1266,6 +1266,7 @@ Software written in Go. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). +* [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the reponse code and data between each call for specific server stress based on its previous response. * [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) - A Web-based IDE for Teams using Golang. From 91e0d2cec9dfc6fd8f7a7356e445c635ea14b48b Mon Sep 17 00:00:00 2001 From: Osamu TONOMORI Date: Mon, 31 Oct 2016 18:01:02 +0900 Subject: [PATCH 0627/3440] Add jsonrpc --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9d32fc5ac32..6136ce9dc29 100644 --- a/README.md +++ b/README.md @@ -358,6 +358,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. +* [jsonrpc](https://github.com/osamingo/jsonrpc) - The jsonrpc package helps implement of JSON-RPC 2.0. * [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and distributed systems platform. * [NATS](https://github.com/nats-io/gnatsd) - A 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. From f7fead9a404ce912a112c0f86f86c3839d6e8f9d Mon Sep 17 00:00:00 2001 From: Geofrey Ernest Date: Mon, 31 Oct 2016 18:06:15 +0300 Subject: [PATCH 0628/3440] Add utron framework (#1158) This adds utron MVC framework on the web frameworks section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6136ce9dc29..9d46b97aae3 100644 --- a/README.md +++ b/README.md @@ -1155,6 +1155,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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) - A lightweight MVC framework for Go(Golang). * [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and ouput handling. * [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. * [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. From ff53a2b2cf00974dfd3ea3b8839dfcec97d4c1f4 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Mon, 31 Oct 2016 18:31:27 +0300 Subject: [PATCH 0629/3440] Revert "Add go-options" (#1161) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9d46b97aae3..3724f12e2b4 100644 --- a/README.md +++ b/README.md @@ -178,7 +178,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 -* [go-options](https://github.com/kataras/go-options) - Clean APIs for your Go Applications * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [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 From 7ed8d7f3ff5a6e0f0b60621b83a5e3609af9afcd Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Mon, 31 Oct 2016 18:33:15 +0300 Subject: [PATCH 0630/3440] Revert "Add simple go-serializer" (#1162) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 3724f12e2b4..b0dc14c291b 100644 --- a/README.md +++ b/README.md @@ -818,7 +818,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -* [go-serializer](https://github.com/kataras/go-serializer) Serialize custom types or content to []byte or string * [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. * [mapstructure](https://github.com/mitchellh/mapstructure) - Go library for decoding generic map values into native Go structures. From 02d24532883740aee8e297c04db3d58e1cb761aa Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Mon, 31 Oct 2016 18:34:34 +0300 Subject: [PATCH 0631/3440] Revert "Add go-events" (#1163) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b0dc14c291b..6d40de9bc2e 100644 --- a/README.md +++ b/README.md @@ -586,7 +586,6 @@ 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. * [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. -* [go-events](https://github.com/kataras/go-events) - Simple Nodejs-style EventEmmiter for Go. * [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 From 2f341fd39fc32dfd5ab34422424c076d1b295a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=E5=93=A5?= Date: Tue, 1 Nov 2016 00:57:04 +0800 Subject: [PATCH 0632/3440] Added hprose --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6d40de9bc2e..5a4fa205059 100644 --- a/README.md +++ b/README.md @@ -357,6 +357,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [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) - A very newbility RPC Library, support 25+ languages now. * [jsonrpc](https://github.com/osamingo/jsonrpc) - The jsonrpc package helps implement of JSON-RPC 2.0. * [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and distributed systems platform. * [NATS](https://github.com/nats-io/gnatsd) - A lightweight, high performance messaging system for microservices, IoT, and cloud native systems. From 3b616148267d1e9a681f67cce9eb43708663cc2a Mon Sep 17 00:00:00 2001 From: Milica Date: Mon, 31 Oct 2016 21:40:25 +0100 Subject: [PATCH 0633/3440] Adding 2 TDD/BDD tutorials (#1164) * adding 2 TDD/BDD tutorials * placing links in alphabetical order --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 5a4fa205059..539661338a9 100644 --- a/README.md +++ b/README.md @@ -1396,11 +1396,14 @@ Where to discover new Go libraries. ### Tutorials * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. +* [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. * [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +* [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers. + ## Windows * [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9 From 9c9d3dbf542ef030c84b750879676a0cbc5e8044 Mon Sep 17 00:00:00 2001 From: Geofrey Ernest Date: Tue, 1 Nov 2016 15:07:34 +0300 Subject: [PATCH 0634/3440] Add alien --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 539661338a9..07ec55480ca 100644 --- a/README.md +++ b/README.md @@ -1106,6 +1106,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Full stack web frameworks.* +* [alien](https://github.com/gernest/alien) - A lightweight and fast http router from outer space * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [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. From d24abe84ee308c0ece92a001ec761602e46b51a5 Mon Sep 17 00:00:00 2001 From: Cosmin Rentea Date: Wed, 2 Nov 2016 16:34:36 +0200 Subject: [PATCH 0635/3440] add guble --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 07ec55480ca..018ce2e40be 100644 --- a/README.md +++ b/README.md @@ -592,6 +592,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-nsq](https://github.com/nsqio/go-nsq) - the official Go package for NSQ * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. * [gorush](https://github.com/appleboy/gorush) - A 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) - A 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. * [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [NATS Go Client](https://github.com/nats-io/nats) - A lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library. From c3a8f9c60c86453048a5f3097bee0e5f95a3c1d6 Mon Sep 17 00:00:00 2001 From: Alexander Zhuravlev Date: Wed, 2 Nov 2016 23:02:24 +0400 Subject: [PATCH 0636/3440] Add ringpop-go from Uber "Scalable, fault-tolerant application-layer sharding for Go applications" --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 018ce2e40be..60fbae7baf9 100644 --- a/README.md +++ b/README.md @@ -363,6 +363,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [NATS](https://github.com/nats-io/gnatsd) - A 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 * [rpcx](https://github.com/smallnest/rpcx) - A distributed pluggable RPC service framework like alibaba Dubbo. * [sleuth](https://github.com/ursiform/sleuth) - A 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. From ff5147f19d59c1e42a896eb5e8bca5ab450a2017 Mon Sep 17 00:00:00 2001 From: Gustav Westling Date: Sun, 6 Nov 2016 18:07:05 +0100 Subject: [PATCH 0637/3440] Add goriak --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 018ce2e40be..ed18cf24979 100644 --- a/README.md +++ b/README.md @@ -318,6 +318,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gocql](http://gocql.github.io) - A 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 * [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-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in golang. From 5f088f6c059c7755e785bc6621da3a8b1487f6d9 Mon Sep 17 00:00:00 2001 From: Konstantin Ivanov Date: Mon, 7 Nov 2016 13:44:19 +0300 Subject: [PATCH 0638/3440] Advanced Console UIs -> add logrusorgru/aurora package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed18cf24979..0d35c893113 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,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 * [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. From 50a0b1946ce0046d86caad7cad89c1e18163069f Mon Sep 17 00:00:00 2001 From: Chewxy Date: Tue, 8 Nov 2016 08:05:51 +1100 Subject: [PATCH 0639/3440] Added Gorgonia --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0d35c893113..ae3c87a5b4c 100644 --- a/README.md +++ b/README.md @@ -573,6 +573,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. * [neural-go](https://github.com/schuyler/neural-go) - A multilayer perceptron network implemented in Go, with training via backpropagation. From 69d75b1a4d668bb4610754f0be2a167b7c16dfbd Mon Sep 17 00:00:00 2001 From: Chewxy Date: Tue, 8 Nov 2016 08:19:30 +1100 Subject: [PATCH 0640/3440] Added fullstop to make sentence complete --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ae3c87a5b4c..343cd0bac15 100644 --- a/README.md +++ b/README.md @@ -573,7 +573,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [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. * [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. * [neural-go](https://github.com/schuyler/neural-go) - A multilayer perceptron network implemented in Go, with training via backpropagation. From e1ad4c4c17b125af197139bb284e4510110a0d94 Mon Sep 17 00:00:00 2001 From: Mateusz Gajewski Date: Wed, 9 Nov 2016 14:44:05 +0100 Subject: [PATCH 0641/3440] Update README.md Add https://github.com/wendigo/go-bind-plugin https://goreportcard.com/report/github.com/wendigo/go-bind-plugin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 343cd0bac15..8b98eda0d78 100644 --- a/README.md +++ b/README.md @@ -1018,6 +1018,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fzf](https://github.com/junegunn/fzf) - A 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. +* [go-bind-plugin](https://github.com/wendigo/go-bind-plugins) - go:generate tool for wrapping symbols exported by golang plugins (1.8 only) * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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. From 22870a85b53ad8cf68f3e3a2ca82b7547afd4572 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Fri, 11 Nov 2016 01:40:12 -0800 Subject: [PATCH 0642/3440] Fix go-bind-plugin URL. Fixup for #1178. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b98eda0d78..5f97896a722 100644 --- a/README.md +++ b/README.md @@ -1018,7 +1018,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fzf](https://github.com/junegunn/fzf) - A 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. -* [go-bind-plugin](https://github.com/wendigo/go-bind-plugins) - go:generate tool for wrapping symbols exported by golang plugins (1.8 only) +* [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) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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. From f551d0d36b94a2c0c8b9fc4660a5b5b8595952d9 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 11 Nov 2016 16:53:32 -0700 Subject: [PATCH 0643/3440] Add ODE solver --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 974a15afcdb..e2b90ccf86c 100644 --- a/README.md +++ b/README.md @@ -796,6 +796,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goraph](https://github.com/gyuho/goraph) - A pure Go graph theory library(data structure, algorith visualization) * [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language * [mudlark-go](https://github.com/pwil3058/mudlark-go-pkgs) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. +* [ode](https://github.com/ChristopherRabotin/ode) - An 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 * [stats](https://github.com/montanaflynn/stats) - A statistics package with common functions missing from the Golang standard library. From 33401bd59a8d709f041ff93dc5ae0dffaf79781e Mon Sep 17 00:00:00 2001 From: Michael Schenk Date: Sat, 12 Nov 2016 15:46:10 -0600 Subject: [PATCH 0644/3440] Add Git Time Metric utility --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e2b90ccf86c..9b4dd121088 100644 --- a/README.md +++ b/README.md @@ -1020,6 +1020,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fzf](https://github.com/junegunn/fzf) - A 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 * [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) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications. From baf471bf4b163088927ecb53f6c6225c69fe4544 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 16 Nov 2016 23:36:48 -0200 Subject: [PATCH 0645/3440] remove arschles/gogenerate, ref #1181 Comment of maintainer: https://github.com/avelino/awesome-go/issues/1181#issuecomment-261002875 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e2b90ccf86c..1a31b3aa596 100644 --- a/README.md +++ b/README.md @@ -904,7 +904,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * Fuzzing and delta-debugging/reducing/shrinking * [go-fuzz](https://github.com/dvyukov/go-fuzz) - A randomized testing system * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values - * [gogenerate](https://github.com/arschles/gogenerate) - A Scalacheck-like library for Go * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework ## Text Processing From d8cddaebae60f57b474fff972fca886e6ca76092 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 16 Nov 2016 23:45:16 -0200 Subject: [PATCH 0646/3440] added package `go.uuid`, ref #1125 Suggest by @nntaoli --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1a31b3aa596..737d40001b9 100644 --- a/README.md +++ b/README.md @@ -626,6 +626,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [go-openapi](https://github.com/go-openapi) - A collection of packages to parse and utilize open-api schemas * [go-shortid](https://github.com/ventu-io/go-shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. +* [go.uuid](https://github.com/satori/go.uuid) - Implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs. * [gopsutil](https://github.com/shirou/gopsutil) - A 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 * [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data. From a468ab58e5e43ce362fb91962b4216f1b8d88348 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 16 Nov 2016 23:48:27 -0200 Subject: [PATCH 0647/3440] fixed typo Google is the company that created (and keep) the language Go, do not use the Google name as the language --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 737d40001b9..3693330cb1a 100644 --- a/README.md +++ b/README.md @@ -331,7 +331,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * Search and Analytic Databases * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. - * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Google Go. + * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go. * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library. * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. * [skizze](https://github.com/seiflotfy/skizze) - A probabilistic data-structures service and storage. From 8962c2aad269cee222f07663a93f60fc86eb18c7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 16 Nov 2016 23:52:10 -0200 Subject: [PATCH 0648/3440] added Google Drive client for command line, ref #1108 suggestion by @ManuCart --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3693330cb1a..d2344232d8d 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [climax](http://github.com/tucnak/climax) - An alternative CLI with "human face", in spirit of Go command * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [docopt.go](https://github.com/docopt/docopt.go) - A command-line arguments parser that will make you smile. +* [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline * [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) - A command line and flag parser supporting sub commands. From b28e7eac02e5a2cce293c538f68b6fccc38478d8 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 16 Nov 2016 23:55:38 -0200 Subject: [PATCH 0649/3440] added jet template engine, ref #1095 suggestion by @andradei --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d2344232d8d..c3c84353e9c 100644 --- a/README.md +++ b/README.md @@ -855,6 +855,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ego](https://github.com/benbjohnson/ego) - A 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) - A PDF document generator with high level support for text, drawing and images. +* [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. * [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. * [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. From 46d49f76829b904fafd0d2e2199ee9f4e50aa3f3 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 17 Nov 2016 00:06:45 -0200 Subject: [PATCH 0650/3440] added Dependency Injection, ref #902 I don't know if it's the best category, I need someone to review pls @arvenil --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c3c84353e9c..6f27ff22ed7 100644 --- a/README.md +++ b/README.md @@ -936,6 +936,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goregen](https://github.com/zach-klippenstein/goregen) - A library for generating random strings from regular expressions. * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. * [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) - A shell parser and formatter * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. From f16fe9bc611d75d853c2346104a64b1d67e2f5b3 Mon Sep 17 00:00:00 2001 From: Satish Talim Date: Thu, 17 Nov 2016 08:24:16 +0530 Subject: [PATCH 0651/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f27ff22ed7..0794f233074 100644 --- a/README.md +++ b/README.md @@ -1361,7 +1361,7 @@ Where to discover new Go libraries. * [GopherCon](http://www.gophercon.com/) - Denver, USA * [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR * [GopherCon Dubai](http://www.gophercon.ae/) - Dubai, UAE -* [GopherCon India](http://www.gophercon.in/) - Bengaluru, India +* [GopherCon India](http://www.gophercon.in/) - Pune, India * [GothamGo](http://gothamgo.com/) - New York City, USA ## E-Books From 4fbce3c2d4fbe3a3f58851052167cd3fcceb3553 Mon Sep 17 00:00:00 2001 From: Danniel Magno Date: Thu, 17 Nov 2016 14:12:25 -0200 Subject: [PATCH 0652/3440] Add jsonapi-errors to the list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e461dcbbd55..cba0f44156f 100644 --- a/README.md +++ b/README.md @@ -1052,6 +1052,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httpcontrol](https://github.com/facebookgo/httpcontrol) - Package httpcontrol allows for HTTP transport level control around timeouts and retries. * [hystrix-go](https://github.com/afex/hystrix-go) - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. * [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. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. * [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. From e50f1bb00a2d8285bd7c269b19c57756420f4e83 Mon Sep 17 00:00:00 2001 From: Nick Stogner Date: Sat, 19 Nov 2016 14:50:06 -0500 Subject: [PATCH 0653/3440] Remove httpware (no longer relevant after go 1.7) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index cba0f44156f..cc0ac3ad452 100644 --- a/README.md +++ b/README.md @@ -1193,7 +1193,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). * [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. * [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs. -* [httpware](https://github.com/nstogner/httpware) - Stackable middleware (using net/context) with easy chaining. * [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang. * [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. * [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. From a67df636a087ffb42fa779920da227cce803655b Mon Sep 17 00:00:00 2001 From: sridharv Date: Sun, 20 Nov 2016 08:29:58 +0100 Subject: [PATCH 0654/3440] Add github.com/surullabs/lint --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cc0ac3ad452..2fd67f0c0c5 100644 --- a/README.md +++ b/README.md @@ -1221,6 +1221,7 @@ Go software and plugins. * [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. * [interfacer](https://github.com/mvdan/interfacer) - A linter that suggests interface types. +* [lint](https://github.com/surullabs/lint) - Run linters as part of go test * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 41be6436eac2119310cf2c9494716778ae2bdee0 Mon Sep 17 00:00:00 2001 From: Ruisheng Yang Date: Tue, 22 Nov 2016 12:20:04 +0800 Subject: [PATCH 0655/3440] Removed clevergo (#1187) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 2fd67f0c0c5..48e083dd8af 100644 --- a/README.md +++ b/README.md @@ -1123,7 +1123,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. -* [CleverGo](https://github.com/headwindfly/clevergo) - CleverGo is a simple, easy to use and high performance web framework for Go. * [Echo](https://github.com/labstack/echo) - A fast and unfancy micro web framework for Go. * [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. * [Fireball](https://github.com/zpatrick/fireball) - A more "natural" feeling web framework. From c5a32eac7812970abd92fba32662a4642664da42 Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 22 Nov 2016 10:10:26 +0300 Subject: [PATCH 0656/3440] Update README.md (#1188) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 48e083dd8af..4fe3422fdbf 100644 --- a/README.md +++ b/README.md @@ -452,6 +452,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *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 * [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. From f9811c42706e9184e54776b0bc50fde17a4e37ff Mon Sep 17 00:00:00 2001 From: Atsushi NAGASE Date: Tue, 22 Nov 2016 20:09:36 +0900 Subject: [PATCH 0657/3440] Add amazon-product-advertising-api (#1189) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4fe3422fdbf..a7f2f9a962f 100644 --- a/README.md +++ b/README.md @@ -955,6 +955,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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) - A 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. From 114910edb602c4382d694acaa641ce76651eeade Mon Sep 17 00:00:00 2001 From: Kamil Drazkiewicz Date: Tue, 22 Nov 2016 14:00:35 +0100 Subject: [PATCH 0658/3440] Go-flow added --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a7f2f9a962f..f2a48e62816 100644 --- a/README.md +++ b/README.md @@ -471,6 +471,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Goroutines *Tools for managing and working with Goroutines* +* [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 * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. * [pool](https://github.com/go-playground/pool) - a limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. From 1b5bd733400d4afcc83dbbca9eb701ad4d49ae65 Mon Sep 17 00:00:00 2001 From: Alexander Gehres Date: Wed, 23 Nov 2016 22:50:51 +0100 Subject: [PATCH 0659/3440] add jsonrpc 2.0 client library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f2a48e62816..269d66bd15b 100644 --- a/README.md +++ b/README.md @@ -362,6 +362,7 @@ 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) - A 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) - A JSON-RPC 2.0 HTTP client implementation * [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and distributed systems platform. * [NATS](https://github.com/nats-io/gnatsd) - A 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. From 866b073da1b8e9046ff6e2607d5856b7947cc13a Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Thu, 24 Nov 2016 17:04:46 -0200 Subject: [PATCH 0660/3440] fixed typo --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c92420e97d3..d41c60a3e42 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ To set this list apart from and compliment the excellent [Go wiki Projects page] - 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 -- Needs bibliotica 3 (minimum) to create a new category. +- Needs library 3 (minimum) 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. From d0074052db94282c9324d415689468ec475a46c3 Mon Sep 17 00:00:00 2001 From: Chris Stockton Date: Thu, 24 Nov 2016 13:02:56 -0700 Subject: [PATCH 0661/3440] Add package conv to Miscellaneous category. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f2a48e62816..89c764d8e48 100644 --- a/README.md +++ b/README.md @@ -622,6 +622,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [battery](https://github.com/distatus/battery) - A cross-platform, normalized battery information library. * [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [errors](https://github.com/pkg/errors) - A package that provides simple error handling primitives. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. From 2ae869b30acf20bc7d8737cb2c27a175c5ef8484 Mon Sep 17 00:00:00 2001 From: Adam Hanna Date: Thu, 24 Nov 2016 12:54:40 -0800 Subject: [PATCH 0662/3440] added new jwt library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da7cd24b16d..8bc500c2ae9 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. * [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implmentatino of JSON Web Tokens (JWT). +* [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for goLang http servers with many configuration options. * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. From 08aad0c56d34c34a5b17cb8d5026de3c4733f38c Mon Sep 17 00:00:00 2001 From: Mohamad Jahani Date: Fri, 25 Nov 2016 04:38:13 +0330 Subject: [PATCH 0663/3440] Add Golyrics --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da7cd24b16d..2597711e416 100644 --- a/README.md +++ b/README.md @@ -980,6 +980,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. +* [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library. * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. * [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting. From 3fe4369beeaad4961ca9c5c7523b91aab9c18138 Mon Sep 17 00:00:00 2001 From: Taco de Wolff Date: Fri, 25 Nov 2016 16:05:21 +0100 Subject: [PATCH 0664/3440] Added github.com/tdewolff/minify --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da7cd24b16d..cccbd906177 100644 --- a/README.md +++ b/README.md @@ -1064,6 +1064,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A 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. * [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. From 35bb15804e746f5a0b3c99132655adaaec5c01f0 Mon Sep 17 00:00:00 2001 From: Andrey Date: Sat, 26 Nov 2016 23:40:24 +0300 Subject: [PATCH 0665/3440] Add micha --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 600fa1a8c70..7d1f2d1412d 100644 --- a/README.md +++ b/README.md @@ -992,6 +992,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 API. * [megos](https://github.com/andygrunwald/megos) - A client library for accessing an [Apache Mesos](http://mesos.apache.org/) cluster * [minio-go](https://github.com/minio/minio-go) - Minio Go Library for Amazon S3 compatible cloud storage. +* [micha](https://github.com/onrik/micha) - Go Library fir Telegram bot api. * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. * [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 From 5ae110d83a8809773c0a4fa76f59e6f0ac4c32d5 Mon Sep 17 00:00:00 2001 From: Andrey Date: Sat, 26 Nov 2016 23:45:51 +0300 Subject: [PATCH 0666/3440] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d1f2d1412d..7cde9070554 100644 --- a/README.md +++ b/README.md @@ -992,7 +992,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 API. * [megos](https://github.com/andygrunwald/megos) - A client library for accessing an [Apache Mesos](http://mesos.apache.org/) cluster * [minio-go](https://github.com/minio/minio-go) - Minio Go Library for Amazon S3 compatible cloud storage. -* [micha](https://github.com/onrik/micha) - Go Library fir Telegram bot api. +* [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. * [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 From d8f216c62f515db6c56aac37522ed753ffac3232 Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 27 Nov 2016 10:13:58 +0300 Subject: [PATCH 0667/3440] Fix alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7cde9070554..3b343ee352b 100644 --- a/README.md +++ b/README.md @@ -991,8 +991,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [hipchat (xmpp)](https://github.com/daneharrigan/hipchat) - A golang package to communicate with HipChat over XMPP. * [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 API. * [megos](https://github.com/andygrunwald/megos) - A client library for accessing an [Apache Mesos](http://mesos.apache.org/) cluster -* [minio-go](https://github.com/minio/minio-go) - Minio Go Library for Amazon S3 compatible cloud storage. * [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. * [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 From 5af2cdf5a5f57cba727d6aa2a555999ac5bf764b Mon Sep 17 00:00:00 2001 From: Suraj Patil Date: Tue, 29 Nov 2016 01:45:48 +0530 Subject: [PATCH 0668/3440] Added a new Book (#953) * added a new book https://github.com/thewhitetulip/web-dev-golang-anti-textbook/ * updated title * modified title to fit to requirements * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b343ee352b..cc0787b23ea 100644 --- a/README.md +++ b/README.md @@ -1384,6 +1384,7 @@ Where to discover new Go libraries. * [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/) +* [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) ## Twitter From c099f93a50f7c7667dece2a6aa074bcc1e5175db Mon Sep 17 00:00:00 2001 From: RuiSheng Yang Date: Fri, 2 Dec 2016 19:33:17 +0800 Subject: [PATCH 0669/3440] Update README.md (#1203) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cc0787b23ea..df81cf5d568 100644 --- a/README.md +++ b/README.md @@ -1135,6 +1135,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. * [Fireball](https://github.com/zpatrick/fireball) - A more "natural" feeling web framework. * [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework +* [Gem](https://github.com/go-gem/gem) - A 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. * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io). From 8ec6c3980807c0fd3e81490af420982c4cf37b55 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 2 Dec 2016 20:33:11 +0800 Subject: [PATCH 0670/3440] Added Gitea (#1202) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index df81cf5d568..b61512433bc 100644 --- a/README.md +++ b/README.md @@ -1267,6 +1267,7 @@ Software written in Go. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. +* [Gitea](https://github.com/go-gitea/gitea) - A fork of Gogs, entirely community driven. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. From e723665c25dbb1f691b2fb886957d4d59df3da52 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 6 Dec 2016 14:58:47 -0200 Subject: [PATCH 0671/3440] update negroni path maintained by @urfave --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f27ff22ed7..18237a75e6a 100644 --- a/README.md +++ b/README.md @@ -1194,7 +1194,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httpware](https://github.com/nstogner/httpware) - Stackable middleware (using net/context) with easy chaining. * [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang. * [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. -* [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. +* [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. * [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application. From b98f66aebb031f27e0127ca56a9eca8d79965ceb Mon Sep 17 00:00:00 2001 From: KZ Date: Thu, 8 Dec 2016 00:59:18 +0100 Subject: [PATCH 0672/3440] Add v4l to Video section (#1207) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 02b9583347d..d732be9beaa 100644 --- a/README.md +++ b/README.md @@ -1120,6 +1120,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. +* [v4l](https://github.com/korandiz/v4l) - A video capture library for Linux, written in Go. ## Web Frameworks From c93c596b0f540c55d7a480e99f181c11cca9b671 Mon Sep 17 00:00:00 2001 From: Cesar Gimenes Date: Thu, 8 Dec 2016 10:09:01 -0200 Subject: [PATCH 0673/3440] Add pREST Add pREST a RESTful API for any PostgreSQL database. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d732be9beaa..eef8556bc66 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [rqlite](https://github.com/rqlite/rqlite) - Replicated SQLite, using Raft consensus. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. From 040df9c53204f4cc77c82f3dff08cf519e72e97e Mon Sep 17 00:00:00 2001 From: Cale Hoopes Date: Thu, 8 Dec 2016 10:26:34 -0800 Subject: [PATCH 0674/3440] Add Rye middleware library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eef8556bc66..6f14918a86f 100644 --- a/README.md +++ b/README.md @@ -1207,6 +1207,7 @@ 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 * [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application. # Tools From f7f1782dec61403fc21a4920ebde148d16904762 Mon Sep 17 00:00:00 2001 From: vCaesar Date: Fri, 9 Dec 2016 02:31:18 +0800 Subject: [PATCH 0675/3440] Add Robotgo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eef8556bc66..4b9ec0e26bc 100644 --- a/README.md +++ b/README.md @@ -490,6 +490,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. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) +* [robotgo](https://github.com/go-vgo/robotgo) - Go Native cross-platform system automation,Control the mouse, keyboard and other. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [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. From 5d040a4374d2e53c060abc78f5182d4533121e9f Mon Sep 17 00:00:00 2001 From: vCaesar Date: Fri, 9 Dec 2016 02:44:14 +0800 Subject: [PATCH 0676/3440] Update explain --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b9ec0e26bc..26e9c6a6e7a 100644 --- a/README.md +++ b/README.md @@ -490,7 +490,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. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) -* [robotgo](https://github.com/go-vgo/robotgo) - Go Native cross-platform system automation,Control the mouse, keyboard and other. +* [robotgo](https://github.com/go-vgo/robotgo) - Go Native cross-platform GUI system automation,Control the mouse, keyboard and other. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [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. From 54692f7d38ae159e937d96255a171c1ad948f2b7 Mon Sep 17 00:00:00 2001 From: vCaesar Date: Fri, 9 Dec 2016 02:47:43 +0800 Subject: [PATCH 0677/3440] Update explain --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 26e9c6a6e7a..a0069377fa4 100644 --- a/README.md +++ b/README.md @@ -490,7 +490,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. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) -* [robotgo](https://github.com/go-vgo/robotgo) - Go Native cross-platform GUI system automation,Control the mouse, keyboard and other. +* [robotgo](https://github.com/go-vgo/robotgo) - Go Native cross-platform GUI system automation;Control the mouse, keyboard and other. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [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. From b6fba1b86665d929cf980ff764d5b554027466f2 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Sat, 10 Dec 2016 13:44:48 +0200 Subject: [PATCH 0678/3440] Update Quality standard (#1214) Make clear that we have min coverage percent if package is testable. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d41c60a3e42..0fc90bf3159 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,7 +32,7 @@ To be on the list, project repositories should adhere to these quality standards - Or, for finished projects, issues and pull requests are responded to - Stable or progressing toward stable - Thoroughly documented (README, godoc comments, etc.) -- Tests, where practical +- Tests, where practical. If library/program testable, than coverage should be >= 80% for non-data-related packages and >=90% for data related packages. **Notice**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results. ## Reporting issues From d2a1ada8c6def4b24224c3d0d79e564f14258153 Mon Sep 17 00:00:00 2001 From: lucapette Date: Sun, 11 Dec 2016 18:49:09 +0100 Subject: [PATCH 0679/3440] Fix tiny typo I found a small typo while reading this awesome readme. Thank you for your work! --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f14918a86f..ea1367171db 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. -* [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implmentatino of JSON Web Tokens (JWT). +* [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implementation of JSON Web Tokens (JWT). * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. From 6a657e4098db405794ec711ddcc5d03c6b27d131 Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Mon, 12 Dec 2016 12:40:15 -0800 Subject: [PATCH 0680/3440] Update description for Echo. (#1216) Signed-off-by: Vishal Rana --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ea1367171db..28fcb7b5062 100644 --- a/README.md +++ b/README.md @@ -1133,7 +1133,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. -* [Echo](https://github.com/labstack/echo) - A fast and unfancy micro web framework for Go. +* [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. * [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. * [Fireball](https://github.com/zpatrick/fireball) - A more "natural" feeling web framework. * [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework From e17a9a877b8a8421f35d5fe351a6b647d384a41b Mon Sep 17 00:00:00 2001 From: Aleksandr Tihomirov Date: Wed, 14 Dec 2016 04:53:38 +0200 Subject: [PATCH 0681/3440] Update test to 1.7 and display correct sorting order (#1219) * Update test to 1.7 and display correct sorting order * Fix potential issue with goroutine exiting prematurely * Better naming for category * Remove unnecesarry format --- .travis.yml | 2 +- repo_test.go | 35 ++++++++++++++++++++--------------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/.travis.yml b/.travis.yml index 684c823c20c..45a7b25c770 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: go go: - - 1.4 + - 1.7 sudo: false diff --git a/repo_test.go b/repo_test.go index 5aeaa44ea42..33eeecabbe5 100644 --- a/repo_test.go +++ b/repo_test.go @@ -3,7 +3,6 @@ package main import ( "bytes" "io/ioutil" - "log" "sort" "strings" "testing" @@ -25,19 +24,18 @@ func TestDuplicatedLinks(t *testing.T) { links := make(map[string]bool, 0) query.Find("body a").Each(func(_ int, s *goquery.Selection) { - href, ok := s.Attr("href") - if !ok { - log.Printf("expected '%s' href", s) - t.Fail() - } + t.Run(s.Text(), func(t *testing.T) { + href, ok := s.Attr("href") + if !ok { + t.Error("expected to have href") + } - if links[href] { - log.Printf("duplicated link '%s'", href) - t.Fail() - return - } + if links[href] { + t.Fatalf("duplicated link '%s'", href) + } - links[href] = true + links[href] = true + }) }) } @@ -46,7 +44,12 @@ func testList(t *testing.T, list *goquery.Selection) { testList(t, items) items.RemoveFiltered("ul") }) - checkAlphabeticOrder(t, list) + + category := list.Prev().Text() + + t.Run(category, func(t *testing.T) { + checkAlphabeticOrder(t, list) + }) } func readme() []byte { @@ -80,8 +83,10 @@ func checkAlphabeticOrder(t *testing.T, s *goquery.Selection) { for k, item := range items { if item != sorted[k] { - log.Printf("expected '%s' but actual is '%s'", sorted[k], item) - t.Fail() + t.Errorf("expected '%s' but actual is '%s'", sorted[k], item) } } + if t.Failed() { + t.Logf("expected order is:\n%s", strings.Join(sorted, "\n")) + } } From 1288d7540a64889adc481d9cdc6ece710eefdcbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=20=D0=A2=D0=B5=D0=BB=D1=8E?= =?UTF-8?q?=D1=85?= Date: Thu, 15 Dec 2016 00:02:19 +0700 Subject: [PATCH 0682/3440] Add Azul3D game engine. (#1220) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 28fcb7b5062..b50fc3a1408 100644 --- a/README.md +++ b/README.md @@ -437,6 +437,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Awesome game development libraries.* +* [Azul3D](https://github.com/azul3d/engine) - A 3D game engine written in Go * [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple SNES-like 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. From 794d8846283b270769dbf145fc868352b15a8c86 Mon Sep 17 00:00:00 2001 From: Arthur Silva Date: Wed, 14 Dec 2016 18:52:30 -0200 Subject: [PATCH 0683/3440] add xml-comp --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b50fc3a1408..8372b17acc1 100644 --- a/README.md +++ b/README.md @@ -1338,6 +1338,7 @@ Software written in Go. * [tsuru](https://tsuru.io/) - An extensible and open source Platform as a Service software. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart). * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). +* [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. From 367fce8e2404e63708b17b4bb36836111b6ab664 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Wed, 14 Dec 2016 20:14:08 -0500 Subject: [PATCH 0684/3440] Improve Markdown formatting. Helps #1224. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8372b17acc1..1f8319833e2 100644 --- a/README.md +++ b/README.md @@ -474,6 +474,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Goroutines *Tools for managing and working with Goroutines* + * [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 * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. From 7aad1de40ebe1b82382aa97e817107af52ac7c9a Mon Sep 17 00:00:00 2001 From: Everton Marques Date: Thu, 15 Dec 2016 10:38:44 -0200 Subject: [PATCH 0685/3440] Added github.com/udhos/jazigo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1f8319833e2..d83249de142 100644 --- a/README.md +++ b/README.md @@ -701,6 +701,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gotcp](https://github.com/gansidui/gotcp) - A 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) - An 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 - A Fast and Reliable ARQ Protocol. * [kcptun](https://github.com/xtaci/kcptun) - An extremely simple & fast udp tunnel based on KCP protocol * [lhttp](https://github.com/fanux/lhttp) - A powerful websocket framework, build your IM server more easily. From a86635c62beff0729a4c9b92dc92a05d2d956d75 Mon Sep 17 00:00:00 2001 From: Claudemiro Date: Fri, 16 Dec 2016 00:18:49 -0200 Subject: [PATCH 0686/3440] Adding Darwin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d83249de142..4e9cc56fbf1 100644 --- a/README.md +++ b/README.md @@ -262,6 +262,7 @@ 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 * [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 migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. From de17d05041a4ec4c98b84cfe80614349e4ae1aa0 Mon Sep 17 00:00:00 2001 From: Philip O'Toole Date: Sat, 17 Dec 2016 15:08:05 -0800 Subject: [PATCH 0687/3440] Updated the description for rqlite rqlite has broadened its goals, and this description is a better fit. I am the creator of rqlite. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4e9cc56fbf1..27434fc027c 100644 --- a/README.md +++ b/README.md @@ -255,7 +255,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [levigo](https://github.com/jmhodges/levigo) - Levigo is a Go wrapper for LevelDB. * [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. -* [rqlite](https://github.com/rqlite/rqlite) - Replicated SQLite, using Raft consensus. +* [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. * [Tile38](https://github.com/tidwall/tile38) - A geolocation DB with spatial index and realtime geofencing. From 0f3c690efaac135963c4513c3c2156a57444f306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hauke=20L=C3=B6ffler?= Date: Tue, 20 Dec 2016 01:38:08 +0100 Subject: [PATCH 0688/3440] Add github.com/gliderlabs/ssh. (#1231) Go package that wraps the crypto/ssh package with a higher-level API for building SSH servers. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 27434fc027c..a3a6729287b 100644 --- a/README.md +++ b/README.md @@ -713,6 +713,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. * [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. +* [ssh](https://github.com/gliderlabs/ssh) - Higher-level API for building SSH servers (wraps crypto/ssh). * [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) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. From 81734621a2b123e31ef3648df3cb7fe11e86d3bc Mon Sep 17 00:00:00 2001 From: Abdullah Obaied Date: Tue, 20 Dec 2016 11:45:35 +0100 Subject: [PATCH 0689/3440] Add RAKE.go to NLP section (#1229) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3a6729287b..c07b9f8ff5a 100644 --- a/README.md +++ b/README.md @@ -672,6 +672,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [RAKE.go](https://github.com/Obaied/RAKE.go) - A Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE) * [segment](https://github.com/blevesearch/segment) - A 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) - A sentence tokenizer: converts text into a list of sentences. * [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). From 67ef9f603cf561ff0153f94fec077565254223d6 Mon Sep 17 00:00:00 2001 From: Fernando Alvarez Date: Wed, 21 Dec 2016 04:14:03 +0100 Subject: [PATCH 0690/3440] Add piladb database --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c07b9f8ff5a..568b6e0157f 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. * [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. From 28787d240cf8aef0a3ed6f1c2a344c8550cb85f1 Mon Sep 17 00:00:00 2001 From: Alexey Grachov Date: Wed, 21 Dec 2016 13:14:32 +0200 Subject: [PATCH 0691/3440] Add tbot. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c07b9f8ff5a..d6aa47eee4a 100644 --- a/README.md +++ b/README.md @@ -1011,6 +1011,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [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. From c5dd5afabc5815cdc47f9615af7ab1a5c7b9d5fb Mon Sep 17 00:00:00 2001 From: Ri Xu Date: Fri, 23 Dec 2016 10:20:33 +0800 Subject: [PATCH 0692/3440] Add excelize. (#1235) Library for reading and writing Microsoft Excel (XLSX) files. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 568b6e0157f..c643f935e3d 100644 --- a/README.md +++ b/README.md @@ -1033,6 +1033,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. * [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. +* [excelize](https://github.com/Luxurioust/excelize) - Golang library for reading and writing Microsoft Excel (XLSX) files. * [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. * [fzf](https://github.com/junegunn/fzf) - A command-line fuzzy finder written in Go From 6d36a5556d3059118b8ddbb93aaec536840cecc6 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 24 Dec 2016 02:54:43 -0800 Subject: [PATCH 0693/3440] add Gleam (#1156) * add Gleam * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dabbf178f0b..18ae215b8cd 100644 --- a/README.md +++ b/README.md @@ -359,6 +359,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go * [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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. From 07e7ab250436b7651bd68d486a4d43abb40acd11 Mon Sep 17 00:00:00 2001 From: Maxim Lebedev Date: Sun, 25 Dec 2016 02:03:48 +0500 Subject: [PATCH 0694/3440] Added telegraph library (#1236) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 18ae215b8cd..6992a23700e 100644 --- a/README.md +++ b/README.md @@ -1016,6 +1016,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [telegraph](https://github.com/toby3d/telegraph) - Telegraph publishing platform API client. * [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API. * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package. From 16c958281dc5af8b4d64f43f1e956f88ce17c0d5 Mon Sep 17 00:00:00 2001 From: Slava Date: Sun, 25 Dec 2016 15:47:12 +0000 Subject: [PATCH 0695/3440] Add sflags library (#1237) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6992a23700e..036faecb5e0 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. * [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. +* [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. * [urfave/cli](https://github.com/urfave/cli) - A simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). * [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency. From 035273c47c4f192e49a5045ef85a816be47fd86b Mon Sep 17 00:00:00 2001 From: Tobias Wellnitz Date: Mon, 26 Dec 2016 19:03:24 +0100 Subject: [PATCH 0696/3440] added gosamplerate (#1238) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 036faecb5e0..77a3a18e452 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gaad](https://github.com/Comcast/gaad) - A 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 * [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. * [mp3](https://github.com/tcolgate/mp3) - A native Go MP3 decoder. From dfedd1c0d6c864cefee2238aab9f286955b18d58 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Wed, 28 Dec 2016 00:41:30 +0900 Subject: [PATCH 0697/3440] Fix a word in Ebiten explanation --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 77a3a18e452..0cbb9628e43 100644 --- a/README.md +++ b/README.md @@ -443,7 +443,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Awesome game development libraries.* * [Azul3D](https://github.com/azul3d/engine) - A 3D game engine written in Go -* [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple SNES-like 2D game library in Go +* [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple SNES-style 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. From badc8c6b2391c1eb349bec700ee6cc3911db7f92 Mon Sep 17 00:00:00 2001 From: Kristian Spriggs Date: Tue, 27 Dec 2016 15:58:16 -0500 Subject: [PATCH 0698/3440] Add go-twitch library. (#1239) Go client for interacting with the Twitch v3 API. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0cbb9628e43..b8c7f0178ba 100644 --- a/README.md +++ b/README.md @@ -988,6 +988,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go library for interacting with Mesosphere's Marathon PAAS. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. +* [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API. * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. From 30c07207f88be51fe52f2f32ced578deb00bcfae Mon Sep 17 00:00:00 2001 From: James Polera Date: Wed, 28 Dec 2016 15:08:52 -0500 Subject: [PATCH 0699/3440] Add polera/publicip --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b8c7f0178ba..e735926b2d6 100644 --- a/README.md +++ b/README.md @@ -716,6 +716,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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). * [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [ssh](https://github.com/gliderlabs/ssh) - Higher-level API for building SSH servers (wraps crypto/ssh). From 9368045e5388593a16a356e653d63c7dc015dfb6 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Thu, 29 Dec 2016 13:32:24 +0800 Subject: [PATCH 0700/3440] Add application of Line notification --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e735926b2d6..d063d5f1ea7 100644 --- a/README.md +++ b/README.md @@ -601,6 +601,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. * [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. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. * [go-longpoll](https://github.com/ventu-io/go-longpoll) - PubSub with long polling. From 144fa7aa49b8af922421c189e043afbcc554bec4 Mon Sep 17 00:00:00 2001 From: Eduard Date: Thu, 29 Dec 2016 12:50:56 +0300 Subject: [PATCH 0701/3440] Added framework `Microservice` Adding a framework for the creation of microservices --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e735926b2d6..61cce5489cd 100644 --- a/README.md +++ b/README.md @@ -1177,6 +1177,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. +* [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. * [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. * [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application. From 53fe2832b58cae9e178ed2d145794e2453cff91a Mon Sep 17 00:00:00 2001 From: Ri Xu Date: Sun, 1 Jan 2017 17:46:57 +0800 Subject: [PATCH 0702/3440] Add new: aurora --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 990f0f1c0ab..785b940f8c1 100644 --- a/README.md +++ b/README.md @@ -1281,6 +1281,7 @@ Software written in Go. ### DevOps Tools * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. +* [aurora](https://github.com/Luxurioust/aurora) - Cross-platform web-based Beanstalkd queue server console. * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile. * [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. From 6585b9f7c75421a15140669c0622001a905a225c Mon Sep 17 00:00:00 2001 From: emersion Date: Tue, 3 Jan 2017 16:37:22 +0100 Subject: [PATCH 0703/3440] Adds go-message --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 785b940f8c1..65278d28541 100644 --- a/README.md +++ b/README.md @@ -389,6 +389,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go. * [go-dkim](https://github.com/toorop/go-dkim) - A DKIM library, to sign & verify email. * [go-imap](https://github.com/emersion/go-imap) - An IMAP library for clients and servers +* [go-message](https://github.com/emersion/go-message) - A 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 * [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface From 9111e3f3256a140e4a2cc99e77f7089823dc04c7 Mon Sep 17 00:00:00 2001 From: Adam Hanna Date: Thu, 5 Jan 2017 10:52:45 -0700 Subject: [PATCH 0704/3440] fixed a typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5d281314c99..2384c8f718a 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. -* [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implmentatino of JSON Web Tokens (JWT). +* [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implementation of JSON Web Tokens (JWT). * [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for goLang http servers with many configuration options. * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. From 568e671af4bc8236ab723956065c80ecc8f1a9d1 Mon Sep 17 00:00:00 2001 From: Adam Hanna Date: Thu, 5 Jan 2017 10:53:53 -0700 Subject: [PATCH 0705/3440] removed readme.md.orig --- README.md.orig | 1461 ------------------------------------------------ 1 file changed, 1461 deletions(-) delete mode 100644 README.md.orig diff --git a/README.md.orig b/README.md.orig deleted file mode 100644 index 8636886bf9a..00000000000 --- a/README.md.orig +++ /dev/null @@ -1,1461 +0,0 @@ -# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Join the chat at https://gitter.im/avelino/awesome-go](https://badges.gitter.im/avelino/awesome-go.svg)](https://gitter.im/avelino/awesome-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - - -A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). - - -### Contributing - -Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! - -#### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!* - - -### Contents - -- [Awesome Go](#awesome-go) - - [Audio & Music](#audiomusic) - - [Authentication & OAuth](#authentication--oauth) - - [Command Line](#command-line) - - [Configuration](#configuration) - - [Continuous Integration](#continuous-integration) - - [CSS Preprocessors](#css-preprocessors) - - [Data Structures](#data-structures) - - [Database](#database) - - [Database Drivers](#database-drivers) - - [Date & Time](#date--time) - - [Distributed Systems](#distributed-systems) - - [Email](#email) - - [Embeddable Scripting Languages](#embeddable-scripting-languages) - - [Financial](#financial) - - [Forms](#forms) - - [Game Development](#game-development) - - [Generation & Generics](#generation--generics) - - [Go Compilers](#go-compilers) - - [Goroutines](#goroutines) - - [GUI](#gui) - - [Hardware](#hardware) - - [Images](#images) - - [Logging](#logging) - - [Machine Learning](#machine-learning) - - [Messaging](#messaging) - - [Miscellaneous](#miscellaneous) - - [Natural Language Processing](#natural-language-processing) - - [Networking](#networking) - - [OpenGL](#opengl) - - [ORM](#orm) - - [Package Management](#package-management) - - [Query Language](#query-language) - - [Resource Embedding](#resource-embedding) - - [Science and Data Analysis](#science-and-data-analysis) - - [Security](#security) - - [Serialization](#serialization) - - [Template Engines](#template-engines) - - [Testing](#testing) - - [Text Processing](#text-processing) - - [Third-party APIs](#third-party-apis) - - [Utilities](#utilities) - - [Validation](#validation) - - [Version Control](#version-control) - - [Video](#video) - - [Web Frameworks](#web-frameworks) - - [Middlewares](#middlewares) - - [Actual middlewares](#actual-middlewares) - - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) - - [Windows](#windows) - -- [Tools](#tools) - - [Code Analysis](#code-analysis) - - [Editor Plugins](#editor-plugins) - - [Go Tools](#go-tools) - - [Software Packages](#software-packages) - - [DevOps Tools](#devops-tools) - - [Other Software](#other-software) - -- [Server Applications](#server-applications) - -- [Resources](#resources) - - [Benchmarks](#benchmarks) - - [Conferences](#conferences) - - [E-Books](#e-books) - - [Twitter](#twitter) - - [Websites](#websites) - - [Tutorials](#tutorials) - - -## Audio/Music - -*Libraries for manipulating audio.* - -* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. -* [flac](https://github.com/mewkiz/flac) - A native Go FLAC decoder. -* [gaad](https://github.com/Comcast/gaad) - A 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 -* [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. -* [mp3](https://github.com/tcolgate/mp3) - A native Go MP3 decoder. -* [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. -* [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. -* [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. -* [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. -* [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). -* [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. - - -## Authentication & OAuth - -*Libraries for implementing authentications schemes.* - -* [authboss](https://github.com/go-authboss/authboss) - A modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. -* [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. -* [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. -* [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - A standalone, specification-compliant, OAuth2 server written in Golang. -* [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. -* [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. -* [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. -* [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. -* [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. -<<<<<<< HEAD -* [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implmentatino of JSON Web Tokens (JWT). -* [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for goLang http servers with many configuration options. -======= -* [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implementation of JSON Web Tokens (JWT). ->>>>>>> e60fe8d234e648eb381bfc915665bcb2a20a08a0 -* [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). -* [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. -* [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. -* [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. -* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. - - -## Command Line - - -### Standard CLI - -*Libraries for building standard or basic Command Line applications* - -* [cli](https://github.com/mkideal/cli) - A 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) - An alternative CLI with "human face", in spirit of Go command -* [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions -* [docopt.go](https://github.com/docopt/docopt.go) - A command-line arguments parser that will make you smile. -* [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline -* [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) - A command line and flag parser supporting sub commands. -* [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. -* [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. -* [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. -* [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. -* [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. -* [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. -* [urfave/cli](https://github.com/urfave/cli) - A simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). -* [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency. -* [wmenu](https://github.com/dixonwille/wmenu) - An easy to use menu structure for cli applications that prompts users to make choices. - - -### Advanced Console UIs - -*Libraries for building Console Applications and Console User Interfaces* - -* [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. -* [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. -* [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. -* [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. -* [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. -* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output -* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). -* [uilive](https://github.com/gosuri/uilive) - A library for updating terminal output in realtime. -* [uiprogress](https://github.com/gosuri/uiprogress) - A flexible library to render progress bars in terminal applications. -* [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data. - - -## Configuration - -*Libraries for configuration parsing* - -* [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. -* [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 -* [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 -* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy -* [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 -* [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files -* [store](https://github.com/tucnak/store) - A lightweight configuration manager for Go -* [viper](https://github.com/spf13/viper) - Go configuration with fangs - -## 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 -* [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 - -## CSS Preprocessors - -*Libraries for preprocessing CSS files* - -* [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. - -## Data Structures - -*Generic datastructures and algorithms in Go.* - -* [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. -* [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. -* [bloom](https://github.com/zhenjl/bloom) - Bloom filters implemented in Go. -* [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams -* [count-min-log](https://github.com/seiflotfy/count-min-log) - A 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) - A Go implementation of Adaptive Radix Tree. -* [go-datastructures](https://github.com/Workiva/go-datastructures) - A collection of useful, performant, and thread-safe data structures -* [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. -* [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. -* [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. -* [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. -* [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. -* [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 -* [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) - An in-memory LRU string-interface{} map with expiration for golang -* [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. - -## Database - -*Databases implemented in Go.* - - -* [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. -* [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. -* [buntdb](https://github.com/tidwall/buntdb) - A fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. -* [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. -* [cockroach](https://github.com/cockroachdb/cockroach) - A Scalable, Geo-Replicated, Transactional Datastore -* [couchcache](https://github.com/codingsince1985/couchcache) - A 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) - A home-grown disk-backed key-value store. -* [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. -* [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. -* [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. -* [geocache](https://github.com/melihmucuk/geocache) - An in-memory cache that is suitable for geolocation based applications. -* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. -* [goleveldb](https://github.com/syndtr/goleveldb) - An 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 -* [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. -* [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. -* [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. -* [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. -* [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. -* [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. -* [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. -* [Tile38](https://github.com/tidwall/tile38) - A geolocation DB with spatial index and realtime geofencing. - -*Database schema migration.* - -* [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go -* [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 migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. -* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., -* [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. - -*Database tools.* - -* [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. -* [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/outbrain/orchestrator) - MySQL replication topology manager & visualizer -* [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser -* [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 -* [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) - An 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. -* [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. -* [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. -* [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. -* [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. -* [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. - - -## Database Drivers - -*Libraries for connecting and operating databases.* - -* Relational Databases - * [bgc](https://github.com/viant/bgc) - Datastore Connectivity for BigQuery 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 prototype in go language. - * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. - * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. - * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. - * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). - * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. - * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. - -* NoSQL Databases - * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. - * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. - * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. - * [cayley](https://github.com/google/cayley) - A 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 - * [gocql](http://gocql.github.io) - A 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 - * [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-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in 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/hoisie/redis) - A simple, powerful Redis client for Go. - * [redis](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. - -* Search and Analytic Databases - * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. - * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go. - * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library. - * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. - * [skizze](https://github.com/seiflotfy/skizze) - A probabilistic data-structures service and storage. - -## Date & Time - -*Libraries for working with dates and times.* - -* [carbon](https://github.com/uniplaces/carbon) - A simple Time extension with a lot of util methods, ported from PHP Carbon library. -* [durafmt](https://github.com/hako/durafmt) - A time duration formatting library for Go. -* [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 -* [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) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go -* [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. -* [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. -* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. -* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. -* [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) - A 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) - A JSON-RPC 2.0 HTTP client implementation -* [micro](https://github.com/micro/micro) - A pluggable microservice toolkit and distributed systems platform. -* [NATS](https://github.com/nats-io/gnatsd) - A 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 -* [rpcx](https://github.com/smallnest/rpcx) - A distributed pluggable RPC service framework like alibaba Dubbo. -* [sleuth](https://github.com/ursiform/sleuth) - A 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. -* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. - * [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. - -## Email - -*Libraries that implement email creation and sending* - -* [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) - A DKIM library, to sign & verify email. -* [go-imap](https://github.com/emersion/go-imap) - An IMAP library for clients and servers -* [go-message](https://github.com/emersion/go-message) - A 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 -* [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 -* [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) - A 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) - a 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) - A JavaScript interpreter written in Go -* [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go - - -## Financial - -*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 -* [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 -* [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. -* [formam](https://github.com/monoculum/formam) - decode form's values into a struct. -* [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. -* [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. -* [nosurf](https://github.com/justinas/nosurf) - A CSRF protection middleware for Go. - - -## Game Development - -*Awesome game development libraries.* - -* [Azul3D](https://github.com/azul3d/engine) - A 3D game engine written in Go -* [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple SNES-style 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-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) - A performance oriented 2D/3D math package for Go -* [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang -* [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework -* [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox - - -## Generation & 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 -* [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. -* [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. - - -## Go Compilers - -*Tools for compiling Go to other languages* - -* [gopherjs](https://github.com/gopherjs/gopherjs) - A compiler from Go to JavaScript. -* [llgo](https://github.com/go-llvm/llgo) - LLVM-based compiler for Go. -* [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. - - -## Goroutines - -*Tools for managing and working with Goroutines* - -* [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 -* [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. -* [pool](https://github.com/go-playground/pool) - a limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. -* [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. - - -## GUI - -*Libraries for building GUI Applications* - -* [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 -* [goqt](https://github.com/visualfc/goqt) - Golang bindings to the Qt cross-platform application framework. -* [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. -* [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. -* [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) -* [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. -* [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. -* [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. -* [walk](https://github.com/lxn/walk) - Windows application library kit for Go. - - -## Hardware - -*Libraries, tools, and tutorials for interacting with hardware.* - -See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive list. - -## Images - -*Libraries for manipulating images.* - -* [bild](https://github.com/anthonynsimon/bild) - A collection of image processing algorithms in pure Go. -* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. -* [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. -* [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. -* [gift](https://github.com/disintegration/gift) - Package of image processing filters. -* [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. -* [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library. -* [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. -* [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. -* [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. -* [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. -* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. -* [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. -* [img](https://github.com/hawx/img) - A selection of image manipulation tools. -* [ln](https://github.com/fogleman/ln) - 3D line art rendering in Go. -* [mpo](https://github.com/donatj/mpo) - A decoder and conversion tool for MPO 3D Photos. -* [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go. -* [pt](https://github.com/fogleman/pt) - A path tracing engine written in Go. -* [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods. -* [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. -* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. -* [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. -* [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. - -## Logging - -*Libraries for generating and working with log files.* - -* [glog](https://github.com/golang/glog) - Leveled execution logs for Go. -* [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. -* [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. -* [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. -* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. -* [gone/log](https://github.com/One-com/gone/tree/master/log#readme) - Fast, extendable, full-featured, std-lib source compatible log library. -* [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 -* [logex](https://github.com/chzyer/logex) - An 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) - a 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/). -* [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. -* [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. -* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. -* [mlog](https://github.com/jbrodriguez/mlog) - A 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 -* [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) - A Go package striving to emulate the features of the BSD tail program. -* [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. -* [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. - -## Machine Learning - -*Libraries for Machine Learning.* - -* [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. -* [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-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. -* [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 -* [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. -* [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. -* [neural-go](https://github.com/schuyler/neural-go) - A 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 - - -## Messaging - -*Libraries that implement messaging systems* - -* [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. -* [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. -* [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. -* [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 -* [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. -* [gorush](https://github.com/appleboy/gorush) - A 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) - A 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. -* [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. -* [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. -* [NATS Go Client](https://github.com/nats-io/nats) - A lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library. -* [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs -* [pubsub](https://github.com/tuxychandru/pubsub) - A 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 -* [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. -* [Uniqush-Push](https://github.com/uniqush/uniqush-push) - A redis backed unified push service for server-side notifications to mobile devices. -* [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). - - -## Miscellaneous - -*These libraries were placed here because none of the other categories seemed to fit* - -* [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. -* [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. -* [banner](https://github.com/dimiro1/banner) - Add beautiful banners into your Go applications. -* [battery](https://github.com/distatus/battery) - A cross-platform, normalized battery information library. -* [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. -* [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). -* [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. -* [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. -* [errors](https://github.com/pkg/errors) - A package that provides simple error handling primitives. -* [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) - A generic object pool for Golang. -* [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. -* [go-openapi](https://github.com/go-openapi) - A collection of packages to parse and utilize open-api schemas -* [go-shortid](https://github.com/ventu-io/go-shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. -* [go.uuid](https://github.com/satori/go.uuid) - Implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs. -* [gopsutil](https://github.com/shirou/gopsutil) - A 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 -* [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data. -* [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. -* [health](https://github.com/dimiro1/health) - A Easy to use, extensible health check library. -* [indigo](https://github.com/osamingo/indigo) - A distributed unique ID generator of using Sonyflake and encoded by Base58. -* [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. -* [margelet](https://github.com/zhulik/margelet) - A framework for building Telegram bots. -* [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. -* [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. -* [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... -* [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 -* [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. - -## Natural Language Processing - -*Libraries for working with human languages.* - -* [dpar](https://github.com/danieldk/dpar/) - Transition-based statistical dependency parser. -* [go-eco](https://github.com/ThePaw/go-eco) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. -* [go-i18n](https://github.com/nicksnyder/go-i18n/) - A package and an accompanying tool to work with localized text. -* [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. -* [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. -* [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. -* [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 -* [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. -* [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. -* [RAKE.go](https://github.com/Obaied/RAKE.go) - A Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE) -* [segment](https://github.com/blevesearch/segment) - A 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) - A sentence tokenizer: converts text into a list of sentences. -* [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) - A Go package for n-gram based text categorization, with support for utf-8 and raw text - -## 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) -* [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 -* [ether](https://github.com/songgao/ether) - A 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 -* [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) - A Go library for downloading files or directories from various sources using a URL. -* [go-stun](https://github.com/ccding/go-stun) - A 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) - A Go library for packet processing with libpcap bindings -* [gopcap](https://github.com/akrennmair/gopcap) - A 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) - A 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) - An 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 - A Fast and Reliable ARQ Protocol. -* [kcptun](https://github.com/xtaci/kcptun) - An extremely simple & fast udp tunnel based on KCP protocol -* [lhttp](https://github.com/fanux/lhttp) - A powerful websocket framework, build your IM server more easily. -* [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 -* [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). -* [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. -* [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. -* [ssh](https://github.com/gliderlabs/ssh) - Higher-level API for building SSH servers (wraps crypto/ssh). -* [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) - A Go library for building tcp servers faster. -* [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. -* [winrm](https://github.com/masterzen/winrm) - A Go WinRM client to remotely execute commands on Windows machines - -## OpenGL - -*Libraries for using OpenGL in Go.* - -* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). -* [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. -* [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). -* [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. -* [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. - - -## ORM - -*Libraries that implement Object-Relational Mapping or datamapping techniques.* - -* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. Support: pq/mysql/sqlite3. -* [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. -* [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. -* [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. -* [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. -* [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. -* [reform](https://github.com/go-reform/reform) - A better ORM for Go, based on non-empty interfaces and code generation. -* [SQLBoiler](https://github.com/vattle/sqlboiler) - An ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. -* [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. -* [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. -* [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. -* [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. - -## Package Management - -*Libraries for package and dependency management.* - -* [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. -* [glide](https://github.com/Masterminds/glide) - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. -* [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) - A simple dependency manager for Go (golang), inspired by Bundler. -* [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 - - - - -## Query Language - -* [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. -* [graphql](https://github.com/sevki/graphql) - GraphQL implementation in go. -* [graphql-go](https://github.com/graphql-go/graphql) - An implementation of GraphQL for Go. -* [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. - - -## Resource Embedding - -* [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-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. -* [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. - - -## Science and Data Analysis - -*Libraries for scientific computing and data analyzing.* - -* [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) - A 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) - A complex number library for the Go programming language. -* [gofrac](https://github.com/anschelsc/gofrac) - A (goinstallable) fractions library for go with support for basic arithmetic. -* [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) - A pure Go graph theory library(data structure, algorith visualization) -* [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language -* [mudlark-go](https://github.com/pwil3058/mudlark-go-pkgs) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. -* [ode](https://github.com/ChristopherRabotin/ode) - An 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 -* [stats](https://github.com/montanaflynn/stats) - A 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) - - -## 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) - An 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) -* [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. -* [simple-scrypt](https://github.com/elithrar/simple-scrypt) - an scrypt package with a simple, obvious API and automatic cost calibration built-in. - -## 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 - * [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 -* [goprotobuf](https://github.com/golang/protobuf) - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. -* [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 -* [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. - - -## Server Applications - -* [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) - A local webserver for developers -* [etcd](https://github.com/coreos/etcd) - A 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 -* [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. - - -## Template Engines - -*Libraries and tools for templating and lexing.* - -* [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. -* [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. -* [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. -* [ego](https://github.com/benbjohnson/ego) - A 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) - A PDF document generator with high level support for text, drawing and images. -* [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. -* [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. -* [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. -* [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) - A 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/) - - -## Testing - -*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 - * [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 - * [dsunit](https://github.com/viant/dsunit) - Datastore testing for SQL, NoSQL, structured files. - * [frisby](https://github.com/verdverm/frisby) - a 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) - A more advanced testing framework alternative to gotest. - * [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 - * [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 - * [restit](https://github.com/yookoala/restit) - A 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) - A sacred extension to the standard go testing package. - -* 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 - * [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 - * [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) - A randomized testing system - * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values - * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework - -## Text Processing - -*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 - * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. - * [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 - * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. - * [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. - * [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 - * [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) - A library for generating random strings from regular expressions. - * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - * [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) - A shell parser and formatter - * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. - * [Slugify](https://github.com/avelino/slugify) - A 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) - A string argument parser that understands quotes and backslashes - * [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. - * [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) - A 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) - A Go client library for interacting with CircleCI's API -* [clarifai](https://github.com/samuelcouch/clarifai) - A 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 -* [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 -* [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 API. -* [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) - A Go library for interacting with Mesosphere's Marathon PAAS. -* [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. -* [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API. -* [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. -* [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. -* [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. -* [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. -* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library. -* [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. -* [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting. -* [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. -* [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). -* [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. -* [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) - A Golang SDK for Medium's OAuth2 API. -* [megos](https://github.com/andygrunwald/megos) - A 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. -* [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. -* [slack](https://github.com/nlopes/slack) - Slack API in Go. -* [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 -* [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. -* [telegraph](https://github.com/toby3d/telegraph) - Telegraph publishing platform API client. -* [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API. -* [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) -* [translate](https://github.com/poorny/translate) - Go online translation package. -* [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. - -## Utilities - -*General utilities and tools to make your life easier.* - -* [abutil](https://github.com/bahlo/abutil) - A collection of often-used Golang helpers. -* [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API. -* [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. -* [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. -* [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. -* [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. -* [delve](https://github.com/derekparker/delve) - Go debugger. -* [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. -* [excelize](https://github.com/Luxurioust/excelize) - Golang library for reading and writing Microsoft Excel (XLSX) files. -* [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. -* [fzf](https://github.com/junegunn/fzf) - A 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 -* [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) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. -* [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-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go. -* [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. -* [go-torch](https://github.com/uber/go-torch) - Stochastic flame graph profiler for Go programs. -* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. -* [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. -* [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. -* [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. -* [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) -* [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. -* [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. -* [gojq](https://github.com/elgs/gojq) - JSON query in Golang. -* [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. -* [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. -* [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. -* [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. -* [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. -* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go -* [grequests](https://github.com/levigross/grequests) - An elegant and simple `net/http` wrapper that follows Python's requests library -* [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. -* [hystrix-go](https://github.com/afex/hystrix-go) - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. -* [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. -* [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. -* [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. -* [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. -* [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) - A 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. -* [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. -* [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. -* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. -* [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. -* [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. -* [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. -* [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go. -* [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. -* [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. -* [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. -* [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. -* [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. -* [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. -* [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. -* [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. -* [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. -* [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. -* [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 - -*Libraries for validation.* - -* [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. -* [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. -* [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. - - -## Version Control - -*Libraries for version control.* - -* [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. -* [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. -* [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. -* [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. - - -## Video - -*Libraries for manipulating video.* - -* [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. -* [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. -* [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. -* [v4l](https://github.com/korandiz/v4l) - A video capture library for Linux, written in Go. - - -## Web Frameworks - -*Full stack web frameworks.* - -* [alien](https://github.com/gernest/alien) - A lightweight and fast http router from outer space -* [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. -* [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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. -* [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. -* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. -* [Fireball](https://github.com/zpatrick/fireball) - A more "natural" feeling web framework. -* [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework -* [Gem](https://github.com/go-gem/gem) - A 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. -* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io). -* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API. -* [go-kit](https://github.com/go-kit/kit) - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. -* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's. -* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go. -* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. -* [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis. -* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go. -* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. -* [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. -* [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. -* [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple. -* [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster -* [gongular](https://github.com/mustafaakin/gongular) - A fast Go web framework with input mapping/validation and (DI) Dependency Injection -* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go -* [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. -* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. -* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. -* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. -* [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. -* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. -* [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. -* [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. -* [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. -* [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application. -* [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. -* [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. -* [REST Layer](http://rest-layer.io) - A framework to build REST/GraphQL API on top of databases with mostly configuration over code. -* [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. -* [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. -* [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. -* [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). -* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers -* [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. -* [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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) - A lightweight MVC framework for Go(Golang). -* [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and ouput handling. -* [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. -* [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. -* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. -* [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. -* [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. -* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. - - -### Middlewares - -#### Actual middlewares - -* [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API. -* [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. -* [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. -* [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. -* [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. - -#### Libraries for creating HTTP middlewares - -* [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. -* [catena](https://github.com/codemodus/catena) - http.Handler wrapper catenation (same API as "chain"). -* [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). -* [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. -* [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs. -* [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang. -* [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 -* [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application. - -# Tools - -Go software and plugins. - - -## Code Analysis - -* [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. -* [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. -* [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. -* [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. -* [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. -* [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. -* [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. -* [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. -* [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. -* [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. -* [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. -* [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. -* [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. -* [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. -* [interfacer](https://github.com/mvdan/interfacer) - A linter that suggests interface types. -* [lint](https://github.com/surullabs/lint) - Run linters as part of go test -* [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. - - -## Editor Plugins - -* [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. -* [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) - An Eclipse plugin for Go. -* [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language. -* [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. -* [velour](https://github.com/velour/velour) - An IRC client for the acme editor. -* [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. -* [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. -* [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. - -## Go Tools - -* [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. -* [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. -* [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. -* [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. -* [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. - -## Software Packages - -Software written in Go. - - -### DevOps Tools - -* [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. -* [aurora](https://github.com/Luxurioust/aurora) - Cross-platform web-based Beanstalkd queue server console. -* [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile. -* [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. -* [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. -* [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). -* [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. -* [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. -* [Gitea](https://github.com/go-gitea/gitea) - A fork of Gogs, entirely community driven. -* [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. -* [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. -* [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. -* [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) - A “go build” wrapper to easily add version information into Go binaries -* [gox](https://github.com/mitchellh/gox) - A 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. -* [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. -* [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. -* [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. -* [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. -* [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. -* [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). -* [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the reponse code and data between each call for specific server stress based on its previous response. -* [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) - A Web-based IDE for Teams using Golang. -* [winrm-cli](https://github.com/masterzen/winrm-cli) - A cli tool to remotely execute commands on Windows machines - -### Other Software -* [borg](https://github.com/crufter/borg) - A terminal based search engine for bash snippets -* [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine -* [Cherry](https://github.com/rafael-santiago/cherry) - A 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. -* [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. -* [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. -* [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. -* [fleet](https://github.com/coreos/fleet) - A Distributed init System. -* [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. -* [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. -* [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - A chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. -* [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. -* [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer. -* [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine. -* [ipe](https://github.com/dimiro1/ipe) - An open source Pusher server implementation compatible with Pusher client libraries written in GO. -* [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. -* [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. -* [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. -* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. -* [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. -* [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. -* [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. -* [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. -* [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. -* [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. -* [restic](https://github.com/restic/restic) - De-duplicating backup program. -* [rkt](https://github.com/coreos/rkt) - An App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. -* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. -* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). -* [snap](https://github.com/intelsdi-x/snap) - A powerful telemetry framework. -* [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. -* [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. -* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. -* [toto](https://github.com/blogcin/ToTo) - A simple proxy server written in Go language, can be used together with browser. -* [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. -* [tsuru](https://tsuru.io/) - An extensible and open source Platform as a Service software. -* [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart). -* [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). -* [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. - - - - - - - -# Resources - -Where to discover new Go libraries. - - -## Benchmarks - -* [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. -* [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - A few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. -* [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. -* [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. -* [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. -* [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. -* [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. -* [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. -* [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - A collection of benchmarks for popular Go database/SQL utilities. -* [gospeed](https://github.com/feyeleanor/GoSpeed) - Go micro-benchmarks for calculating the speed of language constructs. -* [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. -* [skynet](https://github.com/atemerev/skynet) - Skynet 1M threads microbenchmark. -* [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. - - -## Conferences - -* [dotGo](http://www.dotgo.eu) - Paris, France -* [GoCon](http://gocon.connpass.com/) - Tokyo, Japan -* [GolangUK](http://golanguk.com/) - London, UK -* [GopherChina](http://gopherchina.org) - Shanghai, China -* [GopherCon](http://www.gophercon.com/) - Denver, USA -* [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR -* [GopherCon Dubai](http://www.gophercon.ae/) - Dubai, UAE -* [GopherCon India](http://www.gophercon.in/) - Pune, India -* [GothamGo](http://gothamgo.com/) - New York City, USA - -## E-Books - -* [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) -* [An Introduction to Programming in Go](http://www.golang-book.com/) -* [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 -* [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/) -* [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) - -## Twitter - -* [@golang](https://twitter.com/golang) -* [@golang_news](https://twitter.com/golang_news) -* [@golangweekly](https://twitter.com/golangweekly) - - -## Websites - -* [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. -* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - A curated list of awesome remote jobs. A lot of them is looking for Go hackers. -* [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. -* [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. -* [Go Blog](http://blog.golang.org) - The official Go blog. -* [Go Challenge](http://golang-challenge.org/) - Learn Go by solving problems and getting feedback from Go experts. -* [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. -* [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. -* [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. -* [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - A collection of Go projects that needs help. Good place to start your open-source way in Go. -* [godoc.org](https://godoc.org/) - Documentation for open source Go packages. -* [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art. -* [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. -* [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. -* [gowalker.org](https://gowalker.org) - Go Project API documentation. -* [r/Golang](https://www.reddit.com/r/golang) - News about Go. -* [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. - - -### Tutorials - -* [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. -* [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. -* [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs. -* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. -* [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. -* [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers. - - - -## Windows - -* [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9 -* [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. From 00620afd29db929ffcb50c7477f53697df3d4503 Mon Sep 17 00:00:00 2001 From: Andrew Minkin Date: Fri, 6 Jan 2017 19:02:39 +0600 Subject: [PATCH 0706/3440] Added fcm library (#1247) * Added fcm library * Fixed Alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 65278d28541..9afd22fe91a 100644 --- a/README.md +++ b/README.md @@ -981,6 +981,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [clarifai](https://github.com/samuelcouch/clarifai) - A 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 * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. * [gcm](https://github.com/Aorioli/gcm) - Go library for Google Cloud Messaging From a89f9bdda78b8a4d4232a732090e41bb244b648a Mon Sep 17 00:00:00 2001 From: Ahmet Alp Balkan Date: Fri, 6 Jan 2017 14:01:45 -0800 Subject: [PATCH 0707/3440] Add rakyll/statik --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9afd22fe91a..910a5fe2e18 100644 --- a/README.md +++ b/README.md @@ -792,6 +792,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. From 03c3ef9c56f266df6998bb81144a4c24f24e91a9 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Sat, 7 Jan 2017 18:52:52 +0800 Subject: [PATCH 0708/3440] Add drone-scp tool (#1249) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 910a5fe2e18..534e1cf061d 100644 --- a/README.md +++ b/README.md @@ -1289,6 +1289,7 @@ Software written in Go. * [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). +* [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. * [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. * [Gitea](https://github.com/go-gitea/gitea) - A fork of Gogs, entirely community driven. From d502f80fab66ca3e6d3cfb22403db4b1e9a786bd Mon Sep 17 00:00:00 2001 From: Ondrej Fabry Date: Sat, 7 Jan 2017 19:15:09 +0100 Subject: [PATCH 0709/3440] Add "go-callvis" program to Go Tools section. (#1251) go-callvis is a development tool to help visualize call graph of your Go program using Graphviz's dot format. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 534e1cf061d..37c4085c8f8 100644 --- a/README.md +++ b/README.md @@ -1272,6 +1272,7 @@ Go software and plugins. * [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. * [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. +* [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. From 23cd8609114a0a5db9565abceabc0fb230253d70 Mon Sep 17 00:00:00 2001 From: "xfx.dev" Date: Mon, 9 Jan 2017 13:55:08 +0800 Subject: [PATCH 0710/3440] add xlog library. (#1250) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37c4085c8f8..d06a26796f3 100644 --- a/README.md +++ b/README.md @@ -567,6 +567,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [slog](https://github.com/ventu-io/slog) - The reference implementation of the Structured Logging Facade (SLF) for Go * [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) - A 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. * [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. * [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. From 228ed15580ea515470f9601d0b3a9adaae5cafe5 Mon Sep 17 00:00:00 2001 From: "xfx.dev" Date: Thu, 12 Jan 2017 11:47:38 +0800 Subject: [PATCH 0711/3440] Add xtcp library. (#1253) A TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d06a26796f3..0bb4ab77cff 100644 --- a/README.md +++ b/README.md @@ -727,6 +727,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. * [winrm](https://github.com/masterzen/winrm) - A Go WinRM client to remotely execute commands on Windows machines +* [xtcp](https://github.com/xfxdev/xtcp) - A TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol. ## OpenGL From e60193cdc4ae617f803262a5a5bf91b2d68dd286 Mon Sep 17 00:00:00 2001 From: olebedev Date: Thu, 12 Jan 2017 15:59:10 +0500 Subject: [PATCH 0712/3440] Add when NLP library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0bb4ab77cff..99fe91e1feb 100644 --- a/README.md +++ b/README.md @@ -685,6 +685,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go package for n-gram based text categorization, with support for utf-8 and raw text +* [when](https://github.com/olebedev/when) - A natural EN and RU language date/time parser with pluggable rules ## Networking From c0cf0b52aab228e3f460276e25c069b7456d37c1 Mon Sep 17 00:00:00 2001 From: olebedev Date: Thu, 12 Jan 2017 16:09:08 +0500 Subject: [PATCH 0713/3440] Add go-tgbot api/router library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0bb4ab77cff..8b4fe13bbb9 100644 --- a/README.md +++ b/README.md @@ -994,6 +994,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go library for interacting with Mesosphere's Marathon PAAS. +* [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API. * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. From cf70bfe64ed0be4f523445f0781c20b90492ebf7 Mon Sep 17 00:00:00 2001 From: Vladimir Mihailenco Date: Fri, 13 Jan 2017 14:54:24 +0200 Subject: [PATCH 0714/3440] Add go-pg (#1204) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0bb4ab77cff..9dc52ed9fb3 100644 --- a/README.md +++ b/README.md @@ -745,6 +745,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* * [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. Support: pq/mysql/sqlite3. +* [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. * [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. * [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. From aaf7fdc074342c36483aee3d637575d042f322e5 Mon Sep 17 00:00:00 2001 From: Mark Bates Date: Fri, 13 Jan 2017 09:07:13 -0500 Subject: [PATCH 0715/3440] Added buffalo, pop, soda, and velvet to the list --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9dc52ed9fb3..699c4eeb2e6 100644 --- a/README.md +++ b/README.md @@ -268,7 +268,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go * [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 migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. +* [migrate](https://github.com/mattes/migrate) - Database migration handling in Golang support MySQL, PostgreSQL, Cassandra, and SQLite. +* [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., * [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. @@ -289,6 +290,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goqu](https://github.com/doug-martin/goqu) - An 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. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. +* [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. @@ -750,6 +752,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. +* [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - A better ORM for Go, based on non-empty interfaces and code generation. * [SQLBoiler](https://github.com/vattle/sqlboiler) - An ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. @@ -885,7 +888,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [raymond](https://github.com/aymerick/raymond) - A 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/) - +* [velvet](https://github.com/gobuffalo/velvet) - A complete handlebars implementation in Go. ## Testing @@ -1123,6 +1126,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. * [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. +* [validate](https://github.com/markbates/validate) - This package provides a framework for writing validations for Go applications. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. @@ -1153,6 +1157,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [alien](https://github.com/gernest/alien) - A lightweight and fast http router from outer space * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. +* [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! * [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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. * [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. From bce3c0abaa4322bf88165970d1f215b5d250940d Mon Sep 17 00:00:00 2001 From: Mark Bates Date: Fri, 13 Jan 2017 09:38:28 -0500 Subject: [PATCH 0716/3440] only add pop once --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 699c4eeb2e6..04b2e374cc4 100644 --- a/README.md +++ b/README.md @@ -269,7 +269,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 migration handling in Golang support MySQL, PostgreSQL, Cassandra, and SQLite. -* [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. +* [soda](https://github.com/markbates/pop/tree/master/soda) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., * [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. @@ -290,7 +290,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goqu](https://github.com/doug-martin/goqu) - An 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. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. -* [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. From 95196f885dc18cb35364e9769096e77138ce12e0 Mon Sep 17 00:00:00 2001 From: Mark Bates Date: Fri, 13 Jan 2017 10:18:38 -0500 Subject: [PATCH 0717/3440] fixed alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 04b2e374cc4..bd74df197d3 100644 --- a/README.md +++ b/README.md @@ -269,8 +269,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 migration handling in Golang support MySQL, PostgreSQL, Cassandra, and SQLite. -* [soda](https://github.com/markbates/pop/tree/master/soda) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [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. *Database tools.* From 7994285f419e7975db7106148f3815fec8536485 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sat, 14 Jan 2017 22:31:41 -0500 Subject: [PATCH 0718/3440] Update mini URL to actively maintained fork. According to the project's README: fogcreek/mini is no longer actively maintained. The new official fork can be found at https://github.com/sasbury/mini. Fixes #1259. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bd74df197d3..9c37cfd33a7 100644 --- a/README.md +++ b/README.md @@ -186,7 +186,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 -* [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files +* [mini](https://github.com/sasbury/mini) - A golang package for parsing ini-style configuration files * [store](https://github.com/tucnak/store) - A lightweight configuration manager for Go * [viper](https://github.com/spf13/viper) - Go configuration with fangs From 45389bc2535575d1d591d2dfae43136c2d4eff75 Mon Sep 17 00:00:00 2001 From: Kamil Samigullin Date: Mon, 16 Jan 2017 05:22:47 +0300 Subject: [PATCH 0719/3440] Add semaphore pattern implementation. (#1257) Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c37cfd33a7..0694026e93b 100644 --- a/README.md +++ b/README.md @@ -486,6 +486,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - a 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. * [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. From 1d60a13c8d0bfe078d943d34e91f98aaa3c57be8 Mon Sep 17 00:00:00 2001 From: Hardik Bagdi Date: Mon, 16 Jan 2017 10:00:41 -0500 Subject: [PATCH 0720/3440] Add spf13's pflag library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0694026e93b..50b114f70c5 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. * [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. +* [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. * [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. From 59d1ac73492f07a9ac5b0678395caf381d87dff4 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Wed, 18 Jan 2017 21:58:35 +0800 Subject: [PATCH 0721/3440] Add trigger Jenkins job tool. (#1264) * Add trigger Jenkins job tool. You can trigger downstream Jenkins jobs from Drone CI server or command line. * Fix alphabetical --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a878d0bfcb8..5af47f5ab65 100644 --- a/README.md +++ b/README.md @@ -1301,6 +1301,7 @@ Software written in Go. * [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). +* [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. * [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. * [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. From 5257cdc5b3a7a15e1eaff20f1dbdf554ebba8ad4 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Thu, 19 Jan 2017 18:31:17 +0300 Subject: [PATCH 0722/3440] sanitize markdown --- repo.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/repo.go b/repo.go index 9c53515c510..40d9bec0821 100644 --- a/repo.go +++ b/repo.go @@ -8,6 +8,7 @@ import ( "text/template" "github.com/gorilla/mux" + "github.com/microcosm-cc/bluemonday" "github.com/russross/blackfriday" ) @@ -59,14 +60,16 @@ func generateHTML() { input, _ := ioutil.ReadFile(readmePath) body := string( - blackfriday.Markdown( - input, - blackfriday.HtmlRenderer( - bfHTMLRendererOpts, - emtyStr, - emtyStr, + bluemonday.UGCPolicy().SanitizeBytes( + blackfriday.Markdown( + input, + blackfriday.HtmlRenderer( + bfHTMLRendererOpts, + emtyStr, + emtyStr, + ), + bfMDOpts, ), - bfMDOpts, ), ) c := &content{Body: body} From e93a4779525445798df7f9b8140ece0719662a6d Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Thu, 19 Jan 2017 18:45:36 +0300 Subject: [PATCH 0723/3440] fix travis config --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 45a7b25c770..3595f1cb21f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,3 +9,4 @@ install: - go get github.com/russross/blackfriday - go get github.com/PuerkitoBio/goquery - go get github.com/gorilla/mux + - go get github.com/microcosm-cc/bluemonday From 9727e019edaa1190f537d2b76aa83a324820bef3 Mon Sep 17 00:00:00 2001 From: Alessandro Leite Date: Thu, 19 Jan 2017 21:18:01 +0100 Subject: [PATCH 0724/3440] Include gota and Go Cheat Sheet * gota is an implementation of dataframes in Go * Go Cheat Sheet is a reference card of Go --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5af47f5ab65..a84ea44ef8c 100644 --- a/README.md +++ b/README.md @@ -217,6 +217,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams * [count-min-log](https://github.com/seiflotfy/count-min-log) - A 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. +* [gota](https://github.com/kniren/gota/) - An implementation of dataframes, series, and data wrangling methods for Go. * [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. * [go-adaptive-radix-tree](https://github.com/plar/go-adaptive-radix-tree) - A Go implementation of Adaptive Radix Tree. * [go-datastructures](https://github.com/Workiva/go-datastructures) - A collection of useful, performant, and thread-safe data structures @@ -1461,6 +1462,7 @@ Where to discover new Go libraries. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. * [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +* [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - A Go's reference card. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers. From 131fc76ad80c57450059f0a1af9c5fb7eab9cdd6 Mon Sep 17 00:00:00 2001 From: Lars-Magnus Skog Date: Mon, 23 Jan 2017 15:33:20 +0100 Subject: [PATCH 0725/3440] Add traefik, reverse-proxy and load balancer --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5af47f5ab65..cf9c28aa5b8 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. +* [traefik](https://github.com/containous/traefik) - A reverse proxy and load balancer with support for multiple backends. * [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. From 50735454266bb1cf45d37bfeb2afeb00edbc1a2e Mon Sep 17 00:00:00 2001 From: Alessandro Leite Date: Mon, 23 Jan 2017 20:02:23 +0100 Subject: [PATCH 0726/3440] Fix the problem with the alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a84ea44ef8c..8c2a57f12db 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams * [count-min-log](https://github.com/seiflotfy/count-min-log) - A 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. -* [gota](https://github.com/kniren/gota/) - An implementation of dataframes, series, and data wrangling methods for Go. * [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. * [go-adaptive-radix-tree](https://github.com/plar/go-adaptive-radix-tree) - A Go implementation of Adaptive Radix Tree. * [go-datastructures](https://github.com/Workiva/go-datastructures) - A collection of useful, performant, and thread-safe data structures @@ -225,6 +224,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. +e* [gota](https://github.com/kniren/gota) - An implementation of dataframes, series, and data wrangling methods for Go. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. * [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 From 97dcd621bf495e4a02cbc875cbd9350baf59f78a Mon Sep 17 00:00:00 2001 From: Alessandro Leite Date: Mon, 23 Jan 2017 20:02:23 +0100 Subject: [PATCH 0727/3440] Fix the problem with the alphabetical order --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a84ea44ef8c..4be4cd57f61 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams * [count-min-log](https://github.com/seiflotfy/count-min-log) - A 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. -* [gota](https://github.com/kniren/gota/) - An implementation of dataframes, series, and data wrangling methods for Go. * [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. * [go-adaptive-radix-tree](https://github.com/plar/go-adaptive-radix-tree) - A Go implementation of Adaptive Radix Tree. * [go-datastructures](https://github.com/Workiva/go-datastructures) - A collection of useful, performant, and thread-safe data structures @@ -225,6 +224,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. +e* [gota](https://github.com/kniren/gota) - An implementation of dataframes, series, and data wrangling methods for Go. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. * [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 @@ -1461,8 +1461,8 @@ Where to discover new Go libraries. * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. * [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs. -* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - A Go's reference card. +* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers. From 03a8935633b09f5b8eed08e4d4c958dd96819fb2 Mon Sep 17 00:00:00 2001 From: Maksym Date: Mon, 23 Jan 2017 21:10:44 +0200 Subject: [PATCH 0728/3440] Add logdump package (#1261) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5af47f5ab65..21659a5bdf2 100644 --- a/README.md +++ b/README.md @@ -556,6 +556,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - An 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) - a structured logger for Go. From 4c715ddbcd503440278d4868759ffee855b759aa Mon Sep 17 00:00:00 2001 From: Nikolay Pavlovich Date: Wed, 25 Jan 2017 01:36:56 +0300 Subject: [PATCH 0729/3440] add govkbot (#1270) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e18fb52fc2d..157ba8370d8 100644 --- a/README.md +++ b/README.md @@ -1015,6 +1015,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. * [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. +* [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. * [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) - A Golang SDK for Medium's OAuth2 API. From cf4097a97d581afbbc01729b107595d2cd456248 Mon Sep 17 00:00:00 2001 From: Florent Messa Date: Thu, 26 Jan 2017 03:09:09 +0100 Subject: [PATCH 0730/3440] Add go-funk utility library (#1256) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 157ba8370d8..e57189ae617 100644 --- a/README.md +++ b/README.md @@ -1067,6 +1067,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [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) - A modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...) * [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-torch](https://github.com/uber/go-torch) - Stochastic flame graph profiler for Go programs. From 31da55c79859204bcc85bfb916d065e7e231943b Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Wed, 25 Jan 2017 21:10:40 -0500 Subject: [PATCH 0731/3440] Add staticcheck, gosimple, unused code analysis tools. (#1271) staticcheck is go vet on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#. gosimple is a linter for Go source code that specialises on simplifying code. unused checks Go code for unused constants, variables, functions and types. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index e57189ae617..a752b5bf839 100644 --- a/README.md +++ b/README.md @@ -1265,9 +1265,12 @@ Go software and plugins. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. * [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. +* [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) - A command line tool, shows the status of repositories that contain Go packages. * [interfacer](https://github.com/mvdan/interfacer) - A linter that suggests interface types. * [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#. +* [unused](https://github.com/dominikh/go-tools/tree/master/cmd/unused) - unused checks Go code for unused constants, variables, functions and types. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 2485db6f446447b584c71ced07e8a6b7e1cb4ab4 Mon Sep 17 00:00:00 2001 From: Steve Yen Date: Thu, 26 Jan 2017 09:36:21 -0800 Subject: [PATCH 0732/3440] added https://github.com/couchbase/moss --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a752b5bf839..0379a68456b 100644 --- a/README.md +++ b/README.md @@ -238,7 +238,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Databases implemented in Go.* - * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. * [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. * [buntdb](https://github.com/tidwall/buntdb) - A fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. @@ -257,6 +256,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. * [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. From ea00f601e4d13ae09ab12912ad8806c538ff9b1d Mon Sep 17 00:00:00 2001 From: Alessandro Leite Date: Thu, 26 Jan 2017 20:49:53 +0100 Subject: [PATCH 0733/3440] Remove an 'e' before the description of the gota's entry --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac5091a496a..7fc45fe51b3 100644 --- a/README.md +++ b/README.md @@ -225,7 +225,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. -e* [gota](https://github.com/kniren/gota) - An implementation of dataframes, series, and data wrangling methods for Go. +* [gota](https://github.com/kniren/gota) - An implementation of dataframes, series, and data wrangling methods for Go. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. * [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 From 59de4c985c86757fee2d4d80276e204c4002b388 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Thu, 26 Jan 2017 14:50:31 -0500 Subject: [PATCH 0734/3440] Add unconvert tool. The unconvert program analyzes Go packages to identify unnecessary type conversions; i.e., expressions T(x) where x already has type T. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0379a68456b..c0926715d15 100644 --- a/README.md +++ b/README.md @@ -1270,6 +1270,7 @@ Go software and plugins. * [interfacer](https://github.com/mvdan/interfacer) - A linter that suggests interface types. * [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. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 51118a568f1ec6f24a2b1a2a03ee909620389b5a Mon Sep 17 00:00:00 2001 From: Devinsuit Date: Fri, 27 Jan 2017 12:11:58 +0300 Subject: [PATCH 0735/3440] Update broken links --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0379a68456b..bd50491d7f8 100644 --- a/README.md +++ b/README.md @@ -381,7 +381,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sleuth](https://github.com/ursiform/sleuth) - A 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. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. + * [dht](https://godoc.org/github.com/anacrolix/dht) - BitTorrent Kademlia DHT implementation. * [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. ## Email From d6eba0233e9d39612981b5e9e5a6aec95acc3b24 Mon Sep 17 00:00:00 2001 From: Ivan Krutov Date: Sun, 22 Jan 2017 12:34:19 +0300 Subject: [PATCH 0736/3440] Added link to ggr server --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index c7cd1cb36bc..3288fe30eac 100644 --- a/README.md +++ b/README.md @@ -940,6 +940,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework +* Selenium tools + * [ggr](https://github.com/aandryashin/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. + ## Text Processing *Libraries for parsing and manipulating texts.* From e5384bfe7189e2a6c886512d510ba5fee1e119ad Mon Sep 17 00:00:00 2001 From: Stefan Buck Date: Sun, 29 Jan 2017 22:53:39 +0100 Subject: [PATCH 0737/3440] Add OctoLinker browser extension [github.com/OctoLinker/browser-extension](https://github.com/OctoLinker/browser-extension) Navigate through projects on GitHub.com efficiently with the OctoLinker browser extension. Most projects consist of many files and third party dependencies. Files are referencing other files and / or dependencies by language specific statements like `import` or `require`. OctoLinker makes these references clickable. No more copy and search. ## Demo ![go](https://cloud.githubusercontent.com/assets/1393946/22407848/b89859ae-e66e-11e6-8ade-bb0e79def3ed.gif) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3288fe30eac..3746827cb88 100644 --- a/README.md +++ b/README.md @@ -1299,6 +1299,7 @@ Go software and plugins. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. +* [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. ## Software Packages From c9720e1b8b35563dfd9f98b1d5b8c8dd3239a886 Mon Sep 17 00:00:00 2001 From: Nick Klauer Date: Tue, 31 Jan 2017 09:19:25 -0600 Subject: [PATCH 0738/3440] Remove indentation for github_flavored_markdown. (#1277) Mention that github_flavored_markdown uses blackfriday, since it's no longer indented under it. Also make indentation consistent (4 spaces) for another indented line. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3288fe30eac..fb70f8ce430 100644 --- a/README.md +++ b/README.md @@ -855,7 +855,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [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 * [goprotobuf](https://github.com/golang/protobuf) - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. @@ -951,11 +951,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 - * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. * [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 + * [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. From 6bacab4837089c24fd88c29b4546e8eef90e1f19 Mon Sep 17 00:00:00 2001 From: Dave Brophy Date: Sat, 4 Feb 2017 11:40:29 +0100 Subject: [PATCH 0739/3440] Add Jennifer to code generation category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f00b1e447d..c188650546e 100644 --- a/README.md +++ b/README.md @@ -470,6 +470,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [jennifer](https://github.com/davelondon/jennifer/) - A code generator for Go. * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. From 44709a825310bcc0799d1fd5872e5b2ca88c15d6 Mon Sep 17 00:00:00 2001 From: Dave Brophy Date: Sat, 4 Feb 2017 21:07:10 +0100 Subject: [PATCH 0740/3440] Update description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c188650546e..f440d66680d 100644 --- a/README.md +++ b/README.md @@ -470,7 +470,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [jennifer](https://github.com/davelondon/jennifer/) - A code generator for Go. +* [jennifer](https://github.com/davelondon/jennifer/) - generate Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. From 181341dc51fd76bcaa987edb96b14ee8420e4ee7 Mon Sep 17 00:00:00 2001 From: Dave Brophy Date: Sat, 4 Feb 2017 21:08:00 +0100 Subject: [PATCH 0741/3440] Description caps --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f440d66680d..e95d7e3ce73 100644 --- a/README.md +++ b/README.md @@ -470,7 +470,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [jennifer](https://github.com/davelondon/jennifer/) - generate Go code without templates. +* [jennifer](https://github.com/davelondon/jennifer/) - Generate Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. From b10dd01dcbdf6cf9aaddc351e1a55b51f1a86603 Mon Sep 17 00:00:00 2001 From: Dave Brophy Date: Sat, 4 Feb 2017 21:09:34 +0100 Subject: [PATCH 0742/3440] Add arbitrary to description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e95d7e3ce73..bacfa8c76b0 100644 --- a/README.md +++ b/README.md @@ -470,7 +470,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [jennifer](https://github.com/davelondon/jennifer/) - Generate Go code without templates. +* [jennifer](https://github.com/davelondon/jennifer/) - Generate arbitrary Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. From e5a23871ac944b56b5b95ddd80a166e6b91f706d Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sat, 4 Feb 2017 22:25:57 -0500 Subject: [PATCH 0743/3440] Remove unneeded trailing slash. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bacfa8c76b0..533a6393c5b 100644 --- a/README.md +++ b/README.md @@ -470,7 +470,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [jennifer](https://github.com/davelondon/jennifer/) - Generate arbitrary Go code without templates. +* [jennifer](https://github.com/davelondon/jennifer) - Generate arbitrary Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. From dcab157154c6c67276a95e57f38c69b179a9add3 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 7 Feb 2017 16:39:41 -0200 Subject: [PATCH 0744/3440] added goreleaser --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 533a6393c5b..6fc9adf182e 100644 --- a/README.md +++ b/README.md @@ -1069,6 +1069,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [goreleaser](https://github.com/goreleaser) - Deliver Go binaries as fast and easily as possible * [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) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications. From 391b293f534f19305eca2d67583331397a2274a2 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 7 Feb 2017 17:34:14 -0200 Subject: [PATCH 0745/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6fc9adf182e..e742acce38c 100644 --- a/README.md +++ b/README.md @@ -1069,7 +1069,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -* [goreleaser](https://github.com/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 * [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) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications. From 5b02e4c0d691fa25039e1c36f7dd5002bd8fcad5 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 7 Feb 2017 17:38:06 -0200 Subject: [PATCH 0746/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e742acce38c..817ce21756e 100644 --- a/README.md +++ b/README.md @@ -1069,7 +1069,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -* [goreleaser](https://github.com/goreleaser/goreleaser) - Deliver Go binaries as fast and easily as possible * [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) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications. @@ -1090,6 +1089,7 @@ 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 * [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. From 1a9fe52c1ab4238b130736cb0a29d34443c64b33 Mon Sep 17 00:00:00 2001 From: Ivan Krutov Date: Wed, 8 Feb 2017 21:39:04 +0300 Subject: [PATCH 0747/3440] Added selenoid entry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 817ce21756e..b9591049842 100644 --- a/README.md +++ b/README.md @@ -943,6 +943,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * Selenium tools * [ggr](https://github.com/aandryashin/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. + * [selenoid](https://github.com/aandryashin/selenoid) - alternative Selenium hub server that launches browsers within containers. ## Text Processing From b58b257730603b1d1e8aa78265fb24ed62f3e826 Mon Sep 17 00:00:00 2001 From: Alexander Grafov Date: Sat, 11 Feb 2017 22:43:21 +0300 Subject: [PATCH 0748/3440] Add go-mode into Editor Plugins --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b9591049842..e61bd46857d 100644 --- a/README.md +++ b/README.md @@ -1286,6 +1286,7 @@ Go software and plugins. ## Editor Plugins * [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. +* [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 * [Goclipse](https://github.com/GoClipse/goclipse) - An Eclipse plugin for Go. * [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language. From 3b0279b0e4edea165c2f0b57f0d95df1fa2ef40a Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 17 Feb 2017 02:16:17 -0500 Subject: [PATCH 0749/3440] Add agext/levenshtein to 'Data Structures' --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e61bd46857d..db6e75bccee 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. * [gota](https://github.com/kniren/gota) - An implementation of dataframes, series, and data wrangling methods for Go. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. +* [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 * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. @@ -1286,7 +1287,7 @@ Go software and plugins. ## Editor Plugins * [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. -* [go-mode](https://github.com/dominikh/go-mode.el) - Go mode for GNU/Emacs. +* [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 * [Goclipse](https://github.com/GoClipse/goclipse) - An Eclipse plugin for Go. * [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language. From 9e18c87340537c8fa5f7f6d6def34eb892df9152 Mon Sep 17 00:00:00 2001 From: hamper Date: Fri, 17 Feb 2017 15:46:05 +0300 Subject: [PATCH 0750/3440] Add spew --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index db6e75bccee..aa0e6b1ce28 100644 --- a/README.md +++ b/README.md @@ -574,6 +574,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [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) - A 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. From 2ed3a82407ab88b98764121ee0768ab93d6954e5 Mon Sep 17 00:00:00 2001 From: Cesar Gimenes Date: Sat, 18 Feb 2017 13:17:28 -0200 Subject: [PATCH 0751/3440] Add goConfig in the Configuration category (#1294) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aa0e6b1ce28..8c4624368a9 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 +* [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. * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [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 From 59a1e413e00da729e64ee7a8b08bc1afa3e6590d Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 18 Feb 2017 14:11:57 -0500 Subject: [PATCH 0752/3440] minor fixes to CONTRIBUTING.md --- CONTRIBUTING.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0fc90bf3159..90c0127b914 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,21 +7,21 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno - **To add, remove, or change things on the list:** Submit a pull request -To set this list apart from and compliment the excellent [Go wiki Projects page](https://golang.org/wiki/Projects), awesome-go is a specially curated list for high-quality, actively maintained Go packages and resources. +To set this list apart from and complement the excellent [Go wiki Projects page](https://golang.org/wiki/Projects), awesome-go is a specially curated list for high-quality, actively maintained Go packages and resources. - List items should be sorted *alphabetically*. -- 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 -- Needs library 3 (minimum) to create a new category. +- 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. +- 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. If you removed our PR template you can find it [here](https://github.com/avelino/awesome-go/blob/master/.github/PULL_REQUEST_TEMPLATE.md). -## Quality standard +## Quality standards To be on the list, project repositories should adhere to these quality standards (http://goreportcard.com/report/**github_user**/**github_repo**): @@ -32,7 +32,7 @@ To be on the list, project repositories should adhere to these quality standards - Or, for finished projects, issues and pull requests are responded to - Stable or progressing toward stable - Thoroughly documented (README, godoc comments, etc.) -- Tests, where practical. If library/program testable, than coverage should be >= 80% for non-data-related packages and >=90% for data related packages. **Notice**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results. +- Tests, where practical. If the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. **Notice**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results. ## Reporting issues From da4433e701bf042ff3d256a950b0dbadbf068a0c Mon Sep 17 00:00:00 2001 From: Ivan Kurnosov Date: Wed, 22 Feb 2017 20:59:51 +1300 Subject: [PATCH 0753/3440] Added github.com/unrolled/secure (#1297) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e79b226b2b1..2c729650d92 100644 --- a/README.md +++ b/README.md @@ -851,6 +851,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) * [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) - an scrypt package with a simple, obvious API and automatic cost calibration built-in. ## Serialization From 6490b6de4dfc7b8a21d554937a0d8cd7ae98dc90 Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Thu, 23 Feb 2017 00:33:49 +1100 Subject: [PATCH 0754/3440] Add https://github.com/neelance/graphql-go (#1285) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c729650d92..a3f4ae2432c 100644 --- a/README.md +++ b/README.md @@ -796,6 +796,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. * [graphql](https://github.com/sevki/graphql) - GraphQL implementation in go. +* [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. * [graphql-go](https://github.com/graphql-go/graphql) - An implementation of GraphQL for Go. * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. From e8da85c32baef45b16b96f54f50374f04afc5df9 Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Thu, 23 Feb 2017 11:07:54 -0300 Subject: [PATCH 0755/3440] Create MAINTAINERS --- MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 MAINTAINERS diff --git a/MAINTAINERS b/MAINTAINERS new file mode 100644 index 00000000000..316defda211 --- /dev/null +++ b/MAINTAINERS @@ -0,0 +1,8 @@ +Avelino (@avelino) +Duke (@dukex) +Dmitri Shuralyov (@shurcooL) +Dobrosław Żybort (@matrixik) +Dean Karn (@joeybloggs) +Kirill Danshin (@kirillDanshin) +Felipe Oliveira (@felipeweb) +Bo-Yi Wu (@appleboy) From b46f4dbb85d4cec94ef965784653977bf62b80ed Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Thu, 23 Feb 2017 11:10:20 -0300 Subject: [PATCH 0756/3440] added maintainer source --- CONTRIBUTING.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 90c0127b914..332f25ef20d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,6 +35,11 @@ To be on the list, project repositories should adhere to these quality standards - Tests, where practical. If the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. **Notice**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results. +## Maintainers + +To make sure every PR is checked, we have [team maintainers](MAINTAINERS). Every PR MUST be reviewed by at least two maintainers before it can get merged. + + ## Reporting issues Please open an issue if you would like to discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. From 2c71c20aa6fdbf2d81e2658db243703cbc0c0741 Mon Sep 17 00:00:00 2001 From: Aofei Sheng Date: Thu, 23 Feb 2017 22:11:16 +0800 Subject: [PATCH 0757/3440] Add Air (#1298) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3f4ae2432c..6a3377b4f36 100644 --- a/README.md +++ b/README.md @@ -1175,6 +1175,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Full stack web frameworks.* +* [Air](https://github.com/sheng/air) - An ideal RESTful web framework for Go. * [alien](https://github.com/gernest/alien) - A lightweight and fast http router from outer space * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. From 870d787e38e3e103e7b29334dda002417d3c1476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=A4=D0=B5=D0=B4?= =?UTF-8?q?=D0=BE=D1=81=D0=B5=D0=B5=D0=B2?= Date: Thu, 23 Feb 2017 19:12:25 +0500 Subject: [PATCH 0758/3440] Add https://github.com/codesenberg/bombardier (#1300) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6a3377b4f36..c37a27bb0d8 100644 --- a/README.md +++ b/README.md @@ -1324,6 +1324,7 @@ Software written in Go. * [aurora](https://github.com/Luxurioust/aurora) - Cross-platform web-based Beanstalkd queue server console. * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile. * [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. +* [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. From c173a96981d1454bd6f7810a225a7c14d95c6bee Mon Sep 17 00:00:00 2001 From: Lime Date: Thu, 23 Feb 2017 22:14:34 +0800 Subject: [PATCH 0759/3440] add hero template engine (#1299) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c37a27bb0d8..f138e4216a7 100644 --- a/README.md +++ b/README.md @@ -893,6 +893,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ego](https://github.com/benbjohnson/ego) - A 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) - A PDF document generator with high level support for text, drawing and images. +* [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 * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. * [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. From b9cb9fc332cad69ac161668f9caa9971c4b0665e Mon Sep 17 00:00:00 2001 From: Alex Bucataru Date: Fri, 24 Feb 2017 23:06:59 -0500 Subject: [PATCH 0760/3440] Add agext/uuid to Miscellaneous (#1301) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f138e4216a7..39fce500e45 100644 --- a/README.md +++ b/README.md @@ -666,6 +666,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [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. * [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 * [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. From 50b33bfcbad01013be095604b12a065fe7662012 Mon Sep 17 00:00:00 2001 From: Milan Nikolic Date: Sat, 25 Feb 2017 15:34:14 +0100 Subject: [PATCH 0761/3440] Add raylib-go (#1302) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 39fce500e45..c636b79f165 100644 --- a/README.md +++ b/README.md @@ -461,6 +461,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework +* [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 From 421a7586044385cf66f3db84be342e9a7d355fb0 Mon Sep 17 00:00:00 2001 From: aihui zhu Date: Sat, 25 Feb 2017 23:11:33 +0800 Subject: [PATCH 0762/3440] add argv library. (#1303) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c636b79f165..3ef65a56d4a 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,7 @@ 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) - A Go library to split command line string as arguments array using the bash syntax. * [cli](https://github.com/mkideal/cli) - A 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) - An alternative CLI with "human face", in spirit of Go command From c3de21eb5fb586a48bf928e87b836b5b77e02921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20Soul=C3=A9?= Date: Sun, 26 Feb 2017 16:22:32 +0100 Subject: [PATCH 0763/3440] Add go-vitotrol, Viessmann Vitotrol ws client (#1252) * Add go-vitotrol, Viessmann Vitotrol ws client Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/maxatome/go-vitotrol - godoc.org: https://godoc.org/github.com/maxatome/go-vitotrol - goreportcard.com: https://goreportcard.com/report/github.com/maxatome/go-vitotrol - coverage service link (gocover, coveralls etc.): https://gocover.io/github.com/maxatome/go-vitotrol **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:** - [x] I have added my package in alphabetical order - [x] I know that this package was not listed before - [x] I have added godoc link to the repo and to my pull request - [x] I have added coverage service link to the repo and to my pull request - [x] I have added goreportcard link to the repo and to my pull request - [x] I have read [Contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#contribution-guidelines) and [Quality standard](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard). Thanks for your PR, you're awesome! :+1: * Reorder go-vitotrol The hyphen counts ! --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3ef65a56d4a..0202a9c1fdb 100644 --- a/README.md +++ b/README.md @@ -623,6 +623,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-vitotrol](https://github.com/maxatome/go-vitotrol) - A client library to Viessmann Vitotrol web service. * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. * [gorush](https://github.com/appleboy/gorush) - A 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) - A 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. From 480ecf38750f10bde210da7a856d46636d3baff7 Mon Sep 17 00:00:00 2001 From: Arvind Chembarpu Date: Wed, 1 Mar 2017 11:39:17 +0530 Subject: [PATCH 0764/3440] Update go-sciter project link (#1306) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0202a9c1fdb..db878f985cc 100644 --- a/README.md +++ b/README.md @@ -505,12 +505,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [goqt](https://github.com/visualfc/goqt) - Golang bindings to the Qt cross-platform application framework. * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) * [robotgo](https://github.com/go-vgo/robotgo) - Go Native cross-platform GUI system automation;Control the mouse, keyboard and other. -* [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [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. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. From acc65b49dd82291f6b4e65e6cb584311c3addd57 Mon Sep 17 00:00:00 2001 From: Kenneth Shaw Date: Thu, 2 Mar 2017 10:56:41 +0700 Subject: [PATCH 0765/3440] Updating README.md with link to chromedp (#1307) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index db878f985cc..250b4181a49 100644 --- a/README.md +++ b/README.md @@ -952,7 +952,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework -* Selenium tools +* Selenium and browser control tools + * [chromedp](https://github.com/knq/chromedp) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. * [ggr](https://github.com/aandryashin/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. * [selenoid](https://github.com/aandryashin/selenoid) - alternative Selenium hub server that launches browsers within containers. From 65d3ba2d37d7177c786aa6def5dbb978a79a078f Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Thu, 2 Mar 2017 11:15:48 -0300 Subject: [PATCH 0766/3440] Add Task (#1305) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 250b4181a49..e0df9db74af 100644 --- a/README.md +++ b/README.md @@ -1141,6 +1141,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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. +* [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. * [xferspdy](https://github.com/monmohan/xferspdy) - Xferspdy provides binary diff and patch library in golang From 160c1a3d9b148925e27fc1da734225d353b1ffd9 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sat, 4 Mar 2017 23:05:28 +0900 Subject: [PATCH 0767/3440] add go-colorable and go-isatty --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e0df9db74af..44b595f3287 100644 --- a/README.md +++ b/README.md @@ -164,7 +164,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. * [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. +* [go-isatty](https://github.com/mattn/go-isatty) - isatty for golang. * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. From 979f867018e530a2315a38d64c3c9fcc0feeab6f Mon Sep 17 00:00:00 2001 From: Zhou Yu Date: Mon, 6 Mar 2017 01:18:20 +0000 Subject: [PATCH 0768/3440] Add copy-pasta (#1304) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 44b595f3287..36528671fc8 100644 --- a/README.md +++ b/README.md @@ -1073,6 +1073,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. * [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. * [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. From 152b840e9c1375fba600375ece549ef18ef25e57 Mon Sep 17 00:00:00 2001 From: Michael Ackley Date: Mon, 6 Mar 2017 22:57:28 -0500 Subject: [PATCH 0769/3440] Add go-finance package. (#936) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6762ce4060..a8e1194cc2e 100644 --- a/README.md +++ b/README.md @@ -432,6 +432,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates From e81695f3f65e74f4149193f93697ef0633a32101 Mon Sep 17 00:00:00 2001 From: Zack Patrick Date: Tue, 7 Mar 2017 12:23:33 -0800 Subject: [PATCH 0770/3440] add rclient --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a8e1194cc2e..ebd82920319 100644 --- a/README.md +++ b/README.md @@ -1136,6 +1136,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go. +* [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. From 080354189583ebcf06dc073c72220e611d8eb523 Mon Sep 17 00:00:00 2001 From: aihui zhu Date: Wed, 8 Mar 2017 23:48:43 +0800 Subject: [PATCH 0771/3440] add flag library. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ebd82920319..72ce3bd6aa5 100644 --- a/README.md +++ b/README.md @@ -141,6 +141,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [docopt.go](https://github.com/docopt/docopt.go) - A 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) - A 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) - A command line and flag parser supporting sub commands. From c93af71aa14b172ae96ce6c1676ab4913aaa59f4 Mon Sep 17 00:00:00 2001 From: Stratos Neiros Date: Sat, 11 Mar 2017 13:50:06 +0200 Subject: [PATCH 0772/3440] Add go-myanimelist to third-party APIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 72ce3bd6aa5..29663621215 100644 --- a/README.md +++ b/README.md @@ -1026,6 +1026,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go library for interacting with Mesosphere's Marathon PAAS. +* [go-myanimelist](https://github.com/nstratos/go-myanimelist) - A Go client library for accessing the [MyAnimeList API](http://myanimelist.net/modules.php?go=api). * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API. From 07705586fd0477c2d1eac609bea5bc4faa5beac9 Mon Sep 17 00:00:00 2001 From: Milan Nikolic Date: Sun, 12 Mar 2017 21:12:47 +0100 Subject: [PATCH 0773/3440] Add go-unarr --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 72ce3bd6aa5..2a0e9cab64c 100644 --- a/README.md +++ b/README.md @@ -662,6 +662,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [go-openapi](https://github.com/go-openapi) - A collection of packages to parse and utilize open-api schemas * [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. * [gopsutil](https://github.com/shirou/gopsutil) - A 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 From e47521d33f4d524ed15ab88b1592bc9127931a4a Mon Sep 17 00:00:00 2001 From: Dave Brophy Date: Tue, 14 Mar 2017 14:47:56 +0100 Subject: [PATCH 0774/3440] Updated username davelondon to dave (#1317) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a20c25468c3..ef26b5a8475 100644 --- a/README.md +++ b/README.md @@ -478,7 +478,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [jennifer](https://github.com/davelondon/jennifer) - Generate arbitrary Go code without templates. +* [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. From 35388f275e937575eb1f9f7dda4a85692ae771ea Mon Sep 17 00:00:00 2001 From: Kyle Banks Date: Tue, 14 Mar 2017 14:28:13 -0400 Subject: [PATCH 0775/3440] Add 'depth' package (#1318) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef26b5a8475..5f2fff4a332 100644 --- a/README.md +++ b/README.md @@ -1322,6 +1322,7 @@ Go software and plugins. ## Go Tools * [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. +* [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. * [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. From d50cf0f7f258a67c7e9b59c0024678ba80ea62c2 Mon Sep 17 00:00:00 2001 From: Ben Gadbois Date: Wed, 15 Mar 2017 11:33:01 -0700 Subject: [PATCH 0776/3440] Update orchestrator repo location. (#1320) orchestrator upstream has moved from https://github.com/outbrain/orchestrator to https://github.com/github/orchestrator. Source: https://github.com/outbrain/orchestrator#orchestrator-upstream-has-moved. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f2fff4a332..e581e54aadb 100644 --- a/README.md +++ b/README.md @@ -289,7 +289,7 @@ 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/outbrain/orchestrator) - MySQL replication topology manager & visualizer +* [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer * [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser * [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. From bf1a240d244286fa6fd9553eeac1821a57155e9e Mon Sep 17 00:00:00 2001 From: Sergey Kibish Date: Wed, 15 Mar 2017 22:52:21 +0200 Subject: [PATCH 0777/3440] Add DDNS Added DDNS --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e581e54aadb..2e757b61e25 100644 --- a/README.md +++ b/README.md @@ -1382,6 +1382,7 @@ Software written 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. * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. +* [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. * [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. * [fleet](https://github.com/coreos/fleet) - A Distributed init System. From ab8db6cb93f018b60e2a6fee8bf11d5a2ad02ab2 Mon Sep 17 00:00:00 2001 From: Mehrdad Arshad Rad Date: Thu, 16 Mar 2017 15:36:59 -0700 Subject: [PATCH 0778/3440] added vflow --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e757b61e25..4cfb1d310ea 100644 --- a/README.md +++ b/README.md @@ -1414,6 +1414,7 @@ Software written in Go. * [toto](https://github.com/blogcin/ToTo) - A simple proxy server written in Go language, can be used together with browser. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - An extensible and open source Platform as a Service software. +* [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX and sFlow collector. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart). * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). * [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. From 6f764e20d3f196c02f4a38b596db5eb1cb6c5158 Mon Sep 17 00:00:00 2001 From: Nick Law Date: Mon, 20 Mar 2017 15:14:40 +1100 Subject: [PATCH 0779/3440] Add go-respond (#1324) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e757b61e25..a6c5b83a35c 100644 --- a/README.md +++ b/README.md @@ -1096,6 +1096,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. * [go-funk](https://github.com/thoas/go-funk) - A modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...) * [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go. +* [go-respond](https://github.com/nicklaw5/go-respond) - A Go package for handling common HTTP JSON responses. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-torch](https://github.com/uber/go-torch) - Stochastic flame graph profiler for Go programs. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. From 2ac56a2e5b638541e4ee5c81a69adb3984534297 Mon Sep 17 00:00:00 2001 From: Kyle Purdon Date: Sun, 19 Mar 2017 22:29:39 -0600 Subject: [PATCH 0780/3440] Add dep. (#1326) Dep is a prototype dependency management tool. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a6c5b83a35c..23c1d0ba83f 100644 --- a/README.md +++ b/README.md @@ -786,6 +786,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for package and dependency management.* +* [dep](https://github.com/golang/dep) - Go dependency tool. * [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. * [glide](https://github.com/Masterminds/glide) - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. * [godep](https://github.com/tools/godep) - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies. From ef7679aaad43a753b6bdd4260efe62c5b64949bd Mon Sep 17 00:00:00 2001 From: Rafael Jesus Date: Mon, 20 Mar 2017 14:42:42 -0300 Subject: [PATCH 0781/3440] Add tempdb to database list Add tempdb to database list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23c1d0ba83f..e7c6d5ea1cc 100644 --- a/README.md +++ b/README.md @@ -269,6 +269,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. +* [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. * [Tile38](https://github.com/tidwall/tile38) - A geolocation DB with spatial index and realtime geofencing. From 68d0a55500b2115b397b98e508ed1db490a0591d Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Tue, 21 Mar 2017 15:12:45 +0800 Subject: [PATCH 0782/3440] Add esayssh-proxy package. Signed-off-by: Bo-Yi Wu --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23c1d0ba83f..6a932d1af6b 100644 --- a/README.md +++ b/README.md @@ -1349,6 +1349,7 @@ Software written in Go. * [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. * [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. * [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. +* [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via ProxyCommand. * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. * [Gitea](https://github.com/go-gitea/gitea) - A fork of Gogs, entirely community driven. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. From 9f606ec75b909f3cde55e4a20be5b2bd4d5e8c12 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Tue, 21 Mar 2017 15:16:48 +0800 Subject: [PATCH 0783/3440] fix testing Signed-off-by: Bo-Yi Wu --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a932d1af6b..3ade6693d56 100644 --- a/README.md +++ b/README.md @@ -1349,8 +1349,8 @@ Software written in Go. * [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. * [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. * [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. -* [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via ProxyCommand. * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. +* [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. * [Gitea](https://github.com/go-gitea/gitea) - A fork of Gogs, entirely community driven. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. From 83220234496b81539db3fc2f0bd783ef8559f9d5 Mon Sep 17 00:00:00 2001 From: reujab Date: Tue, 21 Mar 2017 18:45:48 -0400 Subject: [PATCH 0784/3440] fixed markup (Vegeta) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 23c1d0ba83f..4214cdc3945 100644 --- a/README.md +++ b/README.md @@ -1372,7 +1372,7 @@ Software written in Go. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). * [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the reponse code and data between each call for specific server stress based on its previous response. -* [Vegeta] (https://github.com/tsenart/vegeta) - HTTP load testing tool and library. It's over 9000! +* [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) - A Web-based IDE for Teams using Golang. * [winrm-cli](https://github.com/masterzen/winrm-cli) - A cli tool to remotely execute commands on Windows machines From 59e0c4ee901a7b3f051dfac4ba01eb9e586509b3 Mon Sep 17 00:00:00 2001 From: Rafael Jesus Date: Thu, 23 Mar 2017 01:56:36 -0300 Subject: [PATCH 0785/3440] Add nsq-event-bus --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23c1d0ba83f..d27373543fe 100644 --- a/README.md +++ b/README.md @@ -635,6 +635,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [NATS Go Client](https://github.com/nats-io/nats) - A 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 [go-nsq](https://github.com/nsqio/go-nsq) topic and channel. * [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs * [pubsub](https://github.com/tuxychandru/pubsub) - A 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 From b0d5beec08b514ae781cc8d79eb3c101b2edfd7a Mon Sep 17 00:00:00 2001 From: hamper Date: Sun, 26 Mar 2017 08:13:42 +0300 Subject: [PATCH 0786/3440] Update davecheney/profile repo location. (#1328) It has moved to https://github.com/pkg/profile. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a32b2e24e4..11b14ae947e 100644 --- a/README.md +++ b/README.md @@ -1141,7 +1141,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. -* [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go. +* [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. * [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. From 730bc0f96600f27f35443881a7dce3e5cbe44d5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Sun, 26 Mar 2017 05:51:33 -0300 Subject: [PATCH 0787/3440] Add @cassiobotaro as new maintainer (#1338) --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index 316defda211..cbcc347873e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6,3 +6,4 @@ Dean Karn (@joeybloggs) Kirill Danshin (@kirillDanshin) Felipe Oliveira (@felipeweb) Bo-Yi Wu (@appleboy) +Cássio Botaro (@cassiobotaro) From 05f9cfe92b649636204e9e8241b94eb8b15881e8 Mon Sep 17 00:00:00 2001 From: Rafael Jesus Date: Sun, 26 Mar 2017 10:15:37 -0300 Subject: [PATCH 0788/3440] Remove go-nsq link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d27373543fe..7f562f5f583 100644 --- a/README.md +++ b/README.md @@ -635,7 +635,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [NATS Go Client](https://github.com/nats-io/nats) - A 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 [go-nsq](https://github.com/nsqio/go-nsq) topic and channel. +* [nsq-event-bus](https://github.com/rafaeljesus/nsq-event-bus) - A tiny wrapper around NSQ topic and channel. * [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs * [pubsub](https://github.com/tuxychandru/pubsub) - A 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 From 8b800991e2ea0a1193022b38e31cb6c56ca185d4 Mon Sep 17 00:00:00 2001 From: Steve Domino Date: Mon, 27 Mar 2017 20:37:05 -0600 Subject: [PATCH 0789/3440] Added Scribble (#1287) * Added Scribble * scribble -> Scribble --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c28e6f2d0f7..8534663c822 100644 --- a/README.md +++ b/README.md @@ -269,6 +269,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. +* [Scribble](https://github.com/nanobox-io/golang-scribble) - A tiny flat file JSON store. * [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. From 93ce9d95d634c8207a7ab363b4f932355f29b54b Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Tue, 28 Mar 2017 08:47:21 +0300 Subject: [PATCH 0790/3440] migrated #603, sanathp/statusok (#1340) * Added StatusOk Software to DevOps Tools * add go.uik link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8534663c822..e8afb0eca90 100644 --- a/README.md +++ b/README.md @@ -1376,6 +1376,7 @@ Software written in Go. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). * [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the reponse code and data between each call for specific server stress based on its previous response. +* [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. * [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) - A Web-based IDE for Teams using Golang. From 08f4f61571b7a288c0652ce1877b042223c7d2bf Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Tue, 28 Mar 2017 18:54:43 +0300 Subject: [PATCH 0791/3440] Add cdp to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e8afb0eca90..24eddd52d3b 100644 --- a/README.md +++ b/README.md @@ -963,6 +963,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework * 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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. * [ggr](https://github.com/aandryashin/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. * [selenoid](https://github.com/aandryashin/selenoid) - alternative Selenium hub server that launches browsers within containers. From 07f64927ccca2fd3d636b61daf9df0883e94e73d Mon Sep 17 00:00:00 2001 From: Aaron Longwell Date: Thu, 30 Mar 2017 10:40:04 -0700 Subject: [PATCH 0792/3440] Add library for Trello API. (#1344) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 24eddd52d3b..72002e48d29 100644 --- a/README.md +++ b/README.md @@ -1071,6 +1071,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API. * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A 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. From 8772663c039719764ea7f40b3997c7b295c8c119 Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Sat, 1 Apr 2017 04:43:44 +0300 Subject: [PATCH 0793/3440] Add wstest (#1345) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 72002e48d29..741935c49fd 100644 --- a/README.md +++ b/README.md @@ -947,6 +947,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [restit](https://github.com/yookoala/restit) - A 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) - A sacred extension to the standard go testing package. + * [wstest](https://github.com/posener/wstest) - A websocket client for unit-testing a websocket http.Handler. * Mock * [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects From 65e7b536567c229ce0a503db9c8584e2e734085b Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Sat, 1 Apr 2017 11:03:34 +0300 Subject: [PATCH 0794/3440] Add tarfs (#1347) * Extract 'files' section from 'miscellaneous' * Add tarfs --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 741935c49fd..87de1d53325 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Distributed Systems](#distributed-systems) - [Email](#email) - [Embeddable Scripting Languages](#embeddable-scripting-languages) + - [Files](#files) - [Financial](#financial) - [Forms](#forms) - [Game Development](#game-development) @@ -429,6 +430,15 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go +## Files + +*Libraries for handling files and file systems* + +* [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. +* [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [tarfs](https://github.com/posener/tarfs) - An implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. + + ## Financial *Packages for accounting and finance* @@ -650,7 +660,6 @@ 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* -* [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. * [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. * [banner](https://github.com/dimiro1/banner) - Add beautiful banners into your Go applications. @@ -675,7 +684,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [indigo](https://github.com/osamingo/indigo) - A distributed unique ID generator of using Sonyflake and encoded by Base58. * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [margelet](https://github.com/zhulik/margelet) - A framework for building Telegram bots. -* [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [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. From b44ea2902c1e4a16a97b5444f7c0c9b5dc677ce9 Mon Sep 17 00:00:00 2001 From: Mathieu Cornic Date: Sun, 2 Apr 2017 09:37:57 +0200 Subject: [PATCH 0795/3440] Add Hermes - Golang package that generates clean, responsive HTML e-mails --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87de1d53325..151a29c9e06 100644 --- a/README.md +++ b/README.md @@ -406,6 +406,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-message](https://github.com/emersion/go-message) - A 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 From 0fe490e6ece9ffb3d483c0cd3c4850c6afb68b27 Mon Sep 17 00:00:00 2001 From: Raimondas Date: Tue, 4 Apr 2017 06:18:39 +0100 Subject: [PATCH 0796/3440] go-money (#1353) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 151a29c9e06..d22118732ac 100644 --- a/README.md +++ b/README.md @@ -447,6 +447,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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/FlashBoys/go-money) - Implementation of Fowler's Money pattern * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates From 8b27cfc8ee14f6709c2324adde8ee5f9f73b00dd Mon Sep 17 00:00:00 2001 From: Yaron Sumel Date: Wed, 5 Apr 2017 21:57:31 +0300 Subject: [PATCH 0797/3440] add filler to awesome-go (#1355) * Update README.md * new grapes github.com repo: https://github.com/yaronsumel/grapes godoc.org: https://godoc.org/github.com/yaronsumel/grapes goreportcard.com: https://goreportcard.com/report/github.com/yaronsumel/grapes coverage service link (gocover, coveralls etc.): N/A 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 read Contribution guidelines and Quality standard. * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d22118732ac..a12b5bcba6d 100644 --- a/README.md +++ b/README.md @@ -1103,6 +1103,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [excelize](https://github.com/Luxurioust/excelize) - Golang library for reading and writing Microsoft Excel (XLSX) files. * [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) - A 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. From b9d01199a957ac81444a67e274bd7a0e29d4303d Mon Sep 17 00:00:00 2001 From: Ben Gadbois Date: Thu, 6 Apr 2017 21:32:24 -0700 Subject: [PATCH 0798/3440] Adding github.com/bengadbois/pewpew (#1356) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a12b5bcba6d..11fd8e73b2f 100644 --- a/README.md +++ b/README.md @@ -1386,6 +1386,7 @@ Software written in Go. * [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. +* [Pewpew](https://github.com/bengadbois/pewpew) - Flexible HTTP command line stress tester. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). From 870335f9331103420372e6db21d74b9867df74b5 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Sat, 8 Apr 2017 23:22:12 +0300 Subject: [PATCH 0799/3440] Fix false positives in duplicate link detection. (#1341) Fixes #1336. --- repo_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo_test.go b/repo_test.go index 33eeecabbe5..8bbff86103c 100644 --- a/repo_test.go +++ b/repo_test.go @@ -23,7 +23,7 @@ func TestDuplicatedLinks(t *testing.T) { query := startQuery() links := make(map[string]bool, 0) - query.Find("body a").Each(func(_ int, s *goquery.Selection) { + query.Find("body li > a:first-child").Each(func(_ int, s *goquery.Selection) { t.Run(s.Text(), func(t *testing.T) { href, ok := s.Attr("href") if !ok { From be11846d5be3a7e01d8c6e842fb06fe1800335b0 Mon Sep 17 00:00:00 2001 From: Alexey Popov <6425762@gmail.com> Date: Sun, 9 Apr 2017 04:33:21 +0300 Subject: [PATCH 0800/3440] Added binder - Go to Lua binding library, based on github.com/yuin/gopher-lua (#1354) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 11fd8e73b2f..73e7d720d65 100644 --- a/README.md +++ b/README.md @@ -419,6 +419,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - A port of the Lua 5.2 VM to pure Go From fca4314be81398c946408ccfd7f59a670035f029 Mon Sep 17 00:00:00 2001 From: Abado Jack Mtulla Date: Mon, 10 Apr 2017 11:51:37 +0530 Subject: [PATCH 0801/3440] Add whatlanggo (#1361) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 73e7d720d65..cb4569e32f5 100644 --- a/README.md +++ b/README.md @@ -721,6 +721,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go package for n-gram based text categorization, with support for utf-8 and raw text +* [whatlanggo](https://github.com/abadojack/whatlanggo) - A 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) - A natural EN and RU language date/time parser with pluggable rules ## Networking From 86f5b68e956155570d59bfe21ddafbfb9dbccf1a Mon Sep 17 00:00:00 2001 From: Raimondas Date: Mon, 10 Apr 2017 09:55:26 +0100 Subject: [PATCH 0802/3440] Updating go-money link (#1362) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cb4569e32f5..d96e17c4f63 100644 --- a/README.md +++ b/README.md @@ -448,7 +448,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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/FlashBoys/go-money) - Implementation of Fowler's Money pattern +* [go-money](https://github.com/rhymond/go-money) - Implementation of Fowler's Money pattern * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates From 5148f54ef7fc174c10002a6177bf1209d71eb8a8 Mon Sep 17 00:00:00 2001 From: "Giovanni T. Parra" Date: Mon, 10 Apr 2017 11:59:41 -0300 Subject: [PATCH 0803/3440] added GJSON. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d96e17c4f63..1941aa0692c 100644 --- a/README.md +++ b/README.md @@ -1110,6 +1110,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of 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) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications. From 46828a38ffe33ad051d30bc9dde3844ae3198516 Mon Sep 17 00:00:00 2001 From: Kamil Samigullin Date: Tue, 11 Apr 2017 15:45:54 +0300 Subject: [PATCH 0804/3440] add retry to Utilities section (#1364) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d96e17c4f63..df9a7e1202c 100644 --- a/README.md +++ b/README.md @@ -1166,6 +1166,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. +* [retry](https://github.com/kamilsk/retry) - Functional mechanism based on context to perform actions repetitively until successful. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. From 19888a7ae1fd120b35036b33ab97508601c2fe3f Mon Sep 17 00:00:00 2001 From: Kenny Grant Date: Thu, 13 Apr 2017 03:22:40 +0100 Subject: [PATCH 0805/3440] Added Golang News to websites (#1367) * Added Golang News to websites * Sacrifice to the CI Gods --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e010b95698e..15bf37da780 100644 --- a/README.md +++ b/README.md @@ -1518,6 +1518,7 @@ Where to discover new Go libraries. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - A collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. +* [Golang News](https://golangnews.com) - Links and news about Go programming. * [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art. * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. * [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. From 1d852b61124cd2a94559915ee36f787444e0cdcb Mon Sep 17 00:00:00 2001 From: Asdine El Hrychy Date: Fri, 14 Apr 2017 00:35:20 +0200 Subject: [PATCH 0806/3440] Update Storm phrase and category (#1366) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 15bf37da780..c68656fc56e 100644 --- a/README.md +++ b/README.md @@ -792,7 +792,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - A better ORM for Go, based on non-empty interfaces and code generation. * [SQLBoiler](https://github.com/vattle/sqlboiler) - An ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. -* [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. @@ -1173,6 +1172,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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 * [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. From 8c94511091191f8024cf0e2390ee2e0499c956cf Mon Sep 17 00:00:00 2001 From: Maxim Lebedev Date: Sat, 15 Apr 2017 16:15:32 +0500 Subject: [PATCH 0807/3440] Rename telegraph to go-telegraph (#1369) I renamed the package and moved it in the list in alphabetical order. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c68656fc56e..1914da9ea20 100644 --- a/README.md +++ b/README.md @@ -1045,6 +1045,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Go library for interacting with Mesosphere's Marathon PAAS. * [go-myanimelist](https://github.com/nstratos/go-myanimelist) - A 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. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API. @@ -1079,7 +1080,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [telegraph](https://github.com/toby3d/telegraph) - Telegraph publishing platform API client. * [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API. * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package. From 0052e250ab8391c7dd92b738d79d7f7cbc61c90a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Onat=20Yi=C4=9Fit=20Mercan?= Date: Sun, 16 Apr 2017 04:13:51 +0100 Subject: [PATCH 0808/3440] add onatm/clockwerk to Utilities category (#1370) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1914da9ea20..ba45bae5ab9 100644 --- a/README.md +++ b/README.md @@ -1094,6 +1094,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [abutil](https://github.com/bahlo/abutil) - A collection of often-used Golang helpers. * [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API. * [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. +* [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 * [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. From cc9934bc78b973d22fdc22307c6ef6274e97c63a Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Tue, 18 Apr 2017 10:47:51 +0900 Subject: [PATCH 0809/3440] Remove "SNES-style" from Ebiten description. (#1372) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ba45bae5ab9..fa496bd1585 100644 --- a/README.md +++ b/README.md @@ -471,7 +471,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Awesome game development libraries.* * [Azul3D](https://github.com/azul3d/engine) - A 3D game engine written in Go -* [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple SNES-style 2D game library in Go +* [Ebiten](https://github.com/hajimehoshi/ebiten) - A 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. From 9d2f268df7776d2099e08abfc81c4f92e2d0ba19 Mon Sep 17 00:00:00 2001 From: Peter Benjamin Date: Mon, 24 Apr 2017 05:28:27 -0700 Subject: [PATCH 0810/3440] Add app (#1383) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa496bd1585..8814fe45ae3 100644 --- a/README.md +++ b/README.md @@ -522,6 +522,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building GUI Applications* +* [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. * [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. From a15c565761939cae0ba122b47d0b31e23df08294 Mon Sep 17 00:00:00 2001 From: Peter Benjamin Date: Mon, 24 Apr 2017 05:29:33 -0700 Subject: [PATCH 0811/3440] Add web app golang tutorial (#1384) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8814fe45ae3..03bae923c74 100644 --- a/README.md +++ b/README.md @@ -1532,6 +1532,7 @@ Where to discover new Go libraries. ### Tutorials * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. +* [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - A golang ebook intro how to build a web app with golang. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. * [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - A Go's reference card. From 7aeb55da197fadd314f6684c8b6cab014012f6a8 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Mon, 24 Apr 2017 20:47:01 +0300 Subject: [PATCH 0812/3440] Update my email --- MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index cbcc347873e..f77c2b10a5d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3,7 +3,7 @@ Duke (@dukex) Dmitri Shuralyov (@shurcooL) Dobrosław Żybort (@matrixik) Dean Karn (@joeybloggs) -Kirill Danshin (@kirillDanshin) +Kirill Danshin (@kirillDanshin) Felipe Oliveira (@felipeweb) Bo-Yi Wu (@appleboy) Cássio Botaro (@cassiobotaro) From 01a55e341cb9e1fe33acb78dd1be3c2679fa80d3 Mon Sep 17 00:00:00 2001 From: Yang Luo Date: Tue, 25 Apr 2017 08:55:10 +0800 Subject: [PATCH 0813/3440] Add casbin into readme. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 03bae923c74..4e0b6fdac39 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for implementing authentications schemes.* * [authboss](https://github.com/go-authboss/authboss) - A modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. +* [casbin](https://github.com/hsluoyz/casbin) - An authorization library that supports access control models like ACL, RBAC, ABAC. * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - A standalone, specification-compliant, OAuth2 server written in Golang. From 99295da7a1544ab65861b53164ebe37094a6f4b2 Mon Sep 17 00:00:00 2001 From: Michael Wolber Date: Tue, 25 Apr 2017 23:00:11 +0200 Subject: [PATCH 0814/3440] Added 'templify' and 'feiertage' (#1022) * Added 'templify' and 'feiertage' * Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4e0b6fdac39..6e96a1c6821 100644 --- a/README.md +++ b/README.md @@ -363,6 +363,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [carbon](https://github.com/uniplaces/carbon) - A simple Time extension with a lot of util methods, ported from PHP Carbon library. * [durafmt](https://github.com/hako/durafmt) - A time duration formatting library for Go. +* [feiertage](https://github.com/wlbr/feiertage) - A set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecoast, Thanksgiving... * [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. @@ -838,6 +839,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [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. From 2676c37c0ea34a04459cbe4fda9d20ee8209c1d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Wed, 26 Apr 2017 15:06:53 -0300 Subject: [PATCH 0815/3440] Fix #1393 (#1394) closes #1393 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6e96a1c6821..d33c3cf0be1 100644 --- a/README.md +++ b/README.md @@ -863,7 +863,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A pure Go graph theory library(data structure, algorith visualization) * [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language -* [mudlark-go](https://github.com/pwil3058/mudlark-go-pkgs) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. * [ode](https://github.com/ChristopherRabotin/ode) - An 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 From abe07904db002b648c022789caec4409db9fb6cd Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Thu, 27 Apr 2017 17:08:18 +0300 Subject: [PATCH 0816/3440] working on gfm compat (helps #1224) (#1342) * fix gfm compat Signed-off-by: Kirill Danshin * fix .travis.yml Signed-off-by: Kirill Danshin * requested changes Signed-off-by: Kirill Danshin --- .travis.yml | 5 +---- repo.go | 36 ++---------------------------------- 2 files changed, 3 insertions(+), 38 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3595f1cb21f..6c8461ef488 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,4 @@ go: sudo: false install: - - go get github.com/russross/blackfriday - - go get github.com/PuerkitoBio/goquery - - go get github.com/gorilla/mux - - go get github.com/microcosm-cc/bluemonday + - go get -t -v ./... diff --git a/repo.go b/repo.go index 40d9bec0821..d04831cc8aa 100644 --- a/repo.go +++ b/repo.go @@ -8,8 +8,7 @@ import ( "text/template" "github.com/gorilla/mux" - "github.com/microcosm-cc/bluemonday" - "github.com/russross/blackfriday" + gfm "github.com/shurcooL/github_flavored_markdown" ) // memory usage optimizations @@ -24,25 +23,6 @@ const ( readmePath = "./README.md" tplPath = "tmpl/tmpl.html" idxPath = "tmpl/index.html" - - bfHTMLRendererOpts = 0 | - blackfriday.HTML_USE_XHTML | - blackfriday.HTML_USE_SMARTYPANTS | - blackfriday.HTML_SMARTYPANTS_FRACTIONS | - blackfriday.HTML_SMARTYPANTS_DASHES | - blackfriday.HTML_SMARTYPANTS_LATEX_DASHES - - bfMDOpts = 0 | - blackfriday.EXTENSION_NO_INTRA_EMPHASIS | - blackfriday.EXTENSION_TABLES | - blackfriday.EXTENSION_FENCED_CODE | - blackfriday.EXTENSION_AUTOLINK | - blackfriday.EXTENSION_STRIKETHROUGH | - blackfriday.EXTENSION_SPACE_HEADERS | - blackfriday.EXTENSION_HEADER_IDS | - blackfriday.EXTENSION_BACKSLASH_LINE_BREAK | - blackfriday.EXTENSION_DEFINITION_LISTS | - blackfriday.EXTENSION_AUTO_HEADER_IDS ) var ( @@ -59,19 +39,7 @@ func generateHTML() { exec.Command(git, pull).Output() input, _ := ioutil.ReadFile(readmePath) - body := string( - bluemonday.UGCPolicy().SanitizeBytes( - blackfriday.Markdown( - input, - blackfriday.HtmlRenderer( - bfHTMLRendererOpts, - emtyStr, - emtyStr, - ), - bfMDOpts, - ), - ), - ) + body := string(gfm.Markdown(input)) c := &content{Body: body} t := template.Must(template.ParseFiles(tplPath)) From ec060430a4294c5fa2f20de8e9d9744963163710 Mon Sep 17 00:00:00 2001 From: Dean Karn Date: Fri, 28 Apr 2017 09:24:25 -0400 Subject: [PATCH 0817/3440] Cleanup Web Frameworks section The Web Framework section was becoming littered with libraries, routers etc. that should not be considered "Web Frameworks", to that end some libraries have been shuffled to their appropriate sections and a new "Routers" sub-section was created to distinguish url routers and multiplexers. I propose that some guidelines or a checklist should be created to help determine what should be considered a "Web Framework" vs Something Else to avoid the section becoming cluttered again; but that can be done at a later date. --- README.md | 56 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index d33c3cf0be1..37f4abe4063 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Version Control](#version-control) - [Video](#video) - [Web Frameworks](#web-frameworks) + - [Routers](#routers) - [Middlewares](#middlewares) - [Actual middlewares](#actual-middlewares) - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) @@ -125,6 +126,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. +* [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). * [traefik](https://github.com/containous/traefik) - A reverse proxy and load balancer with support for multiple backends. * [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. @@ -380,6 +382,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. +* [go-kit](https://github.com/go-kit/kit) - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [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) - A very newbility RPC Library, support 25+ languages now. @@ -643,10 +646,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. +* [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-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) - A client library to Viessmann Vitotrol web service. +* [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 * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. * [gorush](https://github.com/appleboy/gorush) - A 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) - A 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. @@ -693,6 +700,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [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 * [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. @@ -1219,63 +1227,58 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Full stack web frameworks.* * [Air](https://github.com/sheng/air) - An ideal RESTful web framework for Go. -* [alien](https://github.com/gernest/alien) - A lightweight and fast http router from outer space * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. -* [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. * [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! -* [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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. * [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. -* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. * [Fireball](https://github.com/zpatrick/fireball) - A more "natural" feeling web framework. * [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework * [Gem](https://github.com/go-gem/gem) - A 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. -* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io). * [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API. -* [go-kit](https://github.com/go-kit/kit) - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. * [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's. * [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go. -* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. * [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis. * [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go. -* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. -* [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. * [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. -* [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple. * [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster * [gongular](https://github.com/mustafaakin/gongular) - A fast Go web framework with input mapping/validation and (DI) Dependency Injection -* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go -* [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. -* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. -* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. -* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. * [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. -* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. * [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. -* [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. -* [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application. -* [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. * [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. * [REST Layer](http://rest-layer.io) - A framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. -* [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). -* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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) - A lightweight MVC framework for Go(Golang). -* [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and ouput handling. -* [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. -* [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. -* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. + + +### Routers + +* [alien](https://github.com/gernest/alien) - A 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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. +* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. +* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. +* [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. +* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. +* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. +* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. +* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. +* [mux](https://github.com/gorilla/mux) - A 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. +* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers +* [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. +* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. @@ -1302,6 +1305,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [stats](https://github.com/thoas/stats) - A 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. # Tools From a3f22de1567345f6d8f0b3d22a6e5622d085c5c4 Mon Sep 17 00:00:00 2001 From: Dean Karn Date: Fri, 28 Apr 2017 09:40:01 -0400 Subject: [PATCH 0818/3440] Correct Routers Section Alpha --- README.md | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 37f4abe4063..425a68586a5 100644 --- a/README.md +++ b/README.md @@ -60,10 +60,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Version Control](#version-control) - [Video](#video) - [Web Frameworks](#web-frameworks) - - [Routers](#routers) - [Middlewares](#middlewares) - [Actual middlewares](#actual-middlewares) - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) + - [Routers](#routers) - [Windows](#windows) - [Tools](#tools) @@ -1260,28 +1260,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. -### Routers - -* [alien](https://github.com/gernest/alien) - A 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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. -* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. -* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. -* [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. -* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. -* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. -* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. -* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. -* [mux](https://github.com/gorilla/mux) - A 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. -* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers -* [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. -* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. -* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. - - ### Middlewares #### Actual middlewares @@ -1307,6 +1285,29 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [stats](https://github.com/thoas/stats) - A 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) - A 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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. +* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. +* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. +* [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. +* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. +* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. +* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. +* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. +* [mux](https://github.com/gorilla/mux) - A 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. +* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers +* [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. +* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. +* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. + + # Tools Go software and plugins. From c9c4e5ea7d83d603d461a3671fc9c536a40813bd Mon Sep 17 00:00:00 2001 From: Dean Karn Date: Fri, 28 Apr 2017 11:56:23 -0400 Subject: [PATCH 0819/3440] Add pure http router (#1397) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 425a68586a5..0962ec04a30 100644 --- a/README.md +++ b/README.md @@ -1302,6 +1302,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mux](https://github.com/gorilla/mux) - A 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 * [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. * [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. From f8c56173d1ac805b86d5db1522f85c3079297af6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C5=A0trba?= Date: Fri, 28 Apr 2017 18:08:48 +0200 Subject: [PATCH 0820/3440] Add Pixel (Game Development) package. (#1395) A hand-crafted 2D game library in Go. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0962ec04a30..ad6313dff3d 100644 --- a/README.md +++ b/README.md @@ -486,6 +486,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework +* [Pixel](https://github.com/faiface/pixel) - A 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 From f5b702b7e3e82d9d1d748ef15b14fe3fedb67f65 Mon Sep 17 00:00:00 2001 From: Brian Voelker Date: Fri, 28 Apr 2017 20:26:52 -0500 Subject: [PATCH 0821/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad6313dff3d..9df83d018a0 100644 --- a/README.md +++ b/README.md @@ -690,6 +690,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [gopsutil](https://github.com/shirou/gopsutil) - A 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 * [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data. From b0097967ddd21214fded8e9271de31347e511b72 Mon Sep 17 00:00:00 2001 From: Stefan Nilsson Date: Mon, 1 May 2017 19:13:30 +0200 Subject: [PATCH 0822/3440] Add githut.com/yourbasic/graph (#1399) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9df83d018a0..fb69331494c 100644 --- a/README.md +++ b/README.md @@ -873,6 +873,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A pure Go graph theory library(data structure, algorith visualization) * [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language +* [graph](https://github.com/yourbasic/graph) - A library of basic graph algorithms * [ode](https://github.com/ChristopherRabotin/ode) - An 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 From 31d3c6989eb411f9452b296f8d93f17c2d1da5ce Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Mon, 1 May 2017 18:53:00 -0300 Subject: [PATCH 0823/3440] recommendation new coverage runner cover.run (#1400) * recommendation new coverage runner cover.run Shows how many percent that covered the package * added link all covers sites --- .github/PULL_REQUEST_TEMPLATE.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8c1dadd7cae..de01c8b367d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,11 +1,13 @@ Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** -- github.com repo: -- godoc.org: -- goreportcard.com: -- coverage service link (gocover, coveralls etc.): +- github.com repo: +- godoc.org: +- goreportcard.com: +- coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `![cover.run go](https://cover.run/go/github.com/user/repository.svg)` + +Very good coverage **Note**: that new categories can be added only when there are 3 packages or more. From 79a160d2c461493fef14d7cf3a58dd12b4af4ec1 Mon Sep 17 00:00:00 2001 From: Minjie Zha Date: Mon, 1 May 2017 14:54:39 -0700 Subject: [PATCH 0824/3440] Add alice (#1392) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb69331494c..7162762d6fa 100644 --- a/README.md +++ b/README.md @@ -674,6 +674,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) - An additive dependency injection container for Golang. * [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. * [banner](https://github.com/dimiro1/banner) - Add beautiful banners into your Go applications. From f1305b4281393c60945e0b166b551f00adb9a891 Mon Sep 17 00:00:00 2001 From: Johnny Boursiquot Date: Wed, 3 May 2017 09:20:18 -0400 Subject: [PATCH 0825/3440] Add Capital Go conference. (#1402) A Go conference in Washington, D.C., USA. Next one is on April 24-25. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7162762d6fa..35702ff7840 100644 --- a/README.md +++ b/README.md @@ -1489,6 +1489,7 @@ Where to discover new Go libraries. ## Conferences +* [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA * [dotGo](http://www.dotgo.eu) - Paris, France * [GoCon](http://gocon.connpass.com/) - Tokyo, Japan * [GolangUK](http://golanguk.com/) - London, UK From 847e09f9766589b7c09b947b5f526d394ff551ad Mon Sep 17 00:00:00 2001 From: Thiago Avelino Date: Thu, 4 May 2017 03:08:51 -0300 Subject: [PATCH 0826/3440] Add Beerpay's badge --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 35702ff7840..d103acc21d3 100644 --- a/README.md +++ b/README.md @@ -1559,3 +1559,8 @@ Where to discover new Go libraries. * [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9 * [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. + +## Support on Beerpay +Hey dude! Help me out for a couple of :beers:! + +[![Beerpay](https://beerpay.io/avelino/awesome-go/badge.svg?style=beer-square)](https://beerpay.io/avelino/awesome-go) [![Beerpay](https://beerpay.io/avelino/awesome-go/make-wish.svg?style=flat-square)](https://beerpay.io/avelino/awesome-go?focus=wish) \ No newline at end of file From e6ded4bed22ba0bdf698f91c8524b8fe86394387 Mon Sep 17 00:00:00 2001 From: Adam Hanna Date: Thu, 4 May 2017 10:19:32 -0700 Subject: [PATCH 0827/3440] added github.com/adam-hanna/sessions --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d103acc21d3..9a8d6a881ba 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). +* [sessions](https://github.com/adam-hanna/sessions) - A dead simple, highly performant, highly customizable sessions service for go http servers. * [traefik](https://github.com/containous/traefik) - A reverse proxy and load balancer with support for multiple backends. * [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. @@ -365,7 +366,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [carbon](https://github.com/uniplaces/carbon) - A simple Time extension with a lot of util methods, ported from PHP Carbon library. * [durafmt](https://github.com/hako/durafmt) - A time duration formatting library for Go. -* [feiertage](https://github.com/wlbr/feiertage) - A set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecoast, Thanksgiving... +* [feiertage](https://github.com/wlbr/feiertage) - A set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecoast, Thanksgiving... * [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. @@ -424,7 +425,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) +* [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) - A port of the Lua 5.2 VM to pure Go @@ -1120,7 +1121,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [excelize](https://github.com/Luxurioust/excelize) - Golang library for reading and writing Microsoft Excel (XLSX) files. * [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. +* [filler](https://github.com/yaronsumel/filler) - small utility to fill structs using "fill" tag. * [fzf](https://github.com/junegunn/fzf) - A 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. @@ -1176,7 +1177,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. -* [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. +* [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. @@ -1563,4 +1564,4 @@ Where to discover new Go libraries. ## Support on Beerpay Hey dude! Help me out for a couple of :beers:! -[![Beerpay](https://beerpay.io/avelino/awesome-go/badge.svg?style=beer-square)](https://beerpay.io/avelino/awesome-go) [![Beerpay](https://beerpay.io/avelino/awesome-go/make-wish.svg?style=flat-square)](https://beerpay.io/avelino/awesome-go?focus=wish) \ No newline at end of file +[![Beerpay](https://beerpay.io/avelino/awesome-go/badge.svg?style=beer-square)](https://beerpay.io/avelino/awesome-go) [![Beerpay](https://beerpay.io/avelino/awesome-go/make-wish.svg?style=flat-square)](https://beerpay.io/avelino/awesome-go?focus=wish) From edc8973675096fa0984dc68a5fe0dacc35bae0d5 Mon Sep 17 00:00:00 2001 From: Mehrdad Arshad Rad Date: Fri, 5 May 2017 10:38:51 -0700 Subject: [PATCH 0828/3440] vFlow updated, I added netflow protocol feature to vFlow. (#1405) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d103acc21d3..6ebf6d9d8a4 100644 --- a/README.md +++ b/README.md @@ -1454,7 +1454,7 @@ Software written in Go. * [toto](https://github.com/blogcin/ToTo) - A simple proxy server written in Go language, can be used together with browser. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - An extensible and open source Platform as a Service software. -* [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX and sFlow collector. +* [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart). * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). * [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. @@ -1563,4 +1563,4 @@ Where to discover new Go libraries. ## Support on Beerpay Hey dude! Help me out for a couple of :beers:! -[![Beerpay](https://beerpay.io/avelino/awesome-go/badge.svg?style=beer-square)](https://beerpay.io/avelino/awesome-go) [![Beerpay](https://beerpay.io/avelino/awesome-go/make-wish.svg?style=flat-square)](https://beerpay.io/avelino/awesome-go?focus=wish) \ No newline at end of file +[![Beerpay](https://beerpay.io/avelino/awesome-go/badge.svg?style=beer-square)](https://beerpay.io/avelino/awesome-go) [![Beerpay](https://beerpay.io/avelino/awesome-go/make-wish.svg?style=flat-square)](https://beerpay.io/avelino/awesome-go?focus=wish) From afb6bfb5617a48131a40443238b2b9bc3089b91f Mon Sep 17 00:00:00 2001 From: Peter Benjamin Date: Fri, 5 May 2017 10:49:51 -0700 Subject: [PATCH 0829/3440] Add hub (#1381) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6ebf6d9d8a4..e2691fd2d97 100644 --- a/README.md +++ b/README.md @@ -1155,6 +1155,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grequests](https://github.com/levigross/grequests) - An elegant and simple `net/http` wrapper that follows Python's requests library * [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. * [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. From ab057ffbdbd942b39b909ff490cd09cecab678b7 Mon Sep 17 00:00:00 2001 From: Peter Benjamin Date: Fri, 5 May 2017 10:51:24 -0700 Subject: [PATCH 0830/3440] Add ctop (#1378) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e2691fd2d97..88ca2d28b49 100644 --- a/README.md +++ b/README.md @@ -1113,6 +1113,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. From b5ead1e438bd647cce307c1a99a6df8cea1fe15d Mon Sep 17 00:00:00 2001 From: Peter Benjamin Date: Fri, 5 May 2017 10:52:18 -0700 Subject: [PATCH 0831/3440] Add gojson (#1380) * Add gojson * Fix gojson alpha order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 88ca2d28b49..2e95d7bd207 100644 --- a/README.md +++ b/README.md @@ -1144,6 +1144,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. * [gojq](https://github.com/elgs/gojq) - JSON query in Golang. +* [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. * [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. * [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. From a25500acb492c8b18a5690ea9280e12a12413d18 Mon Sep 17 00:00:00 2001 From: Peter Benjamin Date: Fri, 5 May 2017 10:52:54 -0700 Subject: [PATCH 0832/3440] Add mmake (#1379) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e95d7bd207..afd7989898c 100644 --- a/README.md +++ b/README.md @@ -1168,6 +1168,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A 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. +* [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. From d660929ea26b55e77cbd05e56af47bf924a0ab15 Mon Sep 17 00:00:00 2001 From: Peter Benjamin Date: Fri, 5 May 2017 10:54:26 -0700 Subject: [PATCH 0833/3440] Add usql (#1377) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index afd7989898c..0d26a469b48 100644 --- a/README.md +++ b/README.md @@ -1196,6 +1196,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [usql](https://github.com/knq/usql) - usql is a universal command-line interface for SQL databases. * [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. From 47a8bd0c56e9ba94f4185c3c1ebf1d432b5c23ac Mon Sep 17 00:00:00 2001 From: Peter Benjamin Date: Fri, 5 May 2017 10:55:13 -0700 Subject: [PATCH 0834/3440] Add goreporter (#1376) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0d26a469b48..e36631f8101 100644 --- a/README.md +++ b/README.md @@ -1150,6 +1150,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 +* [goreporter](https://github.com/wgliang/goreporter) - A 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) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. From 0eafd6c8b147a40f15aeafbb64353d7f5a0e05a1 Mon Sep 17 00:00:00 2001 From: Lanre Adelowo Date: Fri, 5 May 2017 21:53:21 +0100 Subject: [PATCH 0835/3440] Added onecache --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7392ab8bcc8..f93fdb1e73e 100644 --- a/README.md +++ b/README.md @@ -1177,6 +1177,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) - A 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. From 442bb29b1d85b7b5cb5bed4f065fcdf057c5f453 Mon Sep 17 00:00:00 2001 From: esemplastic Date: Sat, 6 May 2017 20:56:00 +0300 Subject: [PATCH 0836/3440] Add UNIS, the modern architecture pattern for string utilities Current Test Cov: 79% Build Passing: true Awesome Badge: true --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7392ab8bcc8..9086967931c 100644 --- a/README.md +++ b/README.md @@ -1198,6 +1198,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Common Architecture™ for String Utilities in Go. * [usql](https://github.com/knq/usql) - usql is a universal command-line interface for SQL databases. * [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. From 9d447e26a4cd21942f6e28f92848116e33180273 Mon Sep 17 00:00:00 2001 From: Peter Benjamin Date: Sun, 7 May 2017 08:00:11 -0700 Subject: [PATCH 0837/3440] Add wuzz (#1375) * feat: add wuzz * Fix wuzz location --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7392ab8bcc8..a3d8abe73c9 100644 --- a/README.md +++ b/README.md @@ -1199,6 +1199,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [usql](https://github.com/knq/usql) - usql is a universal command-line interface for SQL databases. +* [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 * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. From 64b250bcafcde9783aead552edff516221153fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20L=C3=B3pez?= Date: Sun, 7 May 2017 17:51:23 +0200 Subject: [PATCH 0838/3440] KrakenD framework added (#1348) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3d8abe73c9..abddc4163bd 100644 --- a/README.md +++ b/README.md @@ -389,6 +389,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [hprose](https://github.com/hprose/hprose-golang) - A 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) - A 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) - A pluggable microservice toolkit and distributed systems platform. * [NATS](https://github.com/nats-io/gnatsd) - A 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. From 7be598f2e0ecbd1e1455801e8bd53879755735eb Mon Sep 17 00:00:00 2001 From: Guillaume de Sagazan Date: Sun, 7 May 2017 19:32:11 +0200 Subject: [PATCH 0839/3440] add JayDiff (#1401) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index abddc4163bd..c86839f4903 100644 --- a/README.md +++ b/README.md @@ -1442,6 +1442,7 @@ Software written in Go. * [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer. * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine. * [ipe](https://github.com/dimiro1/ipe) - An open source Pusher server implementation compatible with Pusher client libraries written in GO. +* [JayDiff](https://github.com/yazgazan/jaydiff) - A JSON diff utility written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. From 1a54536cefe7b68a01a6128351e96a6e28329108 Mon Sep 17 00:00:00 2001 From: Quentin Renard Date: Sun, 7 May 2017 19:32:58 +0200 Subject: [PATCH 0840/3440] Add go-astilectron (#1403) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c86839f4903..eafff7acf42 100644 --- a/README.md +++ b/README.md @@ -531,6 +531,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building GUI Applications* * [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. +* [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. From 0da117ad9f44d44a6bd0364d47a2a34498db7cb2 Mon Sep 17 00:00:00 2001 From: Ben Gadbois Date: Sun, 7 May 2017 11:38:29 -0700 Subject: [PATCH 0841/3440] Removing EasySSH (#1359) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index eafff7acf42..69a5855d751 100644 --- a/README.md +++ b/README.md @@ -1394,7 +1394,6 @@ Software written in Go. * [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. * [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. * [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. -* [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. * [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. * [Gitea](https://github.com/go-gitea/gitea) - A fork of Gogs, entirely community driven. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. From 7901f8af138dd81dfaaa2377b28244e59bac9786 Mon Sep 17 00:00:00 2001 From: Danny van Kooten Date: Sun, 7 May 2017 22:32:13 +0200 Subject: [PATCH 0842/3440] add grender (#1358) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 69a5855d751..33fc20aa7c4 100644 --- a/README.md +++ b/README.md @@ -936,6 +936,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ego](https://github.com/benbjohnson/ego) - A 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) - A 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 * [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 * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. From d3c441daf29d57f93a433cc474f667af47e112e5 Mon Sep 17 00:00:00 2001 From: Vasiliy Toporov Date: Sun, 7 May 2017 23:32:35 +0300 Subject: [PATCH 0843/3440] Add section about Go packages for the IoT. (#1357) --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index 33fc20aa7c4..afc798f13ac 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [GUI](#gui) - [Hardware](#hardware) - [Images](#images) + - [IoT](#iot-internet-of-things) - [Logging](#logging) - [Machine Learning](#machine-learning) - [Messaging](#messaging) @@ -580,6 +581,19 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. * [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. +## IoT (Internet of Things) + +*Libraries for programming devices of the IoT.* + +* [connectordb](https://github.com/connectordb/connectordb) - An Open-Source Platform for Quantified Self & IoT. +* [devices](https://github.com/goiot/devices) - Suite of libraries for IoT devices, experimental for x/exp/io. +* [eywa](https://github.com/xcodersun/eywa) - Project Eywa is essentially a connection manager that keeps track of connected devices. +* [flogo](https://github.com/tibcosoftware/flogo) - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. +* [gatt](https://github.com/paypal/gatt) - Gatt is a Go package for building Bluetooth Low Energy peripherals. +* [gobot](https://github.com/hybridgroup/gobot/) - Gobot is a framework for robotics, physical computing, and the Internet of Things. +* [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. +* [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. + ## Logging *Libraries for generating and working with log files.* From 57f2324bdebf4a044fdedd37dd7a3d84e934f732 Mon Sep 17 00:00:00 2001 From: zhengchun Date: Mon, 8 May 2017 04:32:57 +0800 Subject: [PATCH 0844/3440] add xquery package (#1351) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index afc798f13ac..aa6d15f9406 100644 --- a/README.md +++ b/README.md @@ -1046,6 +1046,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. * [Slugify](https://github.com/avelino/slugify) - A Go slugify application that handles string. * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). + * [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. * 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. From 9ddcbc761f1a1f2973762c6f84ba9be21abcc18e Mon Sep 17 00:00:00 2001 From: emersion Date: Sun, 7 May 2017 22:35:04 +0200 Subject: [PATCH 0845/3440] Update README.md (#1339) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aa6d15f9406..be821e23721 100644 --- a/README.md +++ b/README.md @@ -1032,6 +1032,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [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 * [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. From fe963daa7a48f7970ddcccb066615f22360fe4cd Mon Sep 17 00:00:00 2001 From: Evgeny Ukhanov Date: Sun, 7 May 2017 23:37:50 +0300 Subject: [PATCH 0846/3440] add go-benchmark-app - HTTP benchmark tool (#1319) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index be821e23721..96d7203e4f1 100644 --- a/README.md +++ b/README.md @@ -1500,6 +1500,7 @@ Where to discover new Go libraries. ## Benchmarks * [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. +* [go-benchmark-app](https://github.com/mrLSD/go-benchmark-app) - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results. * [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - A few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. * [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. * [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. From aedb96d540eb5510a8b78c4a1b6362ba2d068b0c Mon Sep 17 00:00:00 2001 From: Stefan Nilsson Date: Mon, 8 May 2017 12:56:03 +0200 Subject: [PATCH 0847/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 96d7203e4f1..476a6ff255c 100644 --- a/README.md +++ b/README.md @@ -227,6 +227,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. * [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 * [count-min-log](https://github.com/seiflotfy/count-min-log) - A 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. From 9b6047846b6808ac10e088a400935f17e79ab55d Mon Sep 17 00:00:00 2001 From: Joseph Kato Date: Fri, 12 May 2017 17:56:31 -0700 Subject: [PATCH 0848/3440] Add prose (#1417) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7b47b6d6402..70fb54d6cc7 100644 --- a/README.md +++ b/README.md @@ -747,6 +747,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. * [RAKE.go](https://github.com/Obaied/RAKE.go) - A Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE) * [segment](https://github.com/blevesearch/segment) - A 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) - A sentence tokenizer: converts text into a list of sentences. From 98c28e6f99f90eb72a48ccd430dea2d00039600a Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 13 May 2017 12:58:29 -0300 Subject: [PATCH 0849/3440] create codeclimate file code analytic --- .codeclimate.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .codeclimate.yml diff --git a/.codeclimate.yml b/.codeclimate.yml new file mode 100644 index 00000000000..afc2bb1f684 --- /dev/null +++ b/.codeclimate.yml @@ -0,0 +1,22 @@ +--- +engines: + rubocop: + enabled: true + golint: + enabled: true + gofmt: + enabled: true + govet: + enabled: true + fixme: + enabled: true + duplication: + enabled: true + config: + languages: + - go +ratings: + paths: + - "**.go" +exclude_paths: +- vendor/ From 6e3d8a4d2f10f67e8abf4670d7f284a187e7acb8 Mon Sep 17 00:00:00 2001 From: Scott Le Date: Sat, 13 May 2017 23:24:41 +0700 Subject: [PATCH 0850/3440] Add dbcleaner (#1418) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 70fb54d6cc7..25edab4db97 100644 --- a/README.md +++ b/README.md @@ -973,6 +973,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 + * [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) - a REST API testing framework * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go From 19c9ec7b4e7b7ff7f50282b79d6502c39c6e5cff Mon Sep 17 00:00:00 2001 From: Aaron Lindsay Date: Sat, 13 May 2017 14:06:32 -0400 Subject: [PATCH 0851/3440] Add ofxgo (#1416) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 25edab4db97..cad7e3ee2e5 100644 --- a/README.md +++ b/README.md @@ -458,6 +458,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 From 06f9c8fe3dfd51401a77342ce3237a8d31cb7aff Mon Sep 17 00:00:00 2001 From: Josh Betz Date: Sat, 13 May 2017 22:18:38 -0500 Subject: [PATCH 0852/3440] Add joshbetz/config (#1409) * Add joshbetz/config A small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. https://github.com/joshbetz/config * Fix alphabetic sort order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cad7e3ee2e5..510a6bf9c39 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 +* [joshbetz/config](https://github.com/joshbetz/config) - A small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. * [mini](https://github.com/sasbury/mini) - A golang package for parsing ini-style configuration files * [store](https://github.com/tucnak/store) - A lightweight configuration manager for Go * [viper](https://github.com/spf13/viper) - Go configuration with fangs From b29f1bdf174aa45eeaa040ada238d445b0ef3293 Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Sun, 14 May 2017 11:16:00 +0300 Subject: [PATCH 0853/3440] Add complete (#1411) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 510a6bf9c39..eaeebac2c77 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line application. * [climax](http://github.com/tucnak/climax) - An alternative CLI with "human face", in spirit of Go command * [cobra](https://github.com/spf13/cobra) - A 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) - A 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) - A simple but powerful command line option parsing library for Go support subcommand From 6a248f1a37d0ce94ee031ceac33e0cef50ac74e9 Mon Sep 17 00:00:00 2001 From: zhengchun Date: Mon, 15 May 2017 11:27:49 +0800 Subject: [PATCH 0854/3440] add xpath package (#1415) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eaeebac2c77..350df9fedc2 100644 --- a/README.md +++ b/README.md @@ -1053,6 +1053,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. * [Slugify](https://github.com/avelino/slugify) - A Go slugify application that handles string. * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). + * [xpath](https://github.com/antchfx/xpath) - XPath package for Go. * [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. * Utility * [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. From edb25f0d39057f34f723e5b45d2267676e176838 Mon Sep 17 00:00:00 2001 From: Sebastian Mancke Date: Mon, 15 May 2017 15:20:52 +0200 Subject: [PATCH 0855/3440] Added loginsrv - JWT login microservice (#1413) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 350df9fedc2..d2749d0348f 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implementation of JSON Web Tokens (JWT). * [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for goLang http servers with many configuration options. * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). +* [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. From 8d5996992d8c57f4102b7b359c518e261c005529 Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Tue, 16 May 2017 22:05:57 -0700 Subject: [PATCH 0856/3440] Add zerolog --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d2749d0348f..6e91e39c7cd 100644 --- a/README.md +++ b/README.md @@ -633,6 +633,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [xlog](https://github.com/xfxdev/xlog) - Plugin architecture and flexible log system for Go, with level ctrl, multiple log target and custom log format. * [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. * [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. +* [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. ## Machine Learning From c49f89e2228c1d401ca0709facc0255c06f2f873 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Rainone?= Date: Wed, 17 May 2017 08:56:04 +0200 Subject: [PATCH 0857/3440] Add go-rquad - efficient region quadtrees --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d2749d0348f..e584878f5d9 100644 --- a/README.md +++ b/README.md @@ -238,6 +238,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-adaptive-radix-tree](https://github.com/plar/go-adaptive-radix-tree) - A Go implementation of Adaptive Radix Tree. * [go-datastructures](https://github.com/Workiva/go-datastructures) - A 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. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. From 5c355932f09faff3dd33579de96c7d2ca3f1555d Mon Sep 17 00:00:00 2001 From: Song Gao Date: Wed, 17 May 2017 12:00:30 -0700 Subject: [PATCH 0858/3440] Add water, a simple TUN/TAP library. (#513) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d2749d0348f..fc23c12b5bb 100644 --- a/README.md +++ b/README.md @@ -801,6 +801,7 @@ 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) - A 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) - A simple TUN/TAP library * [winrm](https://github.com/masterzen/winrm) - A Go WinRM client to remotely execute commands on Windows machines * [xtcp](https://github.com/xfxdev/xtcp) - A TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol. From abbd916a8cd2627f5a8f74b46c0db41d60eb235c Mon Sep 17 00:00:00 2001 From: Stefan Nilsson Date: Thu, 18 May 2017 12:18:00 +0200 Subject: [PATCH 0859/3440] Add github.com/yourbasic/bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d89eb3e8d80..779eb67c6d9 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Generic datastructures and algorithms in Go.* * [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. +* [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. * [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. From 94607b078650fff492613d6b8316e6b5b5d3bb36 Mon Sep 17 00:00:00 2001 From: Matthias Kadenbach Date: Thu, 18 May 2017 12:30:36 -0700 Subject: [PATCH 0860/3440] Update description of github.com/mattes/migrate. (#1422) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d89eb3e8d80..a123251e3a2 100644 --- a/README.md +++ b/README.md @@ -291,7 +291,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go * [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 migration handling in Golang support MySQL, PostgreSQL, Cassandra, and SQLite. +* [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., * [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. From 597ff822c1e8336787bd338609b41a448c7d7349 Mon Sep 17 00:00:00 2001 From: Raed Shomali Date: Sun, 21 May 2017 01:44:05 -0400 Subject: [PATCH 0861/3440] Added [slacker] A framework to create Slack bots (#1425) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b8934464184..2f77c94c97e 100644 --- a/README.md +++ b/README.md @@ -726,6 +726,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [margelet](https://github.com/zhulik/margelet) - A 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) - An 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. From 0f3c7a3ed2c3e1f51007cb72b5c03e848f6b3771 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Thu, 25 May 2017 13:03:31 +0100 Subject: [PATCH 0862/3440] Add Gogland & official JetBrains Go plugin, deprecate the old IDEA plug-in --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f77c94c97e..8e6f77c1ac1 100644 --- a/README.md +++ b/README.md @@ -1387,7 +1387,8 @@ Go software and plugins. ## Editor Plugins -* [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. +* [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 * [Goclipse](https://github.com/GoClipse/goclipse) - An Eclipse plugin for Go. @@ -1470,6 +1471,7 @@ Software written in Go. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - A chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. +* [Gogland](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer. * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine. From 6fc326be79092a169abba5f16572f57a5963b1be Mon Sep 17 00:00:00 2001 From: Hardik Bagdi Date: Thu, 25 May 2017 11:07:13 -0400 Subject: [PATCH 0863/3440] Adding go-unsplash for unsplash.com API --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2f77c94c97e..e31f09d9a41 100644 --- a/README.md +++ b/README.md @@ -1098,6 +1098,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API. * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. +* [go-unsplash](https://github.com/hardikbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. From 00c633bd92e1ddd48f8a2f624deeb2beeda4d386 Mon Sep 17 00:00:00 2001 From: Blake Williams Date: Sun, 28 May 2017 04:16:14 +1000 Subject: [PATCH 0864/3440] Add shabbyrobe/xmlwriter, create XML section (#1426) --- README.md | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 7012de289b0..ba2189782c1 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) - [Routers](#routers) - [Windows](#windows) + - [XML](#xml) - [Tools](#tools) - [Code Analysis](#code-analysis) @@ -1041,7 +1042,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [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 @@ -1059,8 +1059,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. * [Slugify](https://github.com/avelino/slugify) - A Go slugify application that handles string. * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). - * [xpath](https://github.com/antchfx/xpath) - XPath package for Go. - * [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. * 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. @@ -1307,6 +1305,23 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. +## Windows + +* [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 + +*Libraries and tools for manipulating XML* + +* [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. +* [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. +* [xmlwriter](https://github.com/shabbyrobe/xmlwriter) - Procedural XML generation API based on libxml2's xmlwriter module. +* [xpath](https://github.com/antchfx/xpath) - XPath package for Go. +* [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. + + ### Middlewares #### Actual middlewares @@ -1502,7 +1517,6 @@ Software written in Go. * [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart). * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). -* [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. @@ -1601,12 +1615,8 @@ Where to discover new Go libraries. -## Windows - -* [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9 -* [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. - ## Support on Beerpay Hey dude! Help me out for a couple of :beers:! [![Beerpay](https://beerpay.io/avelino/awesome-go/badge.svg?style=beer-square)](https://beerpay.io/avelino/awesome-go) [![Beerpay](https://beerpay.io/avelino/awesome-go/make-wish.svg?style=flat-square)](https://beerpay.io/avelino/awesome-go?focus=wish) + From b405635586f89aaffe10da4597a1d44786fd83fc Mon Sep 17 00:00:00 2001 From: Andrew Bashkatov Date: Mon, 29 May 2017 12:21:51 +0500 Subject: [PATCH 0865/3440] Add go-ataman (#1434) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ba2189782c1..626ed8277f0 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [go-ataman](https://github.com/workanator/go-ataman) - Go library for rendering ANSI colored text templates in terminals. * [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. * [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. * [go-isatty](https://github.com/mattn/go-isatty) - isatty for golang. From 6eb8adaab3fdf4dfd2d42413c2d79d15cd1c2b23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E6=98=A5=E6=99=96?= Date: Mon, 29 May 2017 18:50:53 +0800 Subject: [PATCH 0866/3440] Add elasticsql (#1427) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 626ed8277f0..366ae68e743 100644 --- a/README.md +++ b/README.md @@ -365,6 +365,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * Search and Analytic Databases * [bleve](https://github.com/blevesearch/bleve) - A 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. * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library. * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. * [skizze](https://github.com/seiflotfy/skizze) - A probabilistic data-structures service and storage. From 1ebb77a79f43362a72ef6e0e025f7ab32d391691 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Mon, 29 May 2017 17:12:32 +0100 Subject: [PATCH 0867/3440] Clean up whitespace, full stop header consistency (#1437) --- README.md | 100 ++++++++++++------------------------------------------ 1 file changed, 21 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 366ae68e743..96cf34c9966 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,13 @@ # Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Join the chat at https://gitter.im/avelino/awesome-go](https://badges.gitter.im/avelino/awesome-go.svg)](https://gitter.im/avelino/awesome-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). - ### Contributing Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! #### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!* - ### Contents - [Awesome Go](#awesome-go) @@ -86,7 +83,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Websites](#websites) - [Tutorials](#tutorials) - ## Audio/Music *Libraries for manipulating audio.* @@ -107,7 +103,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). * [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. - ## Authentication & OAuth *Libraries for implementing authentications schemes.* @@ -134,13 +129,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [traefik](https://github.com/containous/traefik) - A reverse proxy and load balancer with support for multiple backends. * [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. - ## Command Line - ### Standard CLI -*Libraries for building standard or basic Command Line applications* +*Libraries for building standard or basic Command Line applications.* * [argv](https://github.com/cosiner/argv) - A Go library to split command line string as arguments array using the bash syntax. * [cli](https://github.com/mkideal/cli) - A feature-rich and easy to use command-line package based on golang tag @@ -165,10 +158,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency. * [wmenu](https://github.com/dixonwille/wmenu) - An easy to use menu structure for cli applications that prompts users to make choices. - ### Advanced Console UIs -*Libraries for building Console Applications and Console User Interfaces* +*Libraries for building Console Applications and Console User Interfaces.* * [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. @@ -187,10 +179,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [uiprogress](https://github.com/gosuri/uiprogress) - A flexible library to render progress bars in terminal applications. * [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data. - ## Configuration -*Libraries for configuration parsing* +*Libraries for configuration parsing.* * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. * [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. @@ -211,7 +202,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Continuous Integration -*Tools for help with 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 * [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. @@ -219,7 +210,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## CSS Preprocessors -*Libraries for preprocessing CSS files* +*Libraries for preprocessing CSS files.* * [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. @@ -321,7 +312,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. * [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. - ## Database Drivers *Libraries for connecting and operating databases.* @@ -383,7 +373,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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.* @@ -414,7 +403,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Email -*Libraries that implement email creation and sending* +*Libraries that implement email creation and sending.* * [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. @@ -428,11 +417,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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* +*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 @@ -448,19 +435,17 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [otto](https://github.com/robertkrimen/otto) - A JavaScript interpreter written in Go * [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go - ## Files -*Libraries for handling files and file systems* +*Libraries for handling files and file systems.* * [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [tarfs](https://github.com/posener/tarfs) - An implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. - ## Financial -*Packages for accounting and finance* +*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 @@ -469,7 +454,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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.* @@ -483,7 +467,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. * [nosurf](https://github.com/justinas/nosurf) - A CSRF protection middleware for Go. - ## Game Development *Awesome game development libraries.* @@ -503,10 +486,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 - ## Generation & Generics -*Tools to enhance the language with features like generics via code generation* +*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 * [gen](https://github.com/clipperhouse/gen) - Code generation tool for ‘generics’-like functionality. @@ -515,19 +497,17 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. - ## Go Compilers -*Tools for compiling Go to other languages* +*Tools for compiling Go to other languages.* * [gopherjs](https://github.com/gopherjs/gopherjs) - A compiler from Go to JavaScript. * [llgo](https://github.com/go-llvm/llgo) - LLVM-based compiler for Go. * [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. - ## Goroutines -*Tools for managing and working with Goroutines* +*Tools for managing and working with Goroutines.* * [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 @@ -536,10 +516,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [semaphore](https://github.com/kamilsk/semaphore) - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. * [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. - ## GUI -*Libraries for building GUI Applications* +*Libraries for building GUI Applications.* * [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. * [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron) @@ -556,7 +535,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. - ## Hardware *Libraries, tools, and tutorials for interacting with hardware.* @@ -665,10 +643,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -*Libraries that implement messaging systems* +*Libraries that implement messaging systems.* * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. @@ -697,10 +674,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Uniqush-Push](https://github.com/uniqush/uniqush-push) - A redis backed unified push service for server-side notifications to mobile devices. * [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). - ## Miscellaneous -*These libraries were placed here because none of the other categories seemed to fit* +*These libraries were placed here because none of the other categories seemed to fit.* * [alice](https://github.com/magic003/alice) - An additive dependency injection container for Golang. * [archiver](https://github.com/mholt/archiver) - Library and command for making and extracting .zip and .tar.gz archives @@ -770,7 +746,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Networking -*Libraries for working with various layers of the network* +*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 @@ -822,7 +798,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. * [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. - ## ORM *Libraries that implement Object-Relational Mapping or datamapping techniques.* @@ -859,9 +834,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. @@ -870,7 +842,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graphql-go](https://github.com/graphql-go/graphql) - An implementation of GraphQL for Go. * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. - ## Resource Embedding * [esc](https://github.com/mjibson/esc) - Embeds files into Go programs and provides http.FileSystem interfaces to them. @@ -884,7 +855,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. - ## Science and Data Analysis *Libraries for scientific computing and data analyzing.* @@ -913,7 +883,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - ## Security *Libraries that are used to help make your application more secure.* @@ -928,7 +897,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Serialization -*Libraries and tools for binary 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 @@ -941,7 +910,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. @@ -953,7 +921,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [nsq](http://nsq.io/) - A realtime distributed messaging platform * [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. - ## Template Engines *Libraries and tools for templating and lexing.* @@ -1068,7 +1035,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text - ## Third-party APIs *Libraries for accessing third party APIs.* @@ -1238,7 +1204,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 *Libraries for validation.* @@ -1248,7 +1213,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [validate](https://github.com/markbates/validate) - This package provides a framework for writing validations for Go applications. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. - ## Version Control *Libraries for version control.* @@ -1258,7 +1222,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. - ## Video *Libraries for manipulating video.* @@ -1268,7 +1231,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [v4l](https://github.com/korandiz/v4l) - A video capture library for Linux, written in Go. - ## Web Frameworks *Full stack web frameworks.* @@ -1306,16 +1268,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. - ## Windows * [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 -*Libraries and tools for manipulating XML* +*Libraries and tools for manipulating XML.* * [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. @@ -1323,7 +1283,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [xpath](https://github.com/antchfx/xpath) - XPath package for Go. * [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. - ### Middlewares #### Actual middlewares @@ -1349,7 +1308,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [stats](https://github.com/thoas/stats) - A 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) - A lightweight and fast http router from outer space @@ -1372,11 +1330,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. - # Tools -Go software and plugins. - +*Go software and plugins.* ## Code Analysis @@ -1402,7 +1358,6 @@ Go software and plugins. * [unused](https://github.com/dominikh/go-tools/tree/master/cmd/unused) - unused checks Go code for unused constants, variables, functions and types. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. - ## Editor Plugins * [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs. @@ -1430,8 +1385,7 @@ Go software and plugins. ## Software Packages -Software written in Go. - +*Software written in Go.* ### DevOps Tools @@ -1520,16 +1474,9 @@ Software written in Go. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart). * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). - - - - - - # Resources -Where to discover new Go libraries. - +*Where to discover new Go libraries.* ## Benchmarks @@ -1548,7 +1495,6 @@ Where to discover new Go libraries. * [skynet](https://github.com/atemerev/skynet) - Skynet 1M threads microbenchmark. * [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. - ## Conferences * [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA @@ -1581,7 +1527,6 @@ Where to discover new Go libraries. * [@golang_news](https://twitter.com/golang_news) * [@golangweekly](https://twitter.com/golangweekly) - ## Websites * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. @@ -1603,7 +1548,6 @@ Where to discover new Go libraries. * [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. - ### Tutorials * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. @@ -1615,8 +1559,6 @@ Where to discover new Go libraries. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers. - - ## Support on Beerpay Hey dude! Help me out for a couple of :beers:! From 18456423c8ebb46e36eb64c3afb45e9d40f84112 Mon Sep 17 00:00:00 2001 From: Nicolas Embriz Date: Fri, 2 Jun 2017 03:37:14 +0200 Subject: [PATCH 0868/3440] immortal, ssh-vault, violetear (#1350) modified: README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 96cf34c9966..cd8e1733c5c 100644 --- a/README.md +++ b/README.md @@ -894,6 +894,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - an 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 ## Serialization @@ -1160,6 +1161,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A *nix cross-platform (OS agnostic) supervisor * [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. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. @@ -1265,6 +1267,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A 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) - A lightweight MVC framework for Go(Golang). +* [violetear](https://github.com/nbari/violetear) - Go HTTP router. * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. @@ -1563,4 +1566,3 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis Hey dude! Help me out for a couple of :beers:! [![Beerpay](https://beerpay.io/avelino/awesome-go/badge.svg?style=beer-square)](https://beerpay.io/avelino/awesome-go) [![Beerpay](https://beerpay.io/avelino/awesome-go/make-wish.svg?style=flat-square)](https://beerpay.io/avelino/awesome-go?focus=wish) - From 7ad5193626a47953d7e23b922c47cc0946dc8e2f Mon Sep 17 00:00:00 2001 From: JakeHL Date: Sat, 3 Jun 2017 17:09:05 +0100 Subject: [PATCH 0869/3440] Added goid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd8e1733c5c..6aa5607cdd2 100644 --- a/README.md +++ b/README.md @@ -695,6 +695,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. * [gofakeit](https://github.com/brianvoe/gofakeit) - Random data generator written in go * [gopsutil](https://github.com/shirou/gopsutil) - A 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 From afc7082400748e79210c393d9da28522cfef2988 Mon Sep 17 00:00:00 2001 From: JakeHL Date: Sat, 3 Jun 2017 17:18:59 +0100 Subject: [PATCH 0870/3440] Fixed error in readme order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6aa5607cdd2..d995ece8dfd 100644 --- a/README.md +++ b/README.md @@ -695,8 +695,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. * [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) - A 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 * [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data. From c3cf9394fd064e55cef0dcdd1288af5016c71337 Mon Sep 17 00:00:00 2001 From: Martin Treusch von Buttlar Date: Sun, 4 Jun 2017 04:45:13 +0200 Subject: [PATCH 0871/3440] Add rubyist/circuitbreaker (#1444) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd8e1733c5c..beff019c697 100644 --- a/README.md +++ b/README.md @@ -1110,6 +1110,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [abutil](https://github.com/bahlo/abutil) - A collection of often-used Golang helpers. * [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API. * [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. +* [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 * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. From 8c62898726b2d57db30b06e89907429fa32a0ff5 Mon Sep 17 00:00:00 2001 From: Takuya Ueda Date: Sun, 4 Jun 2017 17:47:00 +0900 Subject: [PATCH 0872/3440] Add tenntenn/gpath (#1445) * Add gpath * Sort by alphabet --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index beff019c697..9059651360f 100644 --- a/README.md +++ b/README.md @@ -1157,6 +1157,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go +* [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. * [grequests](https://github.com/levigross/grequests) - An elegant and simple `net/http` wrapper that follows Python's requests library * [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. From 8be8ea02754b6e28ee40ffce96215d7b2ce515a2 Mon Sep 17 00:00:00 2001 From: Jesse Dearing Date: Wed, 7 Jun 2017 09:12:40 -0700 Subject: [PATCH 0873/3440] Add go-resiliency (#1448) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9059651360f..3c3570b2c15 100644 --- a/README.md +++ b/README.md @@ -692,6 +692,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-commons-pool](https://github.com/jolestar/go-commons-pool) - A generic object pool for Golang. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [go-openapi](https://github.com/go-openapi) - A collection of packages to parse and utilize open-api schemas +* [go-resiliency](https://github.com/eapache/go-resiliency) - Resiliency patterns for golang * [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. From 04574aaccd85060da4fa5abf834efda4ad7a5fb2 Mon Sep 17 00:00:00 2001 From: Arthur White Date: Thu, 8 Jun 2017 16:14:41 +0200 Subject: [PATCH 0874/3440] Add gowww/router --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3c3570b2c15..b596b034930 100644 --- a/README.md +++ b/README.md @@ -1323,6 +1323,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. * [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. +* [gowww/router](https://github.com/gowww/router) - A lightning fast HTTP router fully compatible with the net/http.Handler * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. * [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. From 0658d8010ff52a4a636923fad5baad305dfdc38b Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Sun, 11 Jun 2017 09:38:24 +0530 Subject: [PATCH 0875/3440] Add GopherCon Singapore (#1453) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3c3570b2c15..182a4aa818b 100644 --- a/README.md +++ b/README.md @@ -1512,6 +1512,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR * [GopherCon Dubai](http://www.gophercon.ae/) - Dubai, UAE * [GopherCon India](http://www.gophercon.in/) - Pune, India +* [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore * [GothamGo](http://gothamgo.com/) - New York City, USA ## E-Books From 69d994d4ad6635ae53cbe7c60d2331da846e61d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Lorenz?= Date: Sat, 17 Jun 2017 00:41:07 +1000 Subject: [PATCH 0876/3440] Add gorouter package (#1439) * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 182a4aa818b..37779bfc266 100644 --- a/README.md +++ b/README.md @@ -1323,6 +1323,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. * [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. +* [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framwework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. * [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. From be024330c619076cfd28877684f3de492e5959cf Mon Sep 17 00:00:00 2001 From: Robert Laszczak Date: Fri, 16 Jun 2017 16:46:39 +0200 Subject: [PATCH 0877/3440] Add go-cleanarch (#1449) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37779bfc266..93e4aa9c476 100644 --- a/README.md +++ b/README.md @@ -1349,6 +1349,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. * [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. * [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. +* [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects. * [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. From 7e29c19081bb1bf05815b50b0c71a154a76a7597 Mon Sep 17 00:00:00 2001 From: Raed Shomali Date: Fri, 16 Jun 2017 10:48:11 -0400 Subject: [PATCH 0878/3440] Added github.com/shomali11/util (#1450) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 93e4aa9c476..c22c45e0b5d 100644 --- a/README.md +++ b/README.md @@ -1205,6 +1205,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ugo](https://github.com/alxrm/ugo) - ugo is slice toolbox with concise syntax for Go. * [UNIS](https://github.com/esemplastic/unis) - A 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) - A 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 * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. From 045b7034581cb744a8325feb12ca73d2f2110391 Mon Sep 17 00:00:00 2001 From: Willian Molinari Date: Fri, 16 Jun 2017 16:08:08 -0300 Subject: [PATCH 0879/3440] Add a deadline for new PR on CONTRIBUTION (#1459) We are trying to avoid having hundreds of open Pull Requests. By using this rule we may close old PRs. --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- CONTRIBUTING.md | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index de01c8b367d..5904dea7d4d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,6 +17,6 @@ Very good coverage - [ ] 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) and [Quality standard](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard). +- [ ] 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 332f25ef20d..6d6fa706a08 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,7 @@ If you removed our PR template you can find it [here](https://github.com/avelino ## Quality standards -To be on the list, project repositories should adhere to these quality standards (http://goreportcard.com/report/**github_user**/**github_repo**): +To be on the list, project repositories should adhere to these quality standards (http://goreportcard.com/report/ **github_user** / **github_repo**): - Code functions as documented and expected - Generally useful to the wider community of Go programmers @@ -39,6 +39,10 @@ To be on the list, project repositories should adhere to these quality standards To make sure every PR is checked, we have [team maintainers](MAINTAINERS). Every PR MUST be reviewed by at least two maintainers before it can get merged. +The maintainers will review your PR and notify you and tag it in case any +information is still missing. They will wait 8 days for your interaction, after +that the PR will be closed. + ## Reporting issues From d422f230293014a80e50c11fa913c142ac7a1f54 Mon Sep 17 00:00:00 2001 From: roylee0704 Date: Sat, 17 Jun 2017 03:15:41 +0800 Subject: [PATCH 0880/3440] add gron package -- Cron Jobs in Go. (#994) Package links: github.com: https://github.com/roylee0704/gron godoc.org: https://godoc.org/github.com/roylee0704/gron goreportcard.com: https://goreportcard.com/report/github.com/roylee0704/gron gocover.io: https://gocover.io/github.com/roylee0704/gron --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c22c45e0b5d..54cf1b62152 100644 --- a/README.md +++ b/README.md @@ -1160,6 +1160,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. * [grequests](https://github.com/levigross/grequests) - An 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 * [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. From b449b8e04edbc86b1c82c9d17c9875a3b6400d70 Mon Sep 17 00:00:00 2001 From: Danny Date: Fri, 16 Jun 2017 22:37:20 +0300 Subject: [PATCH 0881/3440] Adding gowd (#1430) * Update README.md Adding [gowd](https://github.com/dtylman/gowd) * Update README.md Adding [gowd](https://github.com/dtylman/gowd) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index de8e8d01dbd..6c0528354a7 100644 --- a/README.md +++ b/README.md @@ -528,6 +528,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goqt](https://github.com/visualfc/goqt) - Golang bindings to the Qt cross-platform application framework. * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [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. * [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) * [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 From 2b9bf48d3ab9ed220b31574eba7cdd70923b35ee Mon Sep 17 00:00:00 2001 From: Daniel Gruber Date: Fri, 16 Jun 2017 21:43:39 +0200 Subject: [PATCH 0882/3440] Added DRMAA job submission library for cluster schedulers. (#740) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6c0528354a7..f914e30db62 100644 --- a/README.md +++ b/README.md @@ -378,6 +378,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* * [celeriac](https://github.com/svcavallar/celeriac.v1) - A 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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. From b775eef38d7606bb282868ab8f05e67f5a3652af Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 16 Jun 2017 16:46:40 -0300 Subject: [PATCH 0883/3440] remove beerpay support screen: https://www.dropbox.com/s/5hjskgzapzx80db/Screenshot%202017-06-16%2016.46.13.png?dl=0 --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index f914e30db62..f86cebab409 100644 --- a/README.md +++ b/README.md @@ -1572,8 +1572,3 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers. - -## Support on Beerpay -Hey dude! Help me out for a couple of :beers:! - -[![Beerpay](https://beerpay.io/avelino/awesome-go/badge.svg?style=beer-square)](https://beerpay.io/avelino/awesome-go) [![Beerpay](https://beerpay.io/avelino/awesome-go/make-wish.svg?style=flat-square)](https://beerpay.io/avelino/awesome-go?focus=wish) From 4e87b75bfe049c40ede9d2dc115007f8c83320d0 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Fri, 16 Jun 2017 22:57:02 +0300 Subject: [PATCH 0884/3440] Add githubql package. (#1435) Package githubql is a client library for accessing GitHub GraphQL API v4 (https://developer.github.com/v4/). Status: In active early research and development. The API will change when opportunities for improvement are discovered; it is not yet frozen. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f86cebab409..e3324014a6b 100644 --- a/README.md +++ b/README.md @@ -1059,7 +1059,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 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-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS. From a0e9e1ce9cb87e550c34279cdd99972ac72fa482 Mon Sep 17 00:00:00 2001 From: Lawrence Woodman Date: Sun, 18 Jun 2017 20:21:20 +0100 Subject: [PATCH 0885/3440] Add roveralls to continuous integration section (#1128) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b7f2b932a0e..084fa835f56 100644 --- a/README.md +++ b/README.md @@ -207,6 +207,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - A recursive coverage testing tool ## CSS Preprocessors From da2949ccc64b37cc183a191447906206e8adfdd6 Mon Sep 17 00:00:00 2001 From: Stefan Nilsson Date: Mon, 19 Jun 2017 00:56:42 +0200 Subject: [PATCH 0886/3440] Add github.com/yourbasic/radix (#1456) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 084fa835f56..9a78805ea4a 100644 --- a/README.md +++ b/README.md @@ -1039,6 +1039,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. * [parseargs-go](https://github.com/nproc/parseargs-go) - A string argument parser that understands quotes and backslashes * [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. + * [radix](https://github.com/yourbasic/radix) - A fast string sorting algorithm. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text ## Third-party APIs From 2ce56fdbf1f261465c8cd3a3370d358387c815ed Mon Sep 17 00:00:00 2001 From: Vladimir Bauer Date: Mon, 19 Jun 2017 01:59:21 +0300 Subject: [PATCH 0887/3440] Multi progress bar for terminal applications (#1428) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9a78805ea4a..980500883c3 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-isatty](https://github.com/mattn/go-isatty) - isatty for golang. * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. +* [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). From ef9921e49af2bb3c7b8e170b0dccf11d39a17ede Mon Sep 17 00:00:00 2001 From: Jin Yeom Date: Sun, 18 Jun 2017 18:00:42 -0500 Subject: [PATCH 0888/3440] Added neat - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT) (#1429) * added neat - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT). * alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 980500883c3..710b1e90d3e 100644 --- a/README.md +++ b/README.md @@ -642,6 +642,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. +* [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) - A 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 From faffd792bce046ff97aa37640c0d4bc4d71489a3 Mon Sep 17 00:00:00 2001 From: golangbot Date: Tue, 20 Jun 2017 23:12:19 +0530 Subject: [PATCH 0889/3440] Added new tutorial (#1464) * Added new tutorial * New tutorial URL Added --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 710b1e90d3e..390ff892006 100644 --- a/README.md +++ b/README.md @@ -1576,5 +1576,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - A Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +* [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers. From 7ea32e77b13a7995c5035fc4827afb6e07d36f87 Mon Sep 17 00:00:00 2001 From: Louis Date: Tue, 20 Jun 2017 20:42:37 +0300 Subject: [PATCH 0890/3440] Add github.com/artonge/go-csv-tag (#1465) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 390ff892006..943c3ea83b3 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for handling files and file systems.* * [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. +* [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [tarfs](https://github.com/posener/tarfs) - An implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. From bcf58d8417f0fae051fe6d44c3fdf5d446aea099 Mon Sep 17 00:00:00 2001 From: Cameron Bergoon Date: Tue, 20 Jun 2017 13:42:55 -0400 Subject: [PATCH 0891/3440] Adding cbergoon/merkletree to DS section (#1463) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 943c3ea83b3..b0585fe0184 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 +* [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 From 348da0ff80e8f5933628655cdb2dd5cb42129728 Mon Sep 17 00:00:00 2001 From: peter-mogensen Date: Tue, 20 Jun 2017 19:43:15 +0200 Subject: [PATCH 0892/3440] Added gone/jconf modular JSON configuration lib (#1457) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b0585fe0184..6b897ef7a9b 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [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 From b08960098e3036d956efc88be147f70fc230dead Mon Sep 17 00:00:00 2001 From: Richard Knop Date: Tue, 20 Jun 2017 18:44:10 +0100 Subject: [PATCH 0893/3440] Adding RichardKnop/go-fixtures (#1154) * Adding AreaHQ/go-fixtures * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6b897ef7a9b..73057ffe74e 100644 --- a/README.md +++ b/README.md @@ -287,6 +287,7 @@ 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 +* [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. From 5673aec233d02de03c9ee964a57d1f9adf87e907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ola=20Holmstr=C3=B6m?= Date: Tue, 20 Jun 2017 19:44:25 +0200 Subject: [PATCH 0894/3440] Add github.com/olahol/melody. (#947) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 73057ffe74e..e9d24cf4bc9 100644 --- a/README.md +++ b/README.md @@ -674,6 +674,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [guble](https://github.com/smancke/guble) - A 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. * [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. +* [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) - A 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) - A generic oplog/replication system for REST APIs From 23352656f3634f768b8b6bccc2674b545edf9f94 Mon Sep 17 00:00:00 2001 From: Richard Knop Date: Tue, 20 Jun 2017 18:45:08 +0100 Subject: [PATCH 0895/3440] Add github.com/RichardKnop/jsonhal (#1461) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9d24cf4bc9..e0bfa5acf2f 100644 --- a/README.md +++ b/README.md @@ -1183,6 +1183,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. +* [jsonhal](https://github.com/RichardKnop/jsonhal) - A 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 * [mc](https://github.com/minio/mc) - Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems. From 080c233d1b1a0acb3873910b514e4fcfe045983b Mon Sep 17 00:00:00 2001 From: Huang Huang Date: Tue, 27 Jun 2017 21:32:30 +0800 Subject: [PATCH 0896/3440] Add go-httpheader (#1471) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e0bfa5acf2f..04f54fc697a 100644 --- a/README.md +++ b/README.md @@ -1148,6 +1148,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...) +* [go-httpheader](https://github.com/mozillazg/go-httpheader) - A Go library for encoding structs into Header fields. * [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go. * [go-respond](https://github.com/nicklaw5/go-respond) - A Go package for handling common HTTP JSON responses. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. From 634cb3b46ff84c0b285e16a8b6a70c0c7324e94b Mon Sep 17 00:00:00 2001 From: Osamu TONOMORI Date: Fri, 30 Jun 2017 02:26:19 +0900 Subject: [PATCH 0897/3440] Add osamingo/gaurun-client (#1478) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 04f54fc697a..0c3e64e22b3 100644 --- a/README.md +++ b/README.md @@ -661,6 +661,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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. From f6d47060c3717b73d5abee8bd88946ecf0a7bb16 Mon Sep 17 00:00:00 2001 From: Adhi Ravishankar Date: Thu, 29 Jun 2017 12:26:54 -0500 Subject: [PATCH 0898/3440] Moved GoDotEnv from Utilities to Configuration (#1477) * Update README.md * Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c3e64e22b3..a804546aef1 100644 --- a/README.md +++ b/README.md @@ -192,6 +192,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 * [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) - A 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. @@ -1158,7 +1159,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. -* [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. * [gojq](https://github.com/elgs/gojq) - JSON query in Golang. From 7f131fede1ed8a2201c91ee5cda1dcf8d508a5b6 Mon Sep 17 00:00:00 2001 From: Yusuke Kato Date: Fri, 30 Jun 2017 02:29:19 +0900 Subject: [PATCH 0899/3440] feature add kpango/glg logging library (#1469) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a804546aef1..b5437992e7f 100644 --- a/README.md +++ b/README.md @@ -595,6 +595,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for generating and working with log files.* +* [glg](https://github.com/kpango/glg) - glg is simple and fast leveled logging library for Go. * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. From 23eef2c2ebf3e780538691081ac58bb512d30232 Mon Sep 17 00:00:00 2001 From: Raed Shomali Date: Thu, 29 Jun 2017 13:30:19 -0400 Subject: [PATCH 0900/3440] Added github.com/shomali11/xredis (#1468) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b5437992e7f..d27a79ad470 100644 --- a/README.md +++ b/README.md @@ -357,6 +357,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [redis](https://github.com/go-redis/redis) - Redis client for Golang * [redis](https://github.com/hoisie/redis) - A 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 * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. From 1dfca92d2993d584a818c30370d9d0e15b882a7a Mon Sep 17 00:00:00 2001 From: Francis Chuang Date: Fri, 30 Jun 2017 03:31:09 +1000 Subject: [PATCH 0901/3440] Add Apache Phoenix/Avatica database/sql driver. (#956) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d27a79ad470..d402ffee276 100644 --- a/README.md +++ b/README.md @@ -323,6 +323,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for connecting and operating databases.* * 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 * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql. From 6581005fb2c9e5a12f889a972cd42fa1f81f59f4 Mon Sep 17 00:00:00 2001 From: Hugo Soto Date: Sun, 2 Jul 2017 23:30:24 -0400 Subject: [PATCH 0902/3440] Added moby project --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d402ffee276..06c649a0bbb 100644 --- a/README.md +++ b/README.md @@ -174,7 +174,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. -* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output +* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). * [uilive](https://github.com/gosuri/uilive) - A library for updating terminal output in realtime. * [uiprogress](https://github.com/gosuri/uiprogress) - A flexible library to render progress bars in terminal applications. @@ -1445,6 +1445,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) - A 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. From 0c11630604e9e67d716c701c0be8aaac437621e2 Mon Sep 17 00:00:00 2001 From: Francis Chuang Date: Tue, 4 Jul 2017 06:58:45 +1000 Subject: [PATCH 0903/3440] Update description for go-mssqldb database driver (#1482) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d402ffee276..29b538fbd7d 100644 --- a/README.md +++ b/README.md @@ -328,7 +328,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 prototype in go language. + * [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver for Go. * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. From be8df99de3391721d968adc32867bbdfdde9dbe9 Mon Sep 17 00:00:00 2001 From: Vasily Kolobkov Date: Wed, 5 Jul 2017 09:13:12 +0200 Subject: [PATCH 0904/3440] Update chi url (#1479) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29b538fbd7d..688f50a3eec 100644 --- a/README.md +++ b/README.md @@ -1340,7 +1340,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [alien](https://github.com/gernest/alien) - A 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/pressly/chi) - Small, fast and expressive HTTP router built on net/context. +* [chi](https://github.com/go-chi/chi) - Small, fast and expressive HTTP router built on net/context. * [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. * [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. From cc46d212c1ad60c8f1b1898f77dfec886c0d6366 Mon Sep 17 00:00:00 2001 From: Oklahomer Date: Fri, 7 Jul 2017 09:37:26 +0900 Subject: [PATCH 0905/3440] Add oklahomer/go-sarah (#1484) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 688f50a3eec..428357a80ec 100644 --- a/README.md +++ b/README.md @@ -708,6 +708,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [go-openapi](https://github.com/go-openapi) - A 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) - A 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. From e7a9337298c31e3a0bda58307712f10d127c1d84 Mon Sep 17 00:00:00 2001 From: Seif Lotfy Date: Fri, 7 Jul 2017 05:41:48 +0200 Subject: [PATCH 0906/3440] add axiomhq/hyperloglog --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 428357a80ec..cd84f6675aa 100644 --- a/README.md +++ b/README.md @@ -242,6 +242,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. * [gota](https://github.com/kniren/gota) - An implementation of dataframes, series, and data wrangling methods for Go. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. +* [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 From ef70f944fe415633b6be28e9bf41a5a73c780760 Mon Sep 17 00:00:00 2001 From: Andrew Stuart Date: Fri, 7 Jul 2017 15:43:22 -0700 Subject: [PATCH 0907/3440] Add goq - html unmarshaling with jquery struct tags --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd84f6675aa..a9b76fca744 100644 --- a/README.md +++ b/README.md @@ -1038,6 +1038,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 + * [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) - A library for generating random strings from regular expressions. * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. From 3d3491d9f5bd88e0404e44d97f8f8ba809f5e420 Mon Sep 17 00:00:00 2001 From: Quentin Renard Date: Sat, 8 Jul 2017 12:13:34 +0200 Subject: [PATCH 0908/3440] add astisub --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9b76fca744..a5e6f4e0877 100644 --- a/README.md +++ b/README.md @@ -1256,6 +1256,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for manipulating video.* * [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. +* [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [v4l](https://github.com/korandiz/v4l) - A video capture library for Linux, written in Go. From c95d23846a4d54891fc456700ce49d0b40004a5b Mon Sep 17 00:00:00 2001 From: Quentin Renard Date: Sat, 8 Jul 2017 12:32:21 +0200 Subject: [PATCH 0909/3440] Add astitodo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9b76fca744..52d24b2dc0f 100644 --- a/README.md +++ b/README.md @@ -1151,6 +1151,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [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-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications. From 6779375da925e19142a94cf828de6dae50d2fde8 Mon Sep 17 00:00:00 2001 From: Guilherme Oenning Date: Sat, 8 Jul 2017 13:25:04 +0100 Subject: [PATCH 0910/3440] add vscode-go (#1486) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9b76fca744..4f6c2682181 100644 --- a/README.md +++ b/README.md @@ -1403,6 +1403,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [velour](https://github.com/velour/velour) - An IRC client for the acme editor. * [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. * [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. +* [vscode-go](https://github.com/Microsoft/vscode-go) - An extension for Visual Studio Code (VS Code) which provides support for the Go language. * [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. ## Go Tools From 0db36fc3dcfa37fba82af820147acee8014335d7 Mon Sep 17 00:00:00 2001 From: Meng Zhuo Date: Sat, 8 Jul 2017 23:03:45 +0800 Subject: [PATCH 0911/3440] add project intrinsic, Use x86 SIMD without writing any assembly code (#1470) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f16e09007e..60087cafdda 100644 --- a/README.md +++ b/README.md @@ -1187,6 +1187,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A *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. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. From b4ab712f78a55d35133a562f7ac8fd4916924b99 Mon Sep 17 00:00:00 2001 From: Frank Terragna Date: Sun, 9 Jul 2017 10:27:13 -0400 Subject: [PATCH 0912/3440] Updated README with goxlsxwriter (#1492) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4a5c266fe0b..445cb700efd 100644 --- a/README.md +++ b/README.md @@ -1180,6 +1180,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [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) - An 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. From 77163117adcff979ac4db24c7f85af4cd3f55e22 Mon Sep 17 00:00:00 2001 From: Louis Date: Sun, 9 Jul 2017 17:42:20 +0300 Subject: [PATCH 0913/3440] Add github.com/artonge/go-csv-tag (#1493) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 445cb700efd..503a8fa605c 100644 --- a/README.md +++ b/README.md @@ -451,6 +451,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. +* [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [tarfs](https://github.com/posener/tarfs) - An implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. From 23a1afa54c6c7d780d3e91a04619b99dde9743ff Mon Sep 17 00:00:00 2001 From: Tao Wen Date: Tue, 11 Jul 2017 08:32:01 +0800 Subject: [PATCH 0914/3440] add jsoniter, A high-performance 100% compatible drop-in replacement of "encoding/json" (#1491) * add jsoniter, A high-performance 100% compatible drop-in replacement of "encoding/json" * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 503a8fa605c..0bc21e38fa2 100644 --- a/README.md +++ b/README.md @@ -927,6 +927,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A 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 * [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. From 390d3b5417428c417ec0fbbe7943a0b8268b6d17 Mon Sep 17 00:00:00 2001 From: Ashley Jeffs Date: Thu, 13 Jul 2017 19:51:33 +0100 Subject: [PATCH 0915/3440] Add github.com/jeffail/leaps (#1496) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0bc21e38fa2..285c39d1e12 100644 --- a/README.md +++ b/README.md @@ -1490,6 +1490,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ipe](https://github.com/dimiro1/ipe) - An open source Pusher server implementation compatible with Pusher client libraries written in GO. * [JayDiff](https://github.com/yazgazan/jaydiff) - A JSON diff utility written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. +* [Leaps](https://github.com/jeffail/leaps) - A pair programming service using Operational Transforms. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. * [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. From 3be6bb15049cc4c6c36f67929f396b1b9579a983 Mon Sep 17 00:00:00 2001 From: Vadim Petrov Date: Fri, 14 Jul 2017 23:59:49 +0300 Subject: [PATCH 0916/3440] Add Go client for the Zooz API (#1497) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 285c39d1e12..c58f98a0fec 100644 --- a/README.md +++ b/README.md @@ -1126,6 +1126,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 ## Utilities From d810ad8fb7e898533a6d522003429bfd350593de Mon Sep 17 00:00:00 2001 From: Jeevanandam M Date: Fri, 14 Jul 2017 14:00:10 -0700 Subject: [PATCH 0917/3440] Adding aah web framework under Web Framework section (#1488) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c58f98a0fec..f71b8c2cd76 100644 --- a/README.md +++ b/README.md @@ -1271,6 +1271,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Full stack web frameworks.* +* [aah](https://aahframework.org) - A scalable, performant, rapid development Web framework for Go. * [Air](https://github.com/sheng/air) - An ideal RESTful web framework for Go. * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! From b8b5c1bb465b55c3cc2f0e4f09bf5062dd42ebd1 Mon Sep 17 00:00:00 2001 From: hbagdi Date: Mon, 17 Jul 2017 05:38:01 -0400 Subject: [PATCH 0918/3440] Update URL of go-unsplash to fix broken URL (#1498) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54443a38001..5c77f7ed89a 100644 --- a/README.md +++ b/README.md @@ -1089,7 +1089,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API. * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. -* [go-unsplash](https://github.com/hardikbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. +* [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. From 1316ad5a8bc1a828db915d2a84f16bd1a26953fa Mon Sep 17 00:00:00 2001 From: Brian Scott Date: Mon, 17 Jul 2017 17:02:31 -0700 Subject: [PATCH 0919/3440] Add Golangflow.io (#1495) * Add Golangflow.io Add to Websites section * Fixed positioning * Update README.md * another attempt * Reordered based on Travis CI --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5c77f7ed89a..7e650354e5a 100644 --- a/README.md +++ b/README.md @@ -1585,6 +1585,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - A collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. +* [Golang Flow](http://golangflow.io) - Post Updates, News, Packages and more. * [Golang News](https://golangnews.com) - Links and news about Go programming. * [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art. * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. From c2fbec4fa12e871f6b9cdf22131e724186a04ed0 Mon Sep 17 00:00:00 2001 From: Maxim Chechel Date: Tue, 18 Jul 2017 03:57:53 +0300 Subject: [PATCH 0920/3440] Added link to minimock generator (#1499) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7e650354e5a..518ac51453f 100644 --- a/README.md +++ b/README.md @@ -1004,6 +1004,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * Fuzzing and delta-debugging/reducing/shrinking From 6c4e13c151273412b11b9b7109dfa05851f68d5c Mon Sep 17 00:00:00 2001 From: Brian Scott Date: Tue, 18 Jul 2017 14:17:37 -0700 Subject: [PATCH 0921/3440] Added Golangflow to Twitter section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 518ac51453f..d6df2690583 100644 --- a/README.md +++ b/README.md @@ -1570,6 +1570,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Twitter * [@golang](https://twitter.com/golang) +* [@golangflow](https://twitter.com/golangflow) * [@golang_news](https://twitter.com/golang_news) * [@golangweekly](https://twitter.com/golangweekly) From c1866c71b742079cc375bf77b130e2574865bcba Mon Sep 17 00:00:00 2001 From: Brian Scott Date: Tue, 18 Jul 2017 19:00:51 -0700 Subject: [PATCH 0922/3440] Fixed issue --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d6df2690583..88b30884049 100644 --- a/README.md +++ b/README.md @@ -1570,8 +1570,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Twitter * [@golang](https://twitter.com/golang) -* [@golangflow](https://twitter.com/golangflow) * [@golang_news](https://twitter.com/golang_news) +* [@golangflow](https://twitter.com/golangflow) * [@golangweekly](https://twitter.com/golangweekly) ## Websites From cc530607a3e36166ca1e6bf03cec55fba69faba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Wed, 19 Jul 2017 11:30:32 -0300 Subject: [PATCH 0923/3440] pRest is not a database, but a tool (#1502) - change pRest section from database made by go to database tools --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 88b30884049..4d4d82be614 100644 --- a/README.md +++ b/README.md @@ -277,7 +277,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. -* [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. * [Scribble](https://github.com/nanobox-io/golang-scribble) - A tiny flat file JSON store. @@ -305,6 +304,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - A 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.* From 3bb95d93f2801be398f7726fd132e0c3c58d6386 Mon Sep 17 00:00:00 2001 From: Oliver Steele Date: Wed, 19 Jul 2017 21:23:30 -0400 Subject: [PATCH 0924/3440] Add github.com/osteele/liquid to Template Engines (#1503) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d4d82be614..3fb44f410f4 100644 --- a/README.md +++ b/README.md @@ -957,6 +957,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. +* [liquid](https://github.com/osteele/liquid) - A Go implementation of Shopify Liquid templates. * [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. * [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. * [quicktemplate](https://github.com/valyala/quicktemplate) - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it. From 6e81a62aaca39879e2a4e8078abdf09fafe30003 Mon Sep 17 00:00:00 2001 From: Osamu TONOMORI Date: Sat, 29 Jul 2017 01:25:38 +0900 Subject: [PATCH 0925/3440] Add osamingo/shamoji library (#1504) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3fb44f410f4..212ea04447a 100644 --- a/README.md +++ b/README.md @@ -758,6 +758,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [RAKE.go](https://github.com/Obaied/RAKE.go) - A Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE) * [segment](https://github.com/blevesearch/segment) - A 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) - A 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) - A Go package for n-gram based text categorization, with support for utf-8 and raw text From 25b3f93a1d20b3585d5c2f50314c044f89d70e64 Mon Sep 17 00:00:00 2001 From: cleancodeninja <24852530+cleancodeninja@users.noreply.github.com> Date: Fri, 28 Jul 2017 19:24:15 +0200 Subject: [PATCH 0926/3440] GUI - split by two categories - Toolkits and Interaction and support info for toolkits --- README.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 212ea04447a..9c4781ae23e 100644 --- a/README.md +++ b/README.md @@ -532,21 +532,27 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building GUI Applications.* -* [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. -* [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron) +*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-sciter](https://github.com/sciter-sdk/go-sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. +* [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. -* [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. +* [gowd](https://github.com/dtylman/gowd) - Rapid and simple desktop UI development with GO, HTML, CSS and NW.js. Cross platform. * [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. +* [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. + +*Interaction* + +* [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) * [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 * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. -* [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. -* [walk](https://github.com/lxn/walk) - Windows application library kit for Go. + ## Hardware From 0fac04574492b574436f4990b5614c939bcad999 Mon Sep 17 00:00:00 2001 From: cleancodeninja <24852530+cleancodeninja@users.noreply.github.com> Date: Fri, 28 Jul 2017 19:37:36 +0200 Subject: [PATCH 0927/3440] GUI - Put QT into the Toolkits sub category --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c4781ae23e..f8c2847e71f 100644 --- a/README.md +++ b/README.md @@ -542,13 +542,13 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goqt](https://github.com/visualfc/goqt) - Golang bindings to the Qt cross-platform application framework. * [gowd](https://github.com/dtylman/gowd) - Rapid and simple desktop UI development with GO, HTML, CSS and NW.js. Cross platform. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. +* [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. *Interaction* * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. -* [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) * [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 * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. From 50dbf0a4940c44d68d6eef375e0be8dd564e6582 Mon Sep 17 00:00:00 2001 From: cleancodeninja <24852530+cleancodeninja@users.noreply.github.com> Date: Fri, 28 Jul 2017 19:40:20 +0200 Subject: [PATCH 0928/3440] GUI - Toolkits - fix order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f8c2847e71f..8b06aa49abe 100644 --- a/README.md +++ b/README.md @@ -540,8 +540,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [gowd](https://github.com/dtylman/gowd) - Rapid and simple desktop UI development with GO, HTML, CSS and NW.js. Cross platform. * [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) * [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. From 43d64b92d0cb60b0d52150ae453b58ca46cd198f Mon Sep 17 00:00:00 2001 From: joelterry Date: Sat, 29 Jul 2017 07:45:49 -0700 Subject: [PATCH 0929/3440] Broken anchor links (#1505) * A few anchor links were broken, likely since https://github.com/shurcooL/sanitized_anchor_name/commit/f105e6d6adf3fd73b316934472e2a3c0146fb3a9 * Add osamingo/shamoji library (#1504) * GUI - split by two categories - Toolkits and Interaction and support info for toolkits * GUI - Put QT into the Toolkits sub category * GUI - Toolkits - fix order * replaced &'s with and's --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 8b06aa49abe..9aca776212b 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ### Contents - [Awesome Go](#awesome-go) - - [Audio & Music](#audiomusic) - - [Authentication & OAuth](#authentication--oauth) + - [Audio and Music](#audio-and-music) + - [Authentication and OAuth](#authentication-and-oauth) - [Command Line](#command-line) - [Configuration](#configuration) - [Continuous Integration](#continuous-integration) @@ -20,7 +20,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Data Structures](#data-structures) - [Database](#database) - [Database Drivers](#database-drivers) - - [Date & Time](#date--time) + - [Date and Time](#date-and-time) - [Distributed Systems](#distributed-systems) - [Email](#email) - [Embeddable Scripting Languages](#embeddable-scripting-languages) @@ -28,7 +28,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Financial](#financial) - [Forms](#forms) - [Game Development](#game-development) - - [Generation & Generics](#generation--generics) + - [Generation and Generics](#generation-and-generics) - [Go Compilers](#go-compilers) - [Goroutines](#goroutines) - [GUI](#gui) @@ -83,7 +83,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Websites](#websites) - [Tutorials](#tutorials) -## Audio/Music +## Audio and Music *Libraries for manipulating audio.* @@ -103,7 +103,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). * [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. -## Authentication & OAuth +## Authentication and OAuth *Libraries for implementing authentications schemes.* @@ -369,7 +369,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. * [skizze](https://github.com/seiflotfy/skizze) - A probabilistic data-structures service and storage. -## Date & Time +## Date and Time *Libraries for working with dates and times.* @@ -498,7 +498,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 -## Generation & Generics +## Generation and Generics *Tools to enhance the language with features like generics via code generation.* From 2abd002699d5c8c733ef2fa1988da45b9e5b9c8e Mon Sep 17 00:00:00 2001 From: Yuta Uekusa Date: Sat, 29 Jul 2017 23:46:33 +0900 Subject: [PATCH 0930/3440] Add github.com/utahta/go-cronowriter (#1508) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9aca776212b..321b764dba9 100644 --- a/README.md +++ b/README.md @@ -607,6 +607,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [glg](https://github.com/kpango/glg) - glg is simple and fast leveled logging library for Go. * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. +* [go-cronowriter](https://github.com/utahta/go-cronowriter) A simple writer that rotate log files automatically based on current date and time, like cronolog. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. From 8623beed996b6c3269576fa9695d053dc9bddf4f Mon Sep 17 00:00:00 2001 From: Andrew Bashkatov Date: Sun, 30 Jul 2017 02:08:38 +0500 Subject: [PATCH 0931/3440] Add go-floc (#1509) Add workanator/go-floc package in Goroutines --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 321b764dba9..a359ec26404 100644 --- a/README.md +++ b/README.md @@ -521,6 +521,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for managing and working with Goroutines.* +* [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 * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. From 6da1e54186a7783e94bbedfd122960857c3ebba2 Mon Sep 17 00:00:00 2001 From: Linh Tran Tuan Date: Tue, 1 Aug 2017 16:59:30 +0700 Subject: [PATCH 0932/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a359ec26404..66be9b2fdf8 100644 --- a/README.md +++ b/README.md @@ -1218,6 +1218,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. +* [mssqlx](https://github.com/linxGnu/mssqlx) - HA client for master slave (or master master) database which integrates simple, lightweight round-robin balancer. Based on [sqlx](https://github.com/jmoiron/sqlx) * [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. From 377dede5a0505d4090cefe84e901f524e4a168ac Mon Sep 17 00:00:00 2001 From: Linh Tran Tuan Date: Tue, 1 Aug 2017 17:03:20 +0700 Subject: [PATCH 0933/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 66be9b2fdf8..150ddc4e326 100644 --- a/README.md +++ b/README.md @@ -1218,7 +1218,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. -* [mssqlx](https://github.com/linxGnu/mssqlx) - HA client for master slave (or master master) database which integrates simple, lightweight round-robin balancer. Based on [sqlx](https://github.com/jmoiron/sqlx) +* [mssqlx](https://github.com/linxGnu/mssqlx) - HA client for master slave (or master master) database which integrates simple, lightweight round-robin balancer. Based on sqlx. * [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. From 9580f43fb99b3d72ee0ef8c9b9eb8f6aa1b4231a Mon Sep 17 00:00:00 2001 From: Linh Tran Tuan Date: Tue, 1 Aug 2017 17:16:05 +0700 Subject: [PATCH 0934/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 150ddc4e326..653451af676 100644 --- a/README.md +++ b/README.md @@ -1217,8 +1217,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. -* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [mssqlx](https://github.com/linxGnu/mssqlx) - HA client for master slave (or master master) database which integrates simple, lightweight round-robin balancer. Based on sqlx. +* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [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. From 1e6d4bd840848f0be599abdeff32912b6983ea82 Mon Sep 17 00:00:00 2001 From: Will Dixon Date: Wed, 2 Aug 2017 13:02:54 -0400 Subject: [PATCH 0935/3440] Adding skywalker to the list (#1514) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a359ec26404..49ffc83f41b 100644 --- a/README.md +++ b/README.md @@ -453,6 +453,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [skywalker](https://github.com/dixonwille/skywalker) - A package to allow one to concurrently go through a filesystem with ease. * [tarfs](https://github.com/posener/tarfs) - An implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. ## Financial From 37901c0b161d08e9e2491772f7beda0920410a1b Mon Sep 17 00:00:00 2001 From: Linh Tran Tuan Date: Thu, 3 Aug 2017 10:54:34 +0700 Subject: [PATCH 0936/3440] Adding mssqlx (production library at iparking.vn) (#1513) * Update README.md * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 49ffc83f41b..c87732b647f 100644 --- a/README.md +++ b/README.md @@ -1218,6 +1218,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. +* [mssqlx](https://github.com/linxGnu/mssqlx) - HA client for master slave (or master master) database which integrates simple, lightweight round-robin balancer. Based on sqlx. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. * [ngrok](https://github.com/inconshreveable/ngrok) - Introspected tunnels to localhost. From beadcd4be9be4c3834c910d522d15042e78b1cbc Mon Sep 17 00:00:00 2001 From: Will Dixon Date: Wed, 2 Aug 2017 23:55:14 -0400 Subject: [PATCH 0937/3440] Add OpenPeeDeeP/xdg package to the list (#1515) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c87732b647f..da666493b66 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mini](https://github.com/sasbury/mini) - A golang package for parsing ini-style configuration files * [store](https://github.com/tucnak/store) - A lightweight configuration manager for Go * [viper](https://github.com/spf13/viper) - Go configuration with fangs +* [xdg](https://github.com/OpenPeeDeeP/xdg) - A cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) ## Continuous Integration From 2eae87adf3df2408b62520990d8b297908c8ab3a Mon Sep 17 00:00:00 2001 From: Linh Tran Tuan Date: Thu, 3 Aug 2017 21:55:38 +0700 Subject: [PATCH 0938/3440] Add goseaweedfs (a SeaweedFS client) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da666493b66..aac6586aa5f 100644 --- a/README.md +++ b/README.md @@ -1195,6 +1195,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. +* [goseaweedfs](github.com/linxGnu/goseaweedfs) - A complete SeaweedFS client library. * [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. From 975eb763abadbefd9be18b5cc862b0703bfa726a Mon Sep 17 00:00:00 2001 From: Linh Tran Tuan Date: Thu, 3 Aug 2017 21:57:41 +0700 Subject: [PATCH 0939/3440] Add goseaweedfs (a SeaweedFS client) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aac6586aa5f..b369415f2da 100644 --- a/README.md +++ b/README.md @@ -1195,7 +1195,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. -* [goseaweedfs](github.com/linxGnu/goseaweedfs) - A complete SeaweedFS client library. +* [goseaweedfs](github.com/linxGnu/goseaweedfs) - A 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 * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. From 17364ec9caec1c0d0fe37812c4da0abf1ccb3e86 Mon Sep 17 00:00:00 2001 From: shixzie Date: Thu, 3 Aug 2017 12:40:01 -0430 Subject: [PATCH 0940/3440] Add Shixzie/nlp to Natural Language Processing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da666493b66..6ba575956fe 100644 --- a/README.md +++ b/README.md @@ -761,6 +761,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [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. From 072ad1439b44ca18dcf6a87cd43aa274d1ca661e Mon Sep 17 00:00:00 2001 From: Linh Tran Tuan Date: Fri, 4 Aug 2017 23:40:02 +0700 Subject: [PATCH 0941/3440] Update goseaweedfs url (#1519) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 600a749bce7..9d089b79093 100644 --- a/README.md +++ b/README.md @@ -1196,7 +1196,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. -* [goseaweedfs](github.com/linxGnu/goseaweedfs) - A SeaweedFS client library with almost full features. +* [goseaweedfs](https://github.com/linxGnu/goseaweedfs) - A 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 * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. From 9865213dee94b6ea38a2ae5b911464d2b894a916 Mon Sep 17 00:00:00 2001 From: Kirill Danshin Date: Sun, 6 Aug 2017 17:56:36 +0300 Subject: [PATCH 0942/3440] add avgRating (#1520) Signed-off-by: Kirill Danshin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9d089b79093..7e4737094ae 100644 --- a/README.md +++ b/README.md @@ -708,6 +708,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [alice](https://github.com/magic003/alice) - An additive dependency injection container for Golang. * [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. * [battery](https://github.com/distatus/battery) - A cross-platform, normalized battery information library. * [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. From 003c78f74ec5c4874d91d8fa6bed482540ca6fef Mon Sep 17 00:00:00 2001 From: sjfricke Date: Sun, 6 Aug 2017 17:36:54 -0700 Subject: [PATCH 0943/3440] Removed A/An prefixes To be compliant with awesome guidelines --- README.md | 618 +++++++++++++++++++++++++++--------------------------- 1 file changed, 309 insertions(+), 309 deletions(-) diff --git a/README.md b/README.md index 7e4737094ae..e4065448b83 100644 --- a/README.md +++ b/README.md @@ -87,37 +87,37 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* -* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. -* [flac](https://github.com/mewkiz/flac) - A native Go FLAC decoder. -* [gaad](https://github.com/Comcast/gaad) - A native Go AAC bitstream parser +* [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 * [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 * [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. -* [mp3](https://github.com/tcolgate/mp3) - A native Go MP3 decoder. +* [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. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. -* [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). +* [vorbis](https://github.com/mccoyst/vorbis) - "Native" Go Vorbis decoder (uses CGO, but has no dependencies). * [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. ## Authentication and OAuth *Libraries for implementing authentications schemes.* -* [authboss](https://github.com/go-authboss/authboss) - A modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. -* [casbin](https://github.com/hsluoyz/casbin) - An authorization library that supports access control models like ACL, RBAC, ABAC. +* [authboss](https://github.com/go-authboss/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. +* [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. -* [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. -* [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - A standalone, specification-compliant, OAuth2 server written in Golang. +* [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. +* [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - Standalone, specification-compliant, OAuth2 server written in Golang. * [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. * [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. -* [jwt](https://github.com/robbert229/jwt) - A clean and easy to use implementation of JSON Web Tokens (JWT). +* [jwt](https://github.com/robbert229/jwt) - Clean and easy to use implementation of JSON Web Tokens (JWT). * [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for goLang http servers with many configuration options. * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. @@ -125,9 +125,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). -* [sessions](https://github.com/adam-hanna/sessions) - A dead simple, highly performant, highly customizable sessions service for go http servers. -* [traefik](https://github.com/containous/traefik) - A reverse proxy and load balancer with support for multiple backends. -* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. +* [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. +* [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. +* [yubigo](https://github.com/GeertJohan/yubigo) - Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. ## Command Line @@ -135,28 +135,28 @@ 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) - A Go library to split command line string as arguments array using the bash syntax. -* [cli](https://github.com/mkideal/cli) - A feature-rich and easy to use command-line package based on golang tag +* [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-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line application. -* [climax](http://github.com/tucnak/climax) - An alternative CLI with "human face", in spirit of Go command -* [cobra](https://github.com/spf13/cobra) - A 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) - A command-line arguments parser that will make you smile. +* [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) - A simple but powerful command line option parsing library for Go support subcommand +* [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) - A command line and flag parser supporting sub commands. -* [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. -* [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. -* [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. +* [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. +* [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. -* [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. +* [readline](https://github.com/chzyer/readline) - Pure golang implementation that provide most of features in GNU-Readline under MIT license. * [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. -* [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. -* [urfave/cli](https://github.com/urfave/cli) - A simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). -* [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency. -* [wmenu](https://github.com/dixonwille/wmenu) - An easy to use menu structure for cli applications that prompts users to make choices. +* [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. +* [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). +* [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency. +* [wmenu](https://github.com/dixonwille/wmenu) - Easy to use menu structure for cli applications that prompts users to make choices. ### Advanced Console UIs @@ -174,11 +174,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. -* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. +* [termtables](https://github.com/apcera/termtables) - Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). -* [uilive](https://github.com/gosuri/uilive) - A library for updating terminal output in realtime. -* [uiprogress](https://github.com/gosuri/uiprogress) - A flexible library to render progress bars in terminal applications. -* [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data. +* [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. +* [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. +* [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data. ## Configuration @@ -192,17 +192,17 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 * [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) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) +* [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 -* [joshbetz/config](https://github.com/joshbetz/config) - A small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. -* [mini](https://github.com/sasbury/mini) - A golang package for parsing ini-style configuration files -* [store](https://github.com/tucnak/store) - A lightweight configuration manager for Go +* [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) - A cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) +* [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 @@ -211,7 +211,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - A recursive coverage testing tool +* [roveralls](https://github.com/LawrenceWoodman/roveralls) - Recursive coverage testing tool ## CSS Preprocessors @@ -231,17 +231,17 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 -* [count-min-log](https://github.com/seiflotfy/count-min-log) - A Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory). +* [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) - A Go implementation of Adaptive Radix Tree. -* [go-datastructures](https://github.com/Workiva/go-datastructures) - A collection of useful, performant, and thread-safe data structures +* [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-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. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. -* [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. -* [gota](https://github.com/kniren/gota) - An implementation of dataframes, series, and data wrangling methods for Go. +* [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. +* [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. * [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. @@ -251,7 +251,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - An in-memory LRU string-interface{} map with expiration for golang +* [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 @@ -259,19 +259,19 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Databases implemented in Go.* * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. -* [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. -* [buntdb](https://github.com/tidwall/buntdb) - A fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. -* [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. -* [cockroach](https://github.com/cockroachdb/cockroach) - A Scalable, Geo-Replicated, Transactional Datastore -* [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server. +* [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 +* [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) - A home-grown disk-backed key-value store. +* [diskv](https://github.com/peterbourgon/diskv) - Home-grown disk-backed key-value store. * [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. -* [geocache](https://github.com/melihmucuk/geocache) - An in-memory cache that is suitable for geolocation based applications. -* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. -* [goleveldb](https://github.com/syndtr/goleveldb) - An implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in the Go. +* [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. +* [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 * [ledisdb](https://github.com/siddontang/ledisdb) - Ledisdb is a high performance NoSQL like Redis based on LevelDB. @@ -280,11 +280,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. -* [Scribble](https://github.com/nanobox-io/golang-scribble) - A tiny flat file JSON store. +* [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. * [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. -* [Tile38](https://github.com/tidwall/tile38) - A geolocation DB with spatial index and realtime geofencing. +* [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. *Database schema migration.* @@ -299,12 +299,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Database tools.* -* [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. +* [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. * [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) - A web-based PostgreSQL database browser +* [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. @@ -312,7 +312,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - An idiomatic SQL builder and query library. +* [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. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. @@ -342,13 +342,13 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. - * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. + * [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 - * [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra. + * [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 @@ -358,25 +358,25 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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/hoisie/redis) - A simple, powerful Redis client for Go. + * [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 - * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. + * [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. - * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library. - * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. - * [skizze](https://github.com/seiflotfy/skizze) - A probabilistic data-structures service and storage. + * [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. + * [goes](https://github.com/belogik/goes) - Library to interact with Elasticsearch. + * [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. ## Date and Time *Libraries for working with dates and times.* -* [carbon](https://github.com/uniplaces/carbon) - A simple Time extension with a lot of util methods, ported from PHP Carbon library. -* [durafmt](https://github.com/hako/durafmt) - A time duration formatting library for Go. -* [feiertage](https://github.com/wlbr/feiertage) - A set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecoast, Thanksgiving... +* [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library. +* [durafmt](https://github.com/hako/durafmt) - Uime duration formatting library for Go. +* [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecoast, Thanksgiving... * [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. @@ -387,26 +387,26 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* -* [celeriac](https://github.com/svcavallar/celeriac.v1) - A 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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. -* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. -* [go-kit](https://github.com/go-kit/kit) - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. +* [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. +* [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [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) - A very newbility RPC Library, support 25+ languages now. +* [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) - A 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) - A pluggable microservice toolkit and distributed systems platform. -* [NATS](https://github.com/nats-io/gnatsd) - A lightweight, high performance messaging system for microservices, IoT, and cloud native systems. +* [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 -* [rpcx](https://github.com/smallnest/rpcx) - A distributed pluggable RPC service framework like alibaba Dubbo. -* [sleuth](https://github.com/ursiform/sleuth) - A library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq)). +* [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. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. * [dht](https://godoc.org/github.com/anacrolix/dht) - BitTorrent Kademlia DHT implementation. @@ -418,9 +418,9 @@ 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) - A DKIM library, to sign & verify email. -* [go-imap](https://github.com/emersion/go-imap) - An IMAP library for clients and servers -* [go-message](https://github.com/emersion/go-message) - A streaming library for the Internet Message Format and mail messages +* [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 * [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 @@ -437,25 +437,25 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - A port of the Lua 5.2 VM to pure 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) - a Lua 5.1 VM and compiler written in Go +* [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) - A JavaScript interpreter written in Go +* [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 *Libraries for handling files and file systems.* -* [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go. +* [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. -* [skywalker](https://github.com/dixonwille/skywalker) - A package to allow one to concurrently go through a filesystem with ease. -* [tarfs](https://github.com/posener/tarfs) - An implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. +* [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. +* [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. ## Financial @@ -477,26 +477,26 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [formam](https://github.com/monoculum/formam) - decode form's values into a struct. -* [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. +* [forms](https://github.com/albrow/forms) - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. -* [nosurf](https://github.com/justinas/nosurf) - A CSRF protection middleware for Go. +* [nosurf](https://github.com/justinas/nosurf) - CSRF protection middleware for Go. ## Game Development *Awesome game development libraries.* -* [Azul3D](https://github.com/azul3d/engine) - A 3D game engine written in Go -* [Ebiten](https://github.com/hajimehoshi/ebiten) - A 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-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) - A performance oriented 2D/3D math package for Go -* [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang -* [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework -* [Pixel](https://github.com/faiface/pixel) - A 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 +* [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 @@ -509,13 +509,13 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. -* [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. +* [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection. ## Go Compilers *Tools for compiling Go to other languages.* -* [gopherjs](https://github.com/gopherjs/gopherjs) - A compiler from Go to JavaScript. +* [gopherjs](https://github.com/gopherjs/gopherjs) - Compiler from Go to JavaScript. * [llgo](https://github.com/go-llvm/llgo) - LLVM-based compiler for Go. * [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. @@ -527,9 +527,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. -* [pool](https://github.com/go-playground/pool) - a limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. +* [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. -* [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. +* [tunny](https://github.com/Jeffail/tunny) - Goroutine pool for golang. ## GUI @@ -567,7 +567,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for manipulating images.* -* [bild](https://github.com/anthonynsimon/bild) - A collection of image processing algorithms in pure Go. +* [bild](https://github.com/anthonynsimon/bild) - Collection of image processing algorithms in pure Go. * [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. * [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. @@ -580,11 +580,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. * [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. * [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. -* [img](https://github.com/hawx/img) - A selection of image manipulation tools. +* [img](https://github.com/hawx/img) - Selection of image manipulation tools. * [ln](https://github.com/fogleman/ln) - 3D line art rendering in Go. -* [mpo](https://github.com/donatj/mpo) - A decoder and conversion tool for MPO 3D Photos. +* [mpo](https://github.com/donatj/mpo) - Decoder and conversion tool for MPO 3D Photos. * [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go. -* [pt](https://github.com/fogleman/pt) - A path tracing engine written in Go. +* [pt](https://github.com/fogleman/pt) - Path tracing engine written in Go. * [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods. * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. * [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. @@ -595,7 +595,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for programming devices of the IoT.* -* [connectordb](https://github.com/connectordb/connectordb) - An Open-Source Platform for Quantified Self & IoT. +* [connectordb](https://github.com/connectordb/connectordb) - Open-Source Platform for Quantified Self & IoT. * [devices](https://github.com/goiot/devices) - Suite of libraries for IoT devices, experimental for x/exp/io. * [eywa](https://github.com/xcodersun/eywa) - Project Eywa is essentially a connection manager that keeps track of connected devices. * [flogo](https://github.com/tibcosoftware/flogo) - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. @@ -610,9 +610,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [glg](https://github.com/kpango/glg) - glg is simple and fast leveled logging library for Go. * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. -* [go-cronowriter](https://github.com/utahta/go-cronowriter) A simple writer that rotate log files automatically based on current date and time, like cronolog. +* [go-cronowriter](https://github.com/utahta/go-cronowriter) Simple writer that rotate log files automatically based on current date and time, like cronolog. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. -* [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. +* [go-log](https://github.com/ian-kent/go-log) - Log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. @@ -622,23 +622,23 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - An golang log lib, supports tracking and level, wrap by standard log lib +* [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) - a structured logger 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/). * [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. -* [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. +* [logxi](https://github.com/mgutz/logxi) - 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. -* [mlog](https://github.com/jbrodriguez/mlog) - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. +* [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 * [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) - A Go package striving to emulate the features of the BSD tail program. +* [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. -* [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. +* [xlog](https://github.com/rs/xlog) - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. * [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. * [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. @@ -663,7 +663,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. * [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. * [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) - A multilayer perceptron network implemented in Go, with training via backpropagation. +* [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 @@ -683,66 +683,66 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-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) - A client library to Viessmann Vitotrol web service. +* [go-vitotrol](https://github.com/maxatome/go-vitotrol) - Client library to Viessmann Vitotrol web service. * [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 * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. -* [gorush](https://github.com/appleboy/gorush) - A 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) - A 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. -* [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. +* [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. +* [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [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) - A lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library. +* [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) - A generic oplog/replication system for REST APIs -* [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. +* [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 -* [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. -* [Uniqush-Push](https://github.com/uniqush/uniqush-push) - A redis backed unified push service for server-side notifications to mobile devices. -* [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). +* [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). ## Miscellaneous *These libraries were placed here because none of the other categories seemed to fit.* -* [alice](https://github.com/magic003/alice) - An additive dependency injection container for Golang. +* [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 * [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. -* [battery](https://github.com/distatus/battery) - A cross-platform, normalized battery information library. +* [battery](https://github.com/distatus/battery) - Cross-platform, normalized battery information library. * [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. -* [errors](https://github.com/pkg/errors) - A package that provides simple error handling primitives. +* [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. * [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) - A generic object pool for Golang. -* [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. -* [go-openapi](https://github.com/go-openapi) - A collection of packages to parse and utilize open-api schemas +* [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-sarah](https://github.com/oklahomer/go-sarah) - A framework to build bot for desired chat services including LINE, Slack, Gitter and more. +* [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 * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. -* [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). +* [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 -* [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data. +* [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) - A Easy to use, extensible health check library. -* [indigo](https://github.com/osamingo/indigo) - A distributed unique ID generator of using Sonyflake and encoded by Base58. -* [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. -* [margelet](https://github.com/zhulik/margelet) - A framework for building Telegram bots. +* [health](https://github.com/dimiro1/health) - Easy to use, extensible health check library. +* [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. +* [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) - An 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 -* [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. +* [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. ## Natural Language Processing @@ -750,7 +750,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dpar](https://github.com/danieldk/dpar/) - Transition-based statistical dependency parser. * [go-eco](https://github.com/ThePaw/go-eco) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. -* [go-i18n](https://github.com/nicksnyder/go-i18n/) - A package and an accompanying tool to work with localized text. +* [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. * [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. * [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. @@ -766,16 +766,16 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. -* [RAKE.go](https://github.com/Obaied/RAKE.go) - A Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE) -* [segment](https://github.com/blevesearch/segment) - A 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) - A sentence tokenizer: converts text into a list of sentences. +* [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) +* [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) - A Go package for n-gram based text categorization, with support for utf-8 and raw text -* [whatlanggo](https://github.com/abadojack/whatlanggo) - A 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) - A natural EN and RU language date/time parser with pluggable rules +* [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 ## Networking @@ -786,25 +786,25 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -* [ether](https://github.com/songgao/ether) - A cross-platform Go package for sending and receiving ethernet frames. +* [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 * [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) - A Go library for downloading files or directories from various sources using a URL. -* [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). +* [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) - A Go library for packet processing with libpcap bindings -* [gopcap](https://github.com/akrennmair/gopcap) - A 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) - A Go package for quickly writing tcp applications +* [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) - An experimental FTP server framework. +* [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 - A Fast and Reliable ARQ Protocol. -* [kcptun](https://github.com/xtaci/kcptun) - An extremely simple & fast udp tunnel based on KCP protocol -* [lhttp](https://github.com/fanux/lhttp) - A powerful websocket framework, build your IM server more easily. +* [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 +* [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 * [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 @@ -815,11 +815,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [ssh](https://github.com/gliderlabs/ssh) - Higher-level API for building SSH servers (wraps crypto/ssh). * [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) - A Go library for building tcp servers faster. +* [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) - A simple TUN/TAP library -* [winrm](https://github.com/masterzen/winrm) - A Go WinRM client to remotely execute commands on Windows machines -* [xtcp](https://github.com/xfxdev/xtcp) - A TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol. +* [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 @@ -835,19 +835,19 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* -* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. Support: pq/mysql/sqlite3. +* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - Powerful orm framework for go. Support: pq/mysql/sqlite3. * [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. -* [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. -* [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. +* [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. +* [gomodel](https://github.com/cosiner/gomodel) - Lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. * [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. -* [reform](https://github.com/go-reform/reform) - A better ORM for Go, based on non-empty interfaces and code generation. -* [SQLBoiler](https://github.com/vattle/sqlboiler) - An ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. +* [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. +* [SQLBoiler](https://github.com/vattle/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. -* [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. +* [Zoom](https://github.com/albrow/zoom) - Blazing-fast datastore and querying engine built on Redis. ## Package Management @@ -858,7 +858,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [glide](https://github.com/Masterminds/glide) - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. * [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) - A simple dependency manager for Go (golang), inspired by Bundler. +* [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 * [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. @@ -872,7 +872,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. * [graphql](https://github.com/sevki/graphql) - GraphQL implementation in go. * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. -* [graphql-go](https://github.com/graphql-go/graphql) - An implementation of GraphQL for Go. +* [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. ## Resource Embedding @@ -894,25 +894,25 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A simple floating point arithmetic expression evaluator +* [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) - A complex number library for the Go programming language. -* [gofrac](https://github.com/anschelsc/gofrac) - A (goinstallable) fractions library for go with support for basic arithmetic. +* [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 * [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) - A pure Go graph theory library(data structure, algorith visualization) -* [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language -* [graph](https://github.com/yourbasic/graph) - A library of basic graph algorithms -* [ode](https://github.com/ChristopherRabotin/ode) - An ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions. +* [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 -* [stats](https://github.com/montanaflynn/stats) - A statistics package with common functions missing from the Golang standard library. +* [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) @@ -921,12 +921,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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) - An in-memory, application-driven jailer built in the spirit of fail2ban +* [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) * [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) - an scrypt package with a simple, obvious API and automatic cost calibration built-in. +* [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 ## Serialization @@ -940,7 +940,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A 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 * [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. @@ -950,11 +950,11 @@ 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) - A local webserver for developers -* [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. +* [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 -* [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. +* [yakvs](https://github.com/sci4me/yakvs) - Small, networked, in-memory key-value store. ## Template Engines @@ -963,21 +963,21 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. * [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. * [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. -* [ego](https://github.com/benbjohnson/ego) - A lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. +* [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) - A PDF document generator with high level support for text, drawing and images. +* [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 * [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 * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. -* [liquid](https://github.com/osteele/liquid) - A Go implementation of Shopify Liquid templates. -* [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. -* [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. +* [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. +* [pongo2](https://github.com/flosch/pongo2) - Django-like template-engine for Go. * [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) - A complete handlebars implementation in Go. +* [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/) -* [velvet](https://github.com/gobuffalo/velvet) - A complete handlebars implementation in Go. +* [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go. ## Testing @@ -990,13 +990,13 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them * [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) - a REST API testing framework + * [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) - A more advanced testing framework alternative to gotest. + * [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 * [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. @@ -1006,10 +1006,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 - * [restit](https://github.com/yookoala/restit) - A Go micro framework to help writing RESTful API integration test. + * [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) - A sacred extension to the standard go testing package. - * [wstest](https://github.com/posener/wstest) - A websocket client for unit-testing a websocket http.Handler. + * [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 @@ -1022,14 +1022,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A randomized testing system - * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values - * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework + * [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 * [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. - * [ggr](https://github.com/aandryashin/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. + * [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. * [selenoid](https://github.com/aandryashin/selenoid) - alternative Selenium hub server that launches browsers within containers. ## Text Processing @@ -1057,21 +1057,21 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A library for generating random strings from regular expressions. + * [goregen](https://github.com/zach-klippenstein/goregen) - Library for generating random strings from regular expressions. * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. * [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) - A 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) - A Go slugify application that handles string. + * [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) - A 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) - A fast string sorting algorithm. + * [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text ## Third-party APIs @@ -1079,12 +1079,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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) - A Go client library for the Twitter 1.1 API +* [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) - A Go client library for interacting with CircleCI's API -* [clarifai](https://github.com/samuelcouch/clarifai) - A Go client library for interfacing with the Clarifai API. +* [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 @@ -1097,28 +1097,28 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS. -* [go-myanimelist](https://github.com/nstratos/go-myanimelist) - A Go client library for accessing the [MyAnimeList API](http://myanimelist.net/modules.php?go=api). +* [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. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. -* [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API. +* [go-twitch](https://github.com/knspriggs/go-twitch) - Go client for interacting with the Twitch v3 API. * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. -* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library. +* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - Go MusicBrainz WS2 client library. * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. -* [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting. +* [google-analytics](https://github.com/chonthu/go-google-analytics) - Simple wrapper for easy google analytics reporting. * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. * [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. * [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. * [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) - A Golang SDK for Medium's OAuth2 API. -* [megos](https://github.com/andygrunwald/megos) - A client library for accessing an [Apache Mesos](http://mesos.apache.org/) cluster +* [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 * [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. @@ -1136,7 +1136,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A 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. @@ -1147,9 +1147,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *General utilities and tools to make your life easier.* -* [abutil](https://github.com/bahlo/abutil) - A collection of often-used Golang helpers. -* [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API. -* [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. +* [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 * [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 @@ -1164,24 +1164,24 @@ 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) - A 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 * [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-cron](https://github.com/rk/go-cron) - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. +* [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) - A modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...) -* [go-httpheader](https://github.com/mozillazg/go-httpheader) - A Go library for encoding structs into Header fields. -* [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go. -* [go-respond](https://github.com/nicklaw5/go-respond) - A Go package for handling common HTTP JSON responses. +* [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. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-torch](https://github.com/uber/go-torch) - Stochastic flame graph profiler for Go programs. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. -* [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. +* [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. @@ -1193,41 +1193,41 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -* [goreporter](https://github.com/wgliang/goreporter) - A Golang tool that does static analysis, unit testing, code review and generate code quality report. +* [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) - An enhanced simplified HTTP client based on gorequest. +* [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) - A SeaweedFS client library with almost full features. +* [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 * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. -* [grequests](https://github.com/levigross/grequests) - An 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 * [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) - A *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. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. -* [jsonhal](https://github.com/RichardKnop/jsonhal) - A simple Go package to make custom structs marshal into HAL compatible JSON responses. +* [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 * [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) - A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. +* [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. * [mmake](https://github.com/tj/mmake) - Modern Make. -* [moldova](https://github.com/StabbyCutyou/moldova) - A utility for generating random data based on an input template. -* [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. +* [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. +* [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. * [mssqlx](https://github.com/linxGnu/mssqlx) - HA client for master slave (or master master) database which integrates simple, lightweight round-robin balancer. Based on sqlx. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [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) - A 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. @@ -1249,9 +1249,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A Common Architecture™ for String Utilities in 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) - A 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 * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. @@ -1282,43 +1282,43 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. -* [v4l](https://github.com/korandiz/v4l) - A video capture library for Linux, written in Go. +* [v4l](https://github.com/korandiz/v4l) - Video capture library for Linux, written in Go. ## Web Frameworks *Full stack web frameworks.* -* [aah](https://aahframework.org) - A scalable, performant, rapid development Web framework for Go. -* [Air](https://github.com/sheng/air) - An ideal RESTful web framework for Go. +* [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go. +* [Air](https://github.com/sheng/air) - Ideal RESTful web framework for Go. * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [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) - A more "natural" feeling 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 -* [Gem](https://github.com/go-gem/gem) - A simple and fast web framework, friendly to REST API. +* [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. -* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API. -* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's. -* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go. +* [go-json-rest](https://github.com/ant0ine/go-json-rest) - Quick and easy way to setup a RESTful JSON API. +* [go-relax](https://github.com/codehack/go-relax) - Framework of pluggable components to build RESTful API's. +* [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. * [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis. -* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go. +* [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) - A fast Go web framework with input mapping/validation and (DI) Dependency Injection +* [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. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. -* [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. -* [REST Layer](http://rest-layer.io) - A framework to build REST/GraphQL API on top of databases with mostly configuration over code. -* [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. +* [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. +* [REST Layer](http://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. +* [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [sawsij](http://sawsij.com/) - 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) - A 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) - A lightweight MVC framework for Go(Golang). +* [utron](https://github.com/gernest/utron) - Lightweight MVC framework for Go(Golang). * [violetear](https://github.com/nbari/violetear) - Go HTTP router. * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. @@ -1360,32 +1360,32 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -* [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application. +* [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) - A 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. -* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`. -* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. +* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - High performance router forked from `httprouter`. The first router fit for `fasthttp`. +* [gocraft/web](https://github.com/gocraft/web) - Mux and middleware package in Go. * [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. * [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framwework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. -* [gowww/router](https://github.com/gowww/router) - A lightning fast HTTP router fully compatible with the net/http.Handler interface. -* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. +* [gowww/router](https://github.com/gowww/router) - Lightning fast HTTP router fully compatible with the net/http.Handler interface. +* [httprouter](https://github.com/julienschmidt/httprouter) - High performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. * [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. -* [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. +* [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 -* [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications. -* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. -* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. +* [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. # Tools @@ -1394,7 +1394,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Code Analysis * [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. -* [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. +* [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. * [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. @@ -1408,8 +1408,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. * [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [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) - A command line tool, shows the status of repositories that contain Go packages. -* [interfacer](https://github.com/mvdan/interfacer) - A linter that suggests interface types. +* [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 * [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. @@ -1422,18 +1422,18 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 -* [Goclipse](https://github.com/GoClipse/goclipse) - An Eclipse plugin for Go. -* [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language. -* [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. -* [velour](https://github.com/velour/velour) - An IRC client for the acme editor. -* [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. +* [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. +* [velour](https://github.com/velour/velour) - IRC client for the acme editor. +* [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - Vim plugin to highlight syntax errors on save. * [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. -* [vscode-go](https://github.com/Microsoft/vscode-go) - An extension for Visual Studio Code (VS Code) which provides support for the Go language. +* [vscode-go](https://github.com/Microsoft/vscode-go) - Extension for Visual Studio Code (VS Code) which provides support for the Go language. * [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. ## Go Tools -* [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. +* [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. * [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. * [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. @@ -1450,87 +1450,87 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. * [aurora](https://github.com/Luxurioust/aurora) - Cross-platform web-based Beanstalkd queue server console. -* [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile. +* [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. * [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. * [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. -* [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. +* [Dropship](https://github.com/chrismckenzie/dropship) - Tool for deploying code via cdn. * [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. -* [Gitea](https://github.com/go-gitea/gitea) - A fork of Gogs, entirely community driven. +* [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. * [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) - A “go build” wrapper to easily add version information into Go binaries -* [gox](https://github.com/mitchellh/gox) - A dead simple, no frills Go cross compile tool. +* [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. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. * [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) - A 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. * [Pewpew](https://github.com/bengadbois/pewpew) - Flexible HTTP command line stress tester. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. -* [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. +* [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). * [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the reponse code and data between each call for specific server stress based on its previous response. * [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. * [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) - A Web-based IDE for Teams using Golang. -* [winrm-cli](https://github.com/masterzen/winrm-cli) - A cli tool to remotely execute commands on Windows machines +* [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 ### Other Software -* [borg](https://github.com/crufter/borg) - A terminal based search engine for bash snippets +* [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) - A tiny webchat server in Go. +* [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. * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. * [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. -* [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. +* [Docker](http://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. -* [fleet](https://github.com/coreos/fleet) - A Distributed init System. -* [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. +* [fleet](https://github.com/coreos/fleet) - Distributed init System. +* [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - App that displays updates for the Go packages in your GOPATH. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. -* [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - A chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. +* [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. * [Gogland](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. -* [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer. -* [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine. -* [ipe](https://github.com/dimiro1/ipe) - An open source Pusher server implementation compatible with Pusher client libraries written in GO. -* [JayDiff](https://github.com/yazgazan/jaydiff) - A JSON diff utility written in Go. +* [hsync](http://ambrevar.bitbucket.org/hsync/) - Filesystem hierarchy synchronizer. +* [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. +* [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. +* [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. -* [Leaps](https://github.com/jeffail/leaps) - A pair programming service using Operational Transforms. +* [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms. * [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. * [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. -* [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. -* [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. -* [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. +* [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go. +* [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. +* [orange-cat](https://github.com/noraesae/orange-cat) - Markdown previewer written in Go. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. * [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. * [restic](https://github.com/restic/restic) - De-duplicating backup program. -* [rkt](https://github.com/coreos/rkt) - An App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. +* [rkt](https://github.com/coreos/rkt) - App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). -* [snap](https://github.com/intelsdi-x/snap) - A powerful telemetry framework. +* [snap](https://github.com/intelsdi-x/snap) - Powerful telemetry framework. * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. -* [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. +* [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. -* [toto](https://github.com/blogcin/ToTo) - A simple proxy server written in Go language, can be used together with browser. +* [toto](https://github.com/blogcin/ToTo) - Simple proxy server written in Go language, can be used together with browser. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. -* [tsuru](https://tsuru.io/) - An extensible and open source Platform as a Service software. +* [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. * [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart). * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). @@ -1543,14 +1543,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. * [go-benchmark-app](https://github.com/mrLSD/go-benchmark-app) - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results. -* [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - A few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. +* [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. * [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. * [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. * [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. * [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. * [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. * [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. -* [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - A collection of benchmarks for popular Go database/SQL utilities. +* [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - Collection of benchmarks for popular Go database/SQL utilities. * [gospeed](https://github.com/feyeleanor/GoSpeed) - Go micro-benchmarks for calculating the speed of language constructs. * [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. * [skynet](https://github.com/atemerev/skynet) - Skynet 1M threads microbenchmark. @@ -1593,19 +1593,19 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Websites * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. -* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - A curated list of awesome remote jobs. A lot of them is looking for Go hackers. +* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them is looking for Go hackers. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. -* [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. +* [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - Collection of Go articles and tutorials. * [Go Blog](http://blog.golang.org) - The official Go blog. * [Go Challenge](http://golang-challenge.org/) - Learn Go by solving problems and getting feedback from Go experts. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. * [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. -* [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - A collection of Go projects that needs help. Good place to start your open-source way in Go. +* [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. * [Golang Flow](http://golangflow.io) - Post Updates, News, Packages and more. * [Golang News](https://golangnews.com) - Links and news about Go programming. -* [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art. +* [golang-graphics](https://github.com/mholt/golang-graphics) - Collection of Go images, graphics, and art. * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. * [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. * [gowalker.org](https://gowalker.org) - Go Project API documentation. @@ -1615,11 +1615,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### Tutorials * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. -* [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - A golang ebook intro how to build a web app with golang. +* [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. -* [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs. -* [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - A Go's reference card. +* [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. +* [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. -* [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers. +* [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. From f9c5b10adaa3c93df60b7650c49c637488425e1b Mon Sep 17 00:00:00 2001 From: Seis Date: Mon, 7 Aug 2017 10:30:45 +0800 Subject: [PATCH 0944/3440] Update README.md add my own actively developping project: goworld, a game server engine in golang --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9d089b79093..c7fedaf1b96 100644 --- a/README.md +++ b/README.md @@ -495,6 +495,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang +* [goworld](https://github.com/xiaonanln/goworld) - A scalable game server engine, featuring space-entity framework and hot-reload * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework * [Pixel](https://github.com/faiface/pixel) - A 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. From 51c85753ed521cf2c15c222de5067fbdf4a383d4 Mon Sep 17 00:00:00 2001 From: Seis Date: Mon, 7 Aug 2017 15:26:31 +0800 Subject: [PATCH 0945/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7fedaf1b96..0e659923637 100644 --- a/README.md +++ b/README.md @@ -495,7 +495,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang -* [goworld](https://github.com/xiaonanln/goworld) - A scalable game server engine, featuring space-entity framework and hot-reload +* [goworld](https://github.com/xiaonanln/goworld) - A scalable game server engine, featuring space-entity framework and hot-swapping * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework * [Pixel](https://github.com/faiface/pixel) - A 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. From 396021f6c2e27d2f1255c2947ced23cbf158404f Mon Sep 17 00:00:00 2001 From: msiebeneicher Date: Mon, 7 Aug 2017 12:04:38 +0200 Subject: [PATCH 0946/3440] added trivago/gollum to messaging category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7e4737094ae..b8cef5e1680 100644 --- a/README.md +++ b/README.md @@ -684,6 +684,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - A 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 * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. From 0ddd5c7fa8837f7c0f6b380f0833962d64c2daf8 Mon Sep 17 00:00:00 2001 From: Bobby Larson Date: Tue, 8 Aug 2017 17:53:16 +0000 Subject: [PATCH 0947/3440] Updated link to authboss (#1531) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e4065448b83..c3638c6bfde 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for implementing authentications schemes.* -* [authboss](https://github.com/go-authboss/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. +* [authboss](https://github.com/volatiletech/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. * [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. From ee555b9f3f8d1365cd1cec9e008373074e1f6928 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Tue, 8 Aug 2017 20:44:35 -0700 Subject: [PATCH 0948/3440] Add patreon-go (#1532) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c3638c6bfde..da96174dd7f 100644 --- a/README.md +++ b/README.md @@ -1122,6 +1122,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [pushover](https://github.com/gregdel/pushover) - Go wrapper for the Pushover API. From f1c6c73c00299d2d420952185a0835805e2cf766 Mon Sep 17 00:00:00 2001 From: Jake Bailey Date: Tue, 8 Aug 2017 20:45:09 -0700 Subject: [PATCH 0949/3440] Update sqlboiler path (#1527) The repo was transferred to volatiletech, then forked back to vattle with a "moved" message. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da96174dd7f..eb0c7e754a7 100644 --- a/README.md +++ b/README.md @@ -844,7 +844,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. -* [SQLBoiler](https://github.com/vattle/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. +* [SQLBoiler](https://github.com/volatiletech/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - Blazing-fast datastore and querying engine built on Redis. From 9fc6827684583e79dd74acc0abd4a5a825a498eb Mon Sep 17 00:00:00 2001 From: Antoine Moreaux Date: Wed, 9 Aug 2017 05:45:35 +0200 Subject: [PATCH 0950/3440] fix error link sawsij (#1523) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eb0c7e754a7..49d41c585a2 100644 --- a/README.md +++ b/README.md @@ -1315,7 +1315,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [REST Layer](http://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. -* [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. +* [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 * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. From de15182befc2172db93224d10600875b624613a9 Mon Sep 17 00:00:00 2001 From: Awn Date: Fri, 11 Aug 2017 23:34:16 +0500 Subject: [PATCH 0951/3440] Add memguard. (#1536) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 467fd809fae..6534032b266 100644 --- a/README.md +++ b/README.md @@ -925,6 +925,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. From a286134cbb014ba814fbb31fc12dc93a986b0e63 Mon Sep 17 00:00:00 2001 From: bradleyjkemp Date: Fri, 11 Aug 2017 20:56:47 +0000 Subject: [PATCH 0952/3440] Add package: cupaloy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6534032b266..561ff96c497 100644 --- a/README.md +++ b/README.md @@ -990,6 +990,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 * [dsunit](https://github.com/viant/dsunit) - Datastore testing for SQL, NoSQL, structured files. * [frisby](https://github.com/verdverm/frisby) - REST API testing framework From dcabac91bce7cc32ae7dd71f1245b8a585f5466d Mon Sep 17 00:00:00 2001 From: Ilya Date: Sat, 12 Aug 2017 09:10:02 +0300 Subject: [PATCH 0953/3440] Add package (#1533) * Update README.md * Update README.md * fix lower case --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 561ff96c497..5e66910f018 100644 --- a/README.md +++ b/README.md @@ -676,6 +676,7 @@ 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 * [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). From 86b3d02defd3b7e77a876ae98691b3ab44c24a24 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 12 Aug 2017 01:50:16 -0500 Subject: [PATCH 0954/3440] Add Oak to Game Development section (#1534) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5e66910f018..511799cf8b1 100644 --- a/README.md +++ b/README.md @@ -496,6 +496,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 From f8ab2485b76a3fcf0ecfcc7561ff28803958bd29 Mon Sep 17 00:00:00 2001 From: Spencer Date: Sat, 12 Aug 2017 21:18:26 -0700 Subject: [PATCH 0955/3440] 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 5904dea7d4d..86f105eedbb 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 6d6fa706a08..d1b115c4db2 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 511799cf8b1..49f7917db63 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/) From 5c3d28415a6ac7f43c9a6ab7b31fab8b9312b536 Mon Sep 17 00:00:00 2001 From: Oliver Steele Date: Tue, 15 Aug 2017 02:09:33 -0400 Subject: [PATCH 0956/3440] Add osteele/tuesday (#1540) * Add osteele/tuesday * re-insert tuesday in correct position --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 49f7917db63..459e5a6afbb 100644 --- a/README.md +++ b/README.md @@ -382,6 +382,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. * [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. +* [tuesday](https://github.com/osteele/tuesday) - Ruby-compatible Strftime function. ## Distributed Systems From e61c26c1f7f1eaa808a9789184d44a2fdd62b435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hauke=20L=C3=B6ffler?= Date: Tue, 15 Aug 2017 08:10:27 +0200 Subject: [PATCH 0957/3440] remove hsync (#1542) dead link --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 459e5a6afbb..32924c1986c 100644 --- a/README.md +++ b/README.md @@ -1512,7 +1512,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. * [Gogland](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. -* [hsync](http://ambrevar.bitbucket.org/hsync/) - Filesystem hierarchy synchronizer. * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. * [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. From 1cca1f149f326289c2c40a044e28a3c6c99ad45f Mon Sep 17 00:00:00 2001 From: Aaron Raddon Date: Mon, 14 Aug 2017 23:13:00 -0700 Subject: [PATCH 0958/3440] Add dateparse pkg (#1539) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 32924c1986c..5bad8f3b1d9 100644 --- a/README.md +++ b/README.md @@ -375,6 +375,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for working with dates and times.* * [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library. +* [dateparse](https://github.com/araddon/dateparse) - Parse date's without knowing format in advance. * [durafmt](https://github.com/hako/durafmt) - Uime duration formatting library for Go. * [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecoast, Thanksgiving... * [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). From 1c096cc5551ae7615f649087ab0d322357707576 Mon Sep 17 00:00:00 2001 From: Paul Rosset Date: Tue, 15 Aug 2017 09:48:30 +0200 Subject: [PATCH 0959/3440] Go hacknews (#1538) * Adding go-hacknews in Third party API tab * Adding go-hacknews in Third Party API tab --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5bad8f3b1d9..edc26f8d5bd 100644 --- a/README.md +++ b/README.md @@ -1102,8 +1102,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-hacknews](https://github.com/PaulRosset/go-hacknews) - Tiny Go client for HackerNews API. +* [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. From 8984c1da11e60ae790f09d2d7ecffd39a9bf9574 Mon Sep 17 00:00:00 2001 From: Yaron Sumel Date: Tue, 15 Aug 2017 16:57:50 +0300 Subject: [PATCH 0960/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index edc26f8d5bd..90c2ea5846c 100644 --- a/README.md +++ b/README.md @@ -390,6 +390,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *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. +* [digota](https://github.com/digota/digota) - ecommerce microservice. * [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. From 51d0314ebfabd215b0747afd249a6c5ad32dffaf Mon Sep 17 00:00:00 2001 From: Yaron Sumel Date: Tue, 15 Aug 2017 16:58:46 +0300 Subject: [PATCH 0961/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 90c2ea5846c..a87abf74b5e 100644 --- a/README.md +++ b/README.md @@ -390,7 +390,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *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. -* [digota](https://github.com/digota/digota) - ecommerce microservice. +* [digota](https://github.com/digota/digota) - grpc ecommerce microservice. * [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. From ba39ccc43c8f16fbb76927d99e50506cce95382f Mon Sep 17 00:00:00 2001 From: Harry Scells Date: Wed, 16 Aug 2017 01:20:03 +0900 Subject: [PATCH 0962/3440] Add doi link. (#1543) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index edc26f8d5bd..103501dbab1 100644 --- a/README.md +++ b/README.md @@ -1048,6 +1048,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. * [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. From 005db16e67c66969bb54398a270c9747619eb91c Mon Sep 17 00:00:00 2001 From: Chris Lonng Date: Sat, 19 Aug 2017 14:59:29 +0800 Subject: [PATCH 0963/3440] add nano - Lightweight, facility, high performance golang based game server framework (#1546) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 103501dbab1..5556664c5e7 100644 --- a/README.md +++ b/README.md @@ -498,6 +498,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [nano](https://github.com/lonnng/nano) - Lightweight, facility, high performance golang based 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. From 7dd736e4a0d1d784e7dd92a51a0e4abdcdef9849 Mon Sep 17 00:00:00 2001 From: Alex Bice Date: Sat, 19 Aug 2017 19:50:21 -0700 Subject: [PATCH 0964/3440] Added go-enum (#1545) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bae595a2892..a4f90f51564 100644 --- a/README.md +++ b/README.md @@ -511,6 +511,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. * [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. * [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. From 288a75000ef9e5161a01232437d3f8486baa647d Mon Sep 17 00:00:00 2001 From: Coding Concepts Date: Fri, 25 Aug 2017 01:00:45 +0100 Subject: [PATCH 0965/3440] Added 'env' struct configuration CLI library (#1553) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a4f90f51564..c00eab6ed8e 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. * [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. From cb88d98429d9443b5396eed7c4fd0a45c5b523f3 Mon Sep 17 00:00:00 2001 From: Dobroslav Slavenskoj Date: Thu, 24 Aug 2017 20:01:10 -0400 Subject: [PATCH 0966/3440] Update README.md (#1552) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c00eab6ed8e..00be4cdc6f6 100644 --- a/README.md +++ b/README.md @@ -1296,6 +1296,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. +* [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. * [v4l](https://github.com/korandiz/v4l) - Video capture library for Linux, written in Go. ## Web Frameworks From 2508eb518045b4e862136f71ce7637cebf18820f Mon Sep 17 00:00:00 2001 From: Fried Egg Date: Fri, 25 Aug 2017 21:30:18 +0800 Subject: [PATCH 0967/3440] add goset (#1555) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 66b5364f623..b007987196f 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. +* [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. * [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. From 03f6e4a5ba26f883850bc890c402ee77e274901a Mon Sep 17 00:00:00 2001 From: Oliver Steele Date: Sun, 27 Aug 2017 14:42:42 -0400 Subject: [PATCH 0968/3440] Fix a typo (Not my library) I have quibbles with the capitalization but I limited this fix to the spelling error. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b007987196f..a83bac48452 100644 --- a/README.md +++ b/README.md @@ -623,7 +623,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - Log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. -* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. +* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Console, Simple Console, File or Elasticsearch. * [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. * [gone/log](https://github.com/One-com/gone/tree/master/log#readme) - Fast, extendable, full-featured, std-lib source compatible log library. * [log](https://github.com/apex/log) - Structured logging package for Go. From 48cc3fb8cd814ac0eb1400ecec9524b9efe3ebea Mon Sep 17 00:00:00 2001 From: Brian Downs Date: Sun, 27 Aug 2017 13:23:13 -0700 Subject: [PATCH 0969/3440] add align (#1554) * add align * reorder listing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a83bac48452..ab48b78635b 100644 --- a/README.md +++ b/README.md @@ -1050,6 +1050,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for parsing and manipulating texts.* * Specific Formats + * [align](https://github.com/Guitarbum722/align) - A general purpose application that aligns text. * [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. From 3c57ae80289bb747822375a895fc237412d1fb3e Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Sun, 27 Aug 2017 22:23:44 +0200 Subject: [PATCH 0970/3440] Adding Orbit (#1557) * Adding Orbit * Description end with a punctuation mark --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ab48b78635b..18806016135 100644 --- a/README.md +++ b/README.md @@ -1535,6 +1535,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - Markdown previewer written in Go. +* [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. * [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. * [restic](https://github.com/restic/restic) - De-duplicating backup program. From 1db7e1e33ba425f2e8a8fd65724deba557d3a7d7 Mon Sep 17 00:00:00 2001 From: Viet Hung Nguyen Date: Tue, 29 Aug 2017 10:03:55 +0700 Subject: [PATCH 0971/3440] Add missing separators and fix the wrong one --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 18806016135..87553879377 100644 --- a/README.md +++ b/README.md @@ -241,7 +241,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. -* [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. +* [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. * [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. @@ -336,7 +336,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. - * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). + * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. @@ -619,7 +619,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [glg](https://github.com/kpango/glg) - glg is simple and fast leveled logging library for Go. * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. -* [go-cronowriter](https://github.com/utahta/go-cronowriter) Simple writer that rotate log files automatically based on current date and time, like cronolog. +* [go-cronowriter](https://github.com/utahta/go-cronowriter) - Simple writer that rotate log files automatically based on current date and time, like cronolog. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - Log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. @@ -931,7 +931,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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. +* [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). @@ -979,7 +979,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [hero](https://github.com/shiyanhui/hero) Hero is a handy, fast and powerful go template engine. +* [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. * [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. @@ -1299,7 +1299,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. -* [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. +* [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. * [v4l](https://github.com/korandiz/v4l) - Video capture library for Linux, written in Go. ## Web Frameworks From d551daa88928ce0f380304b3efea3313d227371b Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 29 Aug 2017 05:29:30 +0200 Subject: [PATCH 0972/3440] Add dgraph-io/badger --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 18806016135..1a8c34d3196 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Databases implemented in Go.* +* [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. * [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. From ac153fd6e7eb863bbe9374b933d2e8844a12038c Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 31 Aug 2017 12:10:42 +0800 Subject: [PATCH 0973/3440] add gop - Build and manage your Go applications out of GOPATH (#1547) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87553879377..fe1daeafcaa 100644 --- a/README.md +++ b/README.md @@ -870,6 +870,7 @@ 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. +* [gop](https://github.com/lunny/gop) - Build and manage your Go applications out of GOPATH * [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. From d41b02588cb61e482a729ec10a7d422728c7e964 Mon Sep 17 00:00:00 2001 From: Viet Hung Nguyen Date: Thu, 31 Aug 2017 11:18:01 +0700 Subject: [PATCH 0974/3440] Add test to find out malformed separators. (#1564) Fix all links failed the test. --- README.md | 18 +++++++++--------- repo_test.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index fe1daeafcaa..0a8fdddae75 100644 --- a/README.md +++ b/README.md @@ -477,7 +477,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *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. @@ -640,7 +640,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. * [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. +* [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. @@ -1031,7 +1031,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [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. @@ -1101,7 +1101,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [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. @@ -1417,7 +1417,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. * [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. -* [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. +* [go-checkstyle](https://github.com/qiniu/checkstyle) - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. * [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects. * [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. @@ -1488,7 +1488,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [grapes](https://github.com/yaronsumel/grapes) - Lightweight tool designed to distribute commands over ssh with ease. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. * [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. @@ -1529,9 +1529,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms. -* [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. -* [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. -* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. +* [limetext](http://limetext.org/) - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. +* [LiteIDE](https://github.com/visualfc/liteide) - LiteIDE is a simple, open source, cross-platform Go IDE. +* [mockingjay](https://github.com/quii/mockingjay-server) - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. * [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. diff --git a/repo_test.go b/repo_test.go index 8bbff86103c..98bea17c202 100644 --- a/repo_test.go +++ b/repo_test.go @@ -3,6 +3,7 @@ package main import ( "bytes" "io/ioutil" + "regexp" "sort" "strings" "testing" @@ -39,6 +40,37 @@ func TestDuplicatedLinks(t *testing.T) { }) } +var ( + reContainsLink = regexp.MustCompile(`\* \[.*\]\(.*\)`) + reOnlyLink = regexp.MustCompile(`\* \[.*\]\(.*\)$`) + reLinkWithDescription = regexp.MustCompile(`\* \[.*\]\(.*\) - \S`) +) + +// Test if an entry has description, it must be separated from link with ` - ` +func TestSeparator(t *testing.T) { + var matched, containsLink, noDescription bool + input, err := ioutil.ReadFile("./README.md") + if err != nil { + panic(err) + } + lines := strings.Split(string(input), "\n") + for _, line := range lines { + line = strings.Trim(line, " ") + containsLink = reContainsLink.MatchString(line) + if containsLink { + noDescription = reOnlyLink.MatchString(line) + if noDescription { + continue + } + + matched = reLinkWithDescription.MatchString(line) + if !matched { + t.Errorf("expected entry to be in form of `* [link] - description`, got '%s'", line) + } + } + } +} + func testList(t *testing.T, list *goquery.Selection) { list.Find("ul").Each(func(_ int, items *goquery.Selection) { testList(t, items) From 5385546b0511db3d1315c572e9313ed29435d686 Mon Sep 17 00:00:00 2001 From: Viet Hung Nguyen Date: Sat, 2 Sep 2017 00:27:51 +0700 Subject: [PATCH 0975/3440] Remove unnecessary queries - be consistent with others (#1567) --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0a8fdddae75..8901c5effee 100644 --- a/README.md +++ b/README.md @@ -195,7 +195,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [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. +* [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - 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. @@ -408,7 +408,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [raft](https://github.com/coreos/etcd/tree/master/raft) - 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. * [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)). @@ -625,7 +625,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Console, Simple Console, File or Elasticsearch. * [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. -* [gone/log](https://github.com/One-com/gone/tree/master/log#readme) - Fast, extendable, full-featured, std-lib source compatible log library. +* [gone/log](https://github.com/One-com/gone/tree/master/log) - Fast, extendable, full-featured, std-lib source compatible log library. * [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. @@ -1519,7 +1519,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Docker](http://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. * [fleet](https://github.com/coreos/fleet) - Distributed init System. -* [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - App that displays updates for the Go packages in your GOPATH. +* [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. * [Gogland](https://jetbrains.com/go) - Full featured cross-platform Go IDE. From ad29715da1870ccd3b894c26bbe6f475bd883c4f Mon Sep 17 00:00:00 2001 From: Viet Hung Nguyen Date: Sat, 2 Sep 2017 00:28:21 +0700 Subject: [PATCH 0976/3440] Reorder, midlewares and router should be under Web Frameworks section (#1565) --- README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 8901c5effee..9b9043415e7 100644 --- a/README.md +++ b/README.md @@ -1342,21 +1342,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. -## Windows - -* [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 - -*Libraries and tools for manipulating XML.* - -* [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. -* [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. -* [xmlwriter](https://github.com/shabbyrobe/xmlwriter) - Procedural XML generation API based on libxml2's xmlwriter module. -* [xpath](https://github.com/antchfx/xpath) - XPath package for Go. -* [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. - ### Middlewares #### Actual middlewares @@ -1406,6 +1391,21 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +## Windows + +* [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 + +*Libraries and tools for manipulating XML.* + +* [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. +* [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. +* [xmlwriter](https://github.com/shabbyrobe/xmlwriter) - Procedural XML generation API based on libxml2's xmlwriter module. +* [xpath](https://github.com/antchfx/xpath) - XPath package for Go. +* [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. + # Tools *Go software and plugins.* From 18eb116664d21eac345ab3a7075493eb02567adb Mon Sep 17 00:00:00 2001 From: James Bowman Date: Fri, 1 Sep 2017 18:56:56 +0100 Subject: [PATCH 0977/3440] Added nlp and sparse libraries (#1568) * added nlp and sparse libraries * corrected ordering --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b9043415e7..6f6eda10f44 100644 --- a/README.md +++ b/README.md @@ -774,6 +774,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [nlp](https://github.com/james-bowman/nlp) - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis). * [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. @@ -924,6 +925,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [sparse](https://github.com/james-bowman/sparse) - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. * [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). @@ -947,9 +949,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries and tools for binary serialization.* * [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang. +* [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. * [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. * [goprotobuf](https://github.com/golang/protobuf) - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. From 29258e6637feac05fd1bd15bd00f1afa31993b41 Mon Sep 17 00:00:00 2001 From: Mester19 Date: Mon, 4 Sep 2017 14:05:17 +0200 Subject: [PATCH 0978/3440] Added GoSlaves in Goroutines --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6f6eda10f44..1b7c9907cfa 100644 --- a/README.md +++ b/README.md @@ -534,6 +534,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. +* [GoSlaves](https://github.com/Mester19/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [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. From 579ae67d4be6ee24183990d2d85d867be591aea7 Mon Sep 17 00:00:00 2001 From: Walter Schulze Date: Tue, 5 Sep 2017 07:30:09 +0200 Subject: [PATCH 0979/3440] add goderive (#1556) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6f6eda10f44..5539173b9cc 100644 --- a/README.md +++ b/README.md @@ -516,6 +516,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gen](https://github.com/clipperhouse/gen) - Code generation tool for ‘generics’-like functionality. * [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. * [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. +* [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. * [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. * [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection. From 210818fdaf43c2199233552c516cf4adb47b4a7a Mon Sep 17 00:00:00 2001 From: Ri Xu Date: Tue, 5 Sep 2017 17:23:17 +0800 Subject: [PATCH 0980/3440] Update repo URL for excelize lib. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5539173b9cc..9e148d13c2f 100644 --- a/README.md +++ b/README.md @@ -1181,7 +1181,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. * [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. -* [excelize](https://github.com/Luxurioust/excelize) - Golang library for reading and writing Microsoft Excel (XLSX) files. +* [excelize](https://github.com/360EntSecGroup-Skylar/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. * [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. From 6ff09901827a69b89f148c83e0f17f8a3dba717c Mon Sep 17 00:00:00 2001 From: Ri Xu Date: Tue, 5 Sep 2017 17:29:36 +0800 Subject: [PATCH 0981/3440] Update repo URL for aurora tool. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9e148d13c2f..b76d33dd6a9 100644 --- a/README.md +++ b/README.md @@ -1471,7 +1471,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### DevOps Tools * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. -* [aurora](https://github.com/Luxurioust/aurora) - Cross-platform web-based Beanstalkd queue server console. +* [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. * [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. * [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. From 9f2aaf6fc13e3eac9c769641fc3b31a8cd6ce329 Mon Sep 17 00:00:00 2001 From: Maxi Binder Date: Sat, 9 Sep 2017 05:43:22 +0200 Subject: [PATCH 0982/3440] Add link to list (#1574) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b76d33dd6a9..587456f0f39 100644 --- a/README.md +++ b/README.md @@ -634,6 +634,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [logo](https://github.com/mbndr/logo) - Golang logger to different configurable writers. * [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/). * [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. From 5b19a69c42d19c5876b98378eb67c6039c56b4b6 Mon Sep 17 00:00:00 2001 From: Viet Hung Nguyen Date: Mon, 11 Sep 2017 08:51:37 +0700 Subject: [PATCH 0983/3440] Remove deprecated thing (#1562) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 587456f0f39..cfb3e1492d5 100644 --- a/README.md +++ b/README.md @@ -1442,7 +1442,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Editor Plugins * [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. * [Goclipse](https://github.com/GoClipse/goclipse) - Eclipse plugin for Go. From 17cb8ca3b45dea8b8f998a93b305143b653cebc2 Mon Sep 17 00:00:00 2001 From: Yulin Chen Date: Sun, 10 Sep 2017 18:52:26 -0700 Subject: [PATCH 0984/3440] Add cidranger (#1578) * Add cidranger * Move under section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cfb3e1492d5..f21674a31c6 100644 --- a/README.md +++ b/README.md @@ -798,6 +798,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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). +* [cidranger](https://github.com/yl2chen/cidranger) - Fast IP to CIDR lookup for Go. * [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. * [ether](https://github.com/songgao/ether) - Cross-platform Go package for sending and receiving ethernet frames. From 6fd2eb791af15bfd83e4bea67c3c433fd8cd18e3 Mon Sep 17 00:00:00 2001 From: Isaev Denis Date: Mon, 11 Sep 2017 04:53:52 +0300 Subject: [PATCH 0985/3440] add go-queryset (#1577) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f21674a31c6..2c40a705e58 100644 --- a/README.md +++ b/README.md @@ -852,6 +852,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [beego orm](https://github.com/astaxie/beego/tree/master/orm) - Powerful orm framework for go. Support: pq/mysql/sqlite3. * [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. +* [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. * [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. * [gomodel](https://github.com/cosiner/gomodel) - Lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. From 96b628caef30ad7518dc654b7688e0435e9a0242 Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 12 Sep 2017 03:54:16 +0200 Subject: [PATCH 0986/3440] fix: add period to dgraph-io/badger description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1a8c34d3196..80cdc1d7e45 100644 --- a/README.md +++ b/README.md @@ -260,7 +260,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Databases implemented in Go.* -* [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go +* [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. * [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. From c32e8c95f2eb38bba8e01a532e7c98d7b773f035 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 13 Sep 2017 10:57:49 +0300 Subject: [PATCH 0987/3440] Add ethrpc --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ae551bc0e08..dcb2f17deeb 100644 --- a/README.md +++ b/README.md @@ -1109,6 +1109,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC 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. From 26b094870e94478dff8573f94b5f6904e4122922 Mon Sep 17 00:00:00 2001 From: Areg Melik-Adamyan Date: Sun, 17 Sep 2017 10:23:53 -0500 Subject: [PATCH 0988/3440] Adding YANFF (#1579) YANFF - Yet Another Network Function Framework is added. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dcb2f17deeb..8660d04098c 100644 --- a/README.md +++ b/README.md @@ -836,6 +836,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [YANNFF](https://github.com/intel-go/yanff) - Framework for rapid development of performant network functions for cloud and bare-metal. ## OpenGL From 6e2ac51fe420e7e454876ddf4a3156d10b54c21a Mon Sep 17 00:00:00 2001 From: Inanc Gumus Date: Sun, 17 Sep 2017 18:27:57 +0300 Subject: [PATCH 0989/3440] add myhttp (#1584) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8660d04098c..ec27733e659 100644 --- a/README.md +++ b/README.md @@ -1251,6 +1251,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. * [mssqlx](https://github.com/linxGnu/mssqlx) - HA client for master slave (or master master) database which integrates simple, lightweight round-robin balancer. Based on sqlx. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. +* [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. * [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. From b25f96805d57d89962df59c5d6f38882c33193d0 Mon Sep 17 00:00:00 2001 From: Asaf Schers Date: Sun, 17 Sep 2017 18:28:14 +0300 Subject: [PATCH 0990/3440] Update README.md (#1586) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ec27733e659..507653b21ca 100644 --- a/README.md +++ b/README.md @@ -672,6 +672,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. * [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. * [neat](https://github.com/jinyeom/neat) - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT). From 9deee09d2e063ad898bd5a039aa712f0ba310ec5 Mon Sep 17 00:00:00 2001 From: Linh Tran Tuan Date: Sun, 17 Sep 2017 22:28:45 +0700 Subject: [PATCH 0991/3440] Update intro to closet meaning for github.com/linxGnu/mssqlx (#1571) * Update intro to closet meaning for github.com/linxGnu/mssqlx * Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 507653b21ca..c016b75dafd 100644 --- a/README.md +++ b/README.md @@ -1250,7 +1250,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. -* [mssqlx](https://github.com/linxGnu/mssqlx) - HA client for master slave (or master master) database which integrates simple, lightweight round-robin balancer. Based on sqlx. +* [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. * [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. From 9a7c5ae170b4c58ebdd425e67289e5769caf723b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Wed, 20 Sep 2017 10:49:03 -0300 Subject: [PATCH 0992/3440] fix broken link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7799fa94586..bd261f7c9e6 100644 --- a/README.md +++ b/README.md @@ -536,7 +536,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. -* [GoSlaves](https://github.com/Mester19/GoSlaves) - Simple and Asynchronous Goroutine pool library. +* [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [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. From 3fd1d47d4374a9ce11b4133f3ebe16ea6f0bf4db Mon Sep 17 00:00:00 2001 From: Alin Sinpalean Date: Thu, 21 Sep 2017 12:56:20 +0200 Subject: [PATCH 0993/3440] Add concurrent-writer to Data Structures. (#1591) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bd261f7c9e6..0c785e5bd07 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [concurrent-writer](https://github.com/alin-sinpalean/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. * [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. From 69ba9bf28a8b3547b41f5b4f448aff986918051f Mon Sep 17 00:00:00 2001 From: Christophe Meessen Date: Mon, 25 Sep 2017 17:26:13 +0200 Subject: [PATCH 0994/3440] Add securecookie to the Authentication section (#1595) * Add securecookie to the Authentication section * fix ordering error --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0c785e5bd07..7ddcddc1115 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. +* [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). * [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. * [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. From fdf07ab3640765b743206ac411127937e52242bb Mon Sep 17 00:00:00 2001 From: Antonio Mallia Date: Mon, 25 Sep 2017 22:02:56 +0100 Subject: [PATCH 0995/3440] Added go-ef (#1596) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ddcddc1115..ac967de523c 100644 --- a/README.md +++ b/README.md @@ -239,6 +239,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-ef](https://github.com/amallia/go-ef) - A Go implementation of the Elias-Fano encoding. * [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. From 3e72761f899005ff89feb61308f5ef01e816b077 Mon Sep 17 00:00:00 2001 From: Rick Beton Date: Tue, 26 Sep 2017 03:29:23 +0100 Subject: [PATCH 0996/3440] Added link to rickb777/date (#1585) * Added link to rickb777/date * Added rickb777/date --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ac967de523c..644f2ca2505 100644 --- a/README.md +++ b/README.md @@ -381,6 +381,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for working with dates and times.* * [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library. +* [date](https://github.com/rickb777/date) - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day. * [dateparse](https://github.com/araddon/dateparse) - Parse date's without knowing format in advance. * [durafmt](https://github.com/hako/durafmt) - Uime duration formatting library for Go. * [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecoast, Thanksgiving... From 279165eb8e49b61c51ca58f5cf64f77d53ff7665 Mon Sep 17 00:00:00 2001 From: Danny Hadley Date: Mon, 25 Sep 2017 22:30:19 -0400 Subject: [PATCH 0997/3440] Adding marlow - typesafe orm interfaces generated at compile time (#1593) * Adding marlow - typesafe orm interfaces generated at compile time * PR Feedback --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 644f2ca2505..b62c2bb62da 100644 --- a/README.md +++ b/README.md @@ -865,6 +865,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gomodel](https://github.com/cosiner/gomodel) - Lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. +* [Marlow](https://github.com/dadleyy/marlow) - Generated ORM from project structs for compile time safety assurances. * [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. From 448b73d889d2bb41b26b5197a45b38c61f0a5ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rodrigues?= Date: Tue, 26 Sep 2017 00:24:22 -0300 Subject: [PATCH 0998/3440] Add go-sptrans (#1597) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b62c2bb62da..2cef3e1d3fe 100644 --- a/README.md +++ b/README.md @@ -1132,6 +1132,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. * [go-telegraph](https://github.com/toby3d/go-telegraph) - Telegraph publishing platform API client. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. From 8ccec9bda3189c93507b397d260074c8b871e64a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Wed, 27 Sep 2017 20:09:21 -0300 Subject: [PATCH 0999/3440] Add turtle (#1598) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2cef3e1d3fe..374ce46de48 100644 --- a/README.md +++ b/README.md @@ -758,6 +758,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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... +* [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. * [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. From 4d6cc0716eba512a894d7ee758f51d085fe46f01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20Pataki?= Date: Wed, 4 Oct 2017 06:51:47 +0200 Subject: [PATCH 1000/3440] Added fonet to machine learning packages --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 374ce46de48..da39ffaf3ea 100644 --- a/README.md +++ b/README.md @@ -670,6 +670,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [fonet](https://github.com/Fontinalis/fonet) - A Deep Neural Network library 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. From befb225dc98dcf8d17be3cb8f219a09f3d098c81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20Pataki?= Date: Wed, 4 Oct 2017 09:55:57 +0200 Subject: [PATCH 1001/3440] Fix order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da39ffaf3ea..86a9a8ceba6 100644 --- a/README.md +++ b/README.md @@ -665,12 +665,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. * [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. +* [fonet](https://github.com/Fontinalis/fonet) - A Deep Neural Network library written in 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-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. * [gobrain](https://github.com/goml/gobrain) - Neural Networks written in go. -* [fonet](https://github.com/Fontinalis/fonet) - A Deep Neural Network library 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. From efebf4c6b15e8f2a412b2ad14d80dc081cbb3217 Mon Sep 17 00:00:00 2001 From: Konstantin8105 Date: Wed, 4 Oct 2017 11:08:40 +0300 Subject: [PATCH 1002/3440] go generate tools --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 374ce46de48..61d650d12df 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Code Analysis](#code-analysis) - [Editor Plugins](#editor-plugins) - [Go Tools](#go-tools) + - [Go Generate Tools](#go-generate-tools) - [Software Packages](#software-packages) - [DevOps Tools](#devops-tools) - [Other Software](#other-software) @@ -1479,6 +1480,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. +## Go Generate Tools + +* [generic](https://github.com/usk81/generic) - flexible data type for Go. +* [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. +* [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. +* [gonerics](github.com/bouk/gonerics) - Idiomatic Generics in Go. +* [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. + ## Software Packages *Software written in Go.* From 3dbae8a3948658d4002cb68dc297ebe71102b460 Mon Sep 17 00:00:00 2001 From: Konstantin8105 Date: Wed, 4 Oct 2017 11:11:23 +0300 Subject: [PATCH 1003/3440] go generate tools --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 61d650d12df..a853e0409da 100644 --- a/README.md +++ b/README.md @@ -1485,7 +1485,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [generic](https://github.com/usk81/generic) - flexible data type for Go. * [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. * [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. -* [gonerics](github.com/bouk/gonerics) - Idiomatic Generics in Go. +* [gonerics](http://github.com/bouk/gonerics) - Idiomatic Generics in Go. * [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. ## Software Packages From 5f8189d86eeb1f4046b5c775d6db4ad56787ff01 Mon Sep 17 00:00:00 2001 From: Konstantin8105 Date: Wed, 4 Oct 2017 11:27:36 +0300 Subject: [PATCH 1004/3440] go generate tools --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a853e0409da..23fed08dd21 100644 --- a/README.md +++ b/README.md @@ -68,8 +68,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Tools](#tools) - [Code Analysis](#code-analysis) - [Editor Plugins](#editor-plugins) - - [Go Tools](#go-tools) - [Go Generate Tools](#go-generate-tools) + - [Go Tools](#go-tools) - [Software Packages](#software-packages) - [DevOps Tools](#devops-tools) - [Other Software](#other-software) @@ -1469,6 +1469,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [vscode-go](https://github.com/Microsoft/vscode-go) - Extension for Visual Studio Code (VS Code) which provides support for the Go language. * [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. +## Go Generate Tools + +* [generic](https://github.com/usk81/generic) - flexible data type for Go. +* [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. +* [gonerics](http://github.com/bouk/gonerics) - Idiomatic Generics in Go. +* [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. +* [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. + ## Go Tools * [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. @@ -1480,14 +1488,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. -## Go Generate Tools - -* [generic](https://github.com/usk81/generic) - flexible data type for Go. -* [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. -* [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. -* [gonerics](http://github.com/bouk/gonerics) - Idiomatic Generics in Go. -* [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. - ## Software Packages *Software written in Go.* From 0337048bff7a0c7da6d62aa74064aba64ddf7beb Mon Sep 17 00:00:00 2001 From: Serge Zaitsev Date: Thu, 5 Oct 2017 02:01:19 +0300 Subject: [PATCH 1005/3440] Add webview library (#1594) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 374ce46de48..b1ea4a5b97e 100644 --- a/README.md +++ b/README.md @@ -564,6 +564,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [webview](https://github.com/zserge/webview) - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux). *Interaction* From ac6b4c1b5079864b1e74211de3c07478f0051cc8 Mon Sep 17 00:00:00 2001 From: Saddam H Date: Tue, 10 Oct 2017 22:16:20 +0600 Subject: [PATCH 1006/3440] Add govalidator to validate http request 1.Godoc: https://godoc.org/github.com/thedevsaddam/govalidator 2.Goreport: https://goreportcard.com/report/github.com/thedevsaddam/govalidator --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b1ea4a5b97e..8c9814e380f 100644 --- a/README.md +++ b/README.md @@ -1302,6 +1302,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. * [validate](https://github.com/markbates/validate) - This package provides a framework for writing validations for Go applications. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. +* [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. ## Version Control From b011082156dcacfa310835fda60ebbdfe86c0e1c Mon Sep 17 00:00:00 2001 From: Weilin Shi <934587911@qq.com> Date: Wed, 11 Oct 2017 15:32:24 +0800 Subject: [PATCH 1007/3440] add captcha --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b1ea4a5b97e..3eaa7c135b5 100644 --- a/README.md +++ b/README.md @@ -734,6 +734,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [battery](https://github.com/distatus/battery) - Cross-platform, normalized battery information library. * [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [captcha](https://github.com/steambap/captcha) - Package captcha provides an easy to use, unopinionated API for captcha generation. * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. From 9cfa6d0f1fd6c50921c40fb0fc2fd232b3bf5bb9 Mon Sep 17 00:00:00 2001 From: Oleg Lobanov Date: Thu, 12 Oct 2017 00:38:38 +0300 Subject: [PATCH 1008/3440] Add govatar library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3eaa7c135b5..bdd2eb8cc4f 100644 --- a/README.md +++ b/README.md @@ -594,6 +594,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. * [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. * [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. +* [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. * [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. * [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. From d70878a563bab9f941cf35c7845c55e1e3da764b Mon Sep 17 00:00:00 2001 From: Cheikh Seck Date: Thu, 12 Oct 2017 16:24:07 +0000 Subject: [PATCH 1009/3440] Update README.md (#1603) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3eaa7c135b5..ca7e96af0b7 100644 --- a/README.md +++ b/README.md @@ -1545,6 +1545,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Gogland](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. +* [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. * [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. From 2f10601e7cb74ac971778ca2ebd40c1b82776ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Lorenz?= Date: Fri, 13 Oct 2017 02:25:29 +1000 Subject: [PATCH 1010/3440] Update README.md (#1608) Add wokerpool and messagebus --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ca7e96af0b7..53e7d51a1b0 100644 --- a/README.md +++ b/README.md @@ -546,6 +546,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [tunny](https://github.com/Jeffail/tunny) - Goroutine pool for golang. +* [workerpool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool. ## GUI @@ -713,6 +714,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. +* [messagebus](https://github.com/vardius/message-bus) - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. * [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. From 6aee039b738cdad755b50e968a24f644233612dc Mon Sep 17 00:00:00 2001 From: Guilherme Oenning Date: Thu, 12 Oct 2017 17:26:50 +0100 Subject: [PATCH 1011/3440] add Fider (#1613) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 53e7d51a1b0..b406d7b2c3d 100644 --- a/README.md +++ b/README.md @@ -985,6 +985,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. +* [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. * [yakvs](https://github.com/sci4me/yakvs) - Small, networked, in-memory key-value store. From 0b1284ba96c0c00813b56b325e025301d4945158 Mon Sep 17 00:00:00 2001 From: Wei He Date: Fri, 13 Oct 2017 01:27:06 +0900 Subject: [PATCH 1012/3440] add shellwords and hostutils (#1614) https://github.com/Wing924/shellwords https://github.com/Wing924/hostutils --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b406d7b2c3d..91f4c3cdebe 100644 --- a/README.md +++ b/README.md @@ -756,10 +756,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [hostutils](https://github.com/Wing924/hostutils) - A golang library for packing and unpacking FQDNs list. * [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. * [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. +* [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. * [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... * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. From 2e7c6b44073233d7682d482adcf1f1c20b5ccbf1 Mon Sep 17 00:00:00 2001 From: Kevin Gillieron Date: Thu, 12 Oct 2017 18:28:28 +0200 Subject: [PATCH 1013/3440] Add go-cluster (#1617) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 91f4c3cdebe..5a5ef15cdd5 100644 --- a/README.md +++ b/README.md @@ -668,6 +668,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. * [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-cluster](https://github.com/e-XpertSolutions/go-cluster) - Go implementation of the k-modes and k-prototypes clustering algorithms. * [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-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. From 228ff885725a6d7fa0427266f13b2ee3d77ba49f Mon Sep 17 00:00:00 2001 From: Ivan Ivanov Date: Thu, 12 Oct 2017 19:36:53 +0300 Subject: [PATCH 1014/3440] Add petrovich (#1621) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a5ef15cdd5..53f5c1933aa 100644 --- a/README.md +++ b/README.md @@ -793,6 +793,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [nlp](https://github.com/Shixzie/nlp) - Extract values from strings and fill your structs with nlp. * [nlp](https://github.com/james-bowman/nlp) - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis). * [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm. +* [petrovich](https://github.com/striker2000/petrovich) - Petrovich is the library which inflects Russian names to given grammatical case. * [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. From b048e004f5472bf5b6ed60c73d24a966a53bad2e Mon Sep 17 00:00:00 2001 From: Saddam H Date: Fri, 13 Oct 2017 00:43:23 +0600 Subject: [PATCH 1015/3440] Alphabetical order for govalidator govalidator package add in alphabetical order. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c9814e380f..d3306839b1a 100644 --- a/README.md +++ b/README.md @@ -1299,10 +1299,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for validation.* * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. +* [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. * [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. * [validate](https://github.com/markbates/validate) - This package provides a framework for writing validations for Go applications. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. -* [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. ## Version Control From 8d0f7504ba4891bbab1d76f8e938c049895768a1 Mon Sep 17 00:00:00 2001 From: "Gerasimos (Makis) Maropoulos" Date: Fri, 13 Oct 2017 12:41:57 +0300 Subject: [PATCH 1016/3440] Add colly Scraping Framework (#1615) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 53f5c1933aa..f87f279d27e 100644 --- a/README.md +++ b/README.md @@ -1081,6 +1081,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers * [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. * [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/). From 9f37438011a29fc4ca4429e21eb004b320882e57 Mon Sep 17 00:00:00 2001 From: Dorival Pedroso Date: Mon, 16 Oct 2017 07:11:47 +1000 Subject: [PATCH 1017/3440] Add gosl (Go Scientific Library) (#1627) * Add gosl (Go Scientific Library) * Shorten description of gosl --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3cc1b81b0fd..f99c631494f 100644 --- a/README.md +++ b/README.md @@ -945,6 +945,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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). +* [gosl](https://github.com/cpmech/gosl) - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. * [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. From dd76283ab15978b0576aba240b42890a7251cdf9 Mon Sep 17 00:00:00 2001 From: "Andrew J. Gillis" Date: Sun, 15 Oct 2017 17:50:21 -0700 Subject: [PATCH 1018/3440] Add workerpool utility (#1623) Add workerpool utility. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f99c631494f..eb539eafcd7 100644 --- a/README.md +++ b/README.md @@ -547,7 +547,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [tunny](https://github.com/Jeffail/tunny) - Goroutine pool for golang. -* [workerpool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool. +* [worker-pool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool. +* [workerpool](https://github.com/gammazero/workerpool) - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued. ## GUI From 82b37aea494285e3a7b5aab09595bed8f1312c77 Mon Sep 17 00:00:00 2001 From: Cristian Oliveira Date: Mon, 16 Oct 2017 09:51:34 +0200 Subject: [PATCH 1019/3440] Add ergo proxy (#1612) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eb539eafcd7..658b8dfeaff 100644 --- a/README.md +++ b/README.md @@ -1211,6 +1211,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. * [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. +* [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. * [excelize](https://github.com/360EntSecGroup-Skylar/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. * [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. From 0d856bb30e735613299ff8da7f20413f6f3cf3b7 Mon Sep 17 00:00:00 2001 From: Meng Zhuo Date: Mon, 16 Oct 2017 15:53:36 +0800 Subject: [PATCH 1020/3440] add cookiestxt (#1616) * add cookiestxt * update cookiestxt description as requested --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 658b8dfeaff..2d91b1b0cdb 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [authboss](https://github.com/volatiletech/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. * [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. +* [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - Standalone, specification-compliant, OAuth2 server written in Golang. From 66034eaa1ab172c84dcbc6023e6f2bb65abccf2c Mon Sep 17 00:00:00 2001 From: Aleksandr Razumov Date: Thu, 19 Oct 2017 13:39:54 +0300 Subject: [PATCH 1021/3440] Add stun (#1631) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2d91b1b0cdb..3c6e3fc1161 100644 --- a/README.md +++ b/README.md @@ -851,6 +851,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [ssh](https://github.com/gliderlabs/ssh) - Higher-level API for building SSH servers (wraps crypto/ssh). * [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. +* [stun](https://github.com/go-rtc/stun) - Go implementation of RFC 5389 STUN protocol. * [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. From 7bdfe783ecbf8fb093170d70c48844e1affb8c0d Mon Sep 17 00:00:00 2001 From: Joel Williams Date: Fri, 20 Oct 2017 23:45:00 +0200 Subject: [PATCH 1022/3440] Remove go.auth (#1638) https://github.com/bradrydzewski/go.auth says in the description that it is deprecated and it has not been updated since 2013. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8800385626b..730e64723e1 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - Standalone, specification-compliant, OAuth2 server written in Golang. -* [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. * [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. From 8dffd48abb15edf1e550b4438a09e4b824520400 Mon Sep 17 00:00:00 2001 From: Abe Botros Date: Sun, 22 Oct 2017 04:59:40 -0700 Subject: [PATCH 1023/3440] Add lore (#1639) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 730e64723e1..4e9c3ffe74b 100644 --- a/README.md +++ b/README.md @@ -879,6 +879,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gomodel](https://github.com/cosiner/gomodel) - Lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. +* [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. * [Marlow](https://github.com/dadleyy/marlow) - Generated ORM from project structs for compile time safety assurances. * [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. From c871aaa9b1b261ea6efe0e09bad7b2d9d806ae26 Mon Sep 17 00:00:00 2001 From: Joel Williams Date: Sun, 22 Oct 2017 13:59:59 +0200 Subject: [PATCH 1024/3440] Fix a few typos in README.md (#1637) Fixes some spelling and grammar typos in README.md --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 4e9c3ffe74b..5d887f1ad32 100644 --- a/README.md +++ b/README.md @@ -116,10 +116,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - Standalone, specification-compliant, OAuth2 server written in Golang. * [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. -* [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. +* [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. * [jwt](https://github.com/robbert229/jwt) - Clean and easy to use implementation of JSON Web Tokens (JWT). -* [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for goLang http servers with many configuration options. +* [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. @@ -138,15 +138,15 @@ 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-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line application. +* [cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang struct tags. +* [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line applications. * [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. * [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. -* [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go support subcommand. +* [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting 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. @@ -154,7 +154,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mitchellh/cli](https://github.com/mitchellh/cli) - Go library for implementing command-line interfaces. * [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. -* [readline](https://github.com/chzyer/readline) - Pure golang implementation that provide most of features in GNU-Readline under MIT license. +* [readline](https://github.com/chzyer/readline) - Pure golang implementation that provides most features in GNU-Readline under MIT license. * [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. * [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. * [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). @@ -194,13 +194,13 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [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. +* [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from 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. -* [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along the code they configure and delegate parsing to submodules without sacrificing full config serialization. +* [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along with 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. +* [ini](https://github.com/go-ini/ini) - Go package to 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. @@ -278,7 +278,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. * [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. * [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. +* [goleveldb](https://github.com/syndtr/goleveldb) - Implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in 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. * [ledisdb](https://github.com/siddontang/ledisdb) - Ledisdb is a high performance NoSQL like Redis based on LevelDB. @@ -300,7 +300,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 soon support 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. @@ -309,7 +309,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. * [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. +* [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Supports 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. * [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. @@ -318,7 +318,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *SQL query builder, libraries for building and using SQL.* * [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. +* [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use them 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. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. @@ -335,12 +335,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. - * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql. + * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that uses 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. - * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. + * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that uses database/sql. * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. - * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. + * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. @@ -384,8 +384,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library. * [date](https://github.com/rickb777/date) - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day. * [dateparse](https://github.com/araddon/dateparse) - Parse date's without knowing format in advance. -* [durafmt](https://github.com/hako/durafmt) - Uime duration formatting library for Go. -* [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecoast, Thanksgiving... +* [durafmt](https://github.com/hako/durafmt) - Time duration formatting library for Go. +* [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving... * [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. @@ -572,7 +572,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Interaction* * [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. +* [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. * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. @@ -606,7 +606,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mpo](https://github.com/donatj/mpo) - Decoder and conversion tool for MPO 3D Photos. * [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go. * [pt](https://github.com/fogleman/pt) - Path tracing engine written in Go. -* [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods. +* [resize](https://github.com/nfnt/resize) - Image resizing for Go with common interpolation methods. * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. * [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. * [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. From 4b50564d4accd283f7c23b6644715dd4a1893c8c Mon Sep 17 00:00:00 2001 From: Thulio Ferraz Assis Date: Sun, 22 Oct 2017 05:00:10 -0700 Subject: [PATCH 1025/3440] Added the sessiongate-go package (#1636) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5d887f1ad32..ba427ae924b 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). +* [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. * [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. * [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. * [yubigo](https://github.com/GeertJohan/yubigo) - Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. From 770be65545dea9afe92a037019e9ba9055bf3474 Mon Sep 17 00:00:00 2001 From: Ferenc Fabian Date: Sun, 22 Oct 2017 13:00:23 +0100 Subject: [PATCH 1026/3440] Add github.com/PumpkinSeed/structs (#1634) * Add github.com/PumpkinSeed/structs * Fix order of the libraries --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ba427ae924b..62c6921686f 100644 --- a/README.md +++ b/README.md @@ -1302,6 +1302,7 @@ 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. +* [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. * [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. From ad202c96a01d8a81241e3c4d6a1e69eed9f4f552 Mon Sep 17 00:00:00 2001 From: Darwin <172265+dwin@users.noreply.github.com> Date: Sun, 22 Oct 2017 08:00:36 -0400 Subject: [PATCH 1027/3440] Added dwin/GoSecretBoxPassword (#1633) * Added dwin/GoSecretBoxPassword * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 62c6921686f..c81605b3fd6 100644 --- a/README.md +++ b/README.md @@ -967,6 +967,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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)". +* [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. * [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. From e15611ebca5a4ccb36ee47c79d93106c3a9b27ad Mon Sep 17 00:00:00 2001 From: shaahin karimpour Date: Sun, 22 Oct 2017 15:30:45 +0330 Subject: [PATCH 1028/3440] added persian repo to list (#1628) Some utilities for Persian language in go. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c81605b3fd6..b47e8bae70f 100644 --- a/README.md +++ b/README.md @@ -766,6 +766,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. * [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. +* [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. * [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. From 27b40233c3061323a16e4a98d558d54949790a42 Mon Sep 17 00:00:00 2001 From: Sergey Mudrik Date: Sun, 22 Oct 2017 16:58:10 +0300 Subject: [PATCH 1029/3440] Updated .travis.yml (#1643) Use the latest stable Go version (https://docs.travis-ci.com/user/languages/go/#Specifying-a-Go-version-to-use) --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6c8461ef488..d155248969c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: go go: - - 1.7 + - 1.x sudo: false From 63cd8c775732e0c9129306c2d7b4692b328e4019 Mon Sep 17 00:00:00 2001 From: Anthony HAMON Date: Sun, 22 Oct 2017 15:58:57 +0200 Subject: [PATCH 1030/3440] Add envh (#1642) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b47e8bae70f..7d36b4099d2 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. * [envconf](https://github.com/ian-kent/envconf) - Configuration from environment. * [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. +* [envh](https://github.com/antham/envh) - Helpers to manage environment variables. * [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) - Parses a struct as input and populates the fields of this struct with parameters from 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`). @@ -1574,7 +1575,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Gogland](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. -* [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. +* [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. * [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. From e1374e7ad1c0e10d51b7fb0c9b438d79ab054e5f Mon Sep 17 00:00:00 2001 From: Kyoichiro Yamada Date: Tue, 24 Oct 2017 11:47:19 +0900 Subject: [PATCH 1031/3440] Add richgo (#1644) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7d36b4099d2..3b15f390223 100644 --- a/README.md +++ b/README.md @@ -1509,6 +1509,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. +* [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. ## Software Packages From 796fa6878c17a3e050fbb2e4f10a108918090a80 Mon Sep 17 00:00:00 2001 From: Frederic Delbos Date: Thu, 26 Oct 2017 13:09:49 +0200 Subject: [PATCH 1032/3440] add https://github.com/hyperboloide/lk library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b15f390223..71b1d16e848 100644 --- a/README.md +++ b/README.md @@ -766,6 +766,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [hostutils](https://github.com/Wing924/hostutils) - A golang library for packing and unpacking FQDNs list. * [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. * [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. +* [lk](https://github.com/hyperboloide/lk) - A simple licensing library for golang. * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. From c024ba9237da847e42224b3da64036c68a2f2020 Mon Sep 17 00:00:00 2001 From: Paolo Galeone Date: Thu, 26 Oct 2017 17:03:05 +0200 Subject: [PATCH 1033/3440] Add tfgo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b15f390223..ecdc89e7f43 100644 --- a/README.md +++ b/README.md @@ -694,6 +694,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [tfgo](https://github.com/galeone/tfgo) - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python. ## Messaging From fb8fe7ea8bb5654faefd14a2f4e8bfd24b524dee Mon Sep 17 00:00:00 2001 From: Cecilia Cisneros Date: Sat, 28 Oct 2017 08:12:40 -0500 Subject: [PATCH 1034/3440] Update README.md (#1649) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b15f390223..c7c4d159375 100644 --- a/README.md +++ b/README.md @@ -1664,7 +1664,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Websites * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. -* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them is looking for Go hackers. +* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. * [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - Collection of Go articles and tutorials. * [Go Blog](http://blog.golang.org) - The official Go blog. From d4ca9e3a9f2bd2d07c47c4dd512940a9a450194c Mon Sep 17 00:00:00 2001 From: Nexus Web Development Date: Sat, 28 Oct 2017 09:13:01 -0400 Subject: [PATCH 1035/3440] Update tmpl.html with OpenGraph data for better sharing. (#1651) --- tmpl/tmpl.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index eab52dc68bc..94ebe6dbd3f 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -8,6 +8,13 @@ Awesome Go + + + + + + + From 7c7be01fac60725c6165c62349ec77d8f13dbd9c Mon Sep 17 00:00:00 2001 From: Timothy Date: Sat, 28 Oct 2017 21:13:15 +0800 Subject: [PATCH 1036/3440] add godns (#1652) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c7c4d159375..f0ae2b71ca3 100644 --- a/README.md +++ b/README.md @@ -1572,6 +1572,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fleet](https://github.com/coreos/fleet) - Distributed init System. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. +* [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. * [Gogland](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. From 548064d3ee633d7acb5a345899a7f1ec24ff6500 Mon Sep 17 00:00:00 2001 From: Jeffrey D Date: Sat, 28 Oct 2017 08:13:28 -0500 Subject: [PATCH 1037/3440] Add tarp code analysis tool (#1625) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0ae2b71ca3..f35cde74a23 100644 --- a/README.md +++ b/README.md @@ -1474,6 +1474,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [interfacer](https://github.com/mvdan/interfacer) - Linter that suggests interface types. * [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#. +* [tarp](https://github.com/verygoodsoftwarenotvirus/tarp) - tarp finds functions and methods without direct unit tests in Go source code. * [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. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 7191589fd270738e87362549134536fbd39d4698 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 28 Oct 2017 12:54:55 -0200 Subject: [PATCH 1038/3440] Add Meetup List (#1653) ref: #1454 --- README.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/README.md b/README.md index f35cde74a23..93bc4bba822 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Benchmarks](#benchmarks) - [Conferences](#conferences) - [E-Books](#e-books) + - [Meetups](#meetups) - [Twitter](#twitter) - [Websites](#websites) - [Tutorials](#tutorials) @@ -1656,6 +1657,42 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [The Go Programming Language](http://www.gopl.io/) * [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) +## Meetups + +* [Go Language NYC](https://www.meetup.com/golanguagenewyork/) +* [Go London User Group](https://www.meetup.com/Go-London-User-Group/) +* [Go Toronto](https://www.meetup.com/go-toronto/) +* [Go User Group Atlanta](https://www.meetup.com/Go-Users-Group-Atlanta/) +* [GoBridge, San Francisco, CA](https://www.meetup.com/gobridge/) +* [GoJakarta](https://www.meetup.com/GoJakarta/) +* [Golang Amsterdam](https://www.meetup.com/golang-amsterdam/) +* [Golang Argentina](https://www.meetup.com/Golang-Argentina/) +* [Golang Bangalore](https://www.meetup.com/Golang-Bangalore/) +* [Golang Belo Horizonte - Brazil](https://www.meetup.com/go-belo-horizonte/) +* [Golang Boston](https://www.meetup.com/bostongo/) +* [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) +* [Golang Israel](https://www.meetup.com/Go-Israel/) +* [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) +* [Golang Lyon](https://www.meetup.com/Golang-Lyon/) +* [Golang Melbourne](https://www.meetup.com/golang-mel/) +* [Golang Mountain View](https://www.meetup.com/Golang-Mountain-View/) +* [Golang New York](https://www.meetup.com/nycgolang/) +* [Golang Paris](https://www.meetup.com/Golang-Paris/) +* [Golang Pune](https://www.meetup.com/Golang-Pune/) +* [Golang Singapore](https://www.meetup.com/golangsg/) +* [Golang Stockholm](https://www.meetup.com/Go-Stockholm/) +* [Golang São Paulo - Brazil](https://www.meetup.com/golangbr/) +* [Golang Vancouver, BC](https://www.meetup.com/golangvan/) +* [Golang Москва](https://www.meetup.com/Golang-Moscow/) +* [Golang Питер](https://www.meetup.com/Golang-Peter/) +* [Istanbul Golang](https://www.meetup.com/Istanbul-Golang/) +* [Seattle Go Programmers](https://www.meetup.com/golang/) +* [Ukrainian Golang User Groups](https://www.meetup.com/uagolang/) +* [Utah Go User Group](https://www.meetup.com/utahgophers/) +* [Women Who Go - San Francisco, CA](https://www.meetup.com/Women-Who-Go/) + +*Add the group of your city/country here (send **PR**)* + ## Twitter * [@golang](https://twitter.com/golang) From 2a1feea937876a3a65b42a917cfa2bc0ccb5b77f Mon Sep 17 00:00:00 2001 From: Andy Zhang Date: Wed, 18 Oct 2017 23:40:26 +1100 Subject: [PATCH 1039/3440] add in rwdb --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2d91b1b0cdb..dc285f5c4d1 100644 --- a/README.md +++ b/README.md @@ -314,6 +314,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup. * [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.* From 47f95fc8d348a5380e20e45e008f5e626de5f73d Mon Sep 17 00:00:00 2001 From: Razon Yang Date: Wed, 1 Nov 2017 18:20:12 +0800 Subject: [PATCH 1040/3440] Add FastRouter (#1660) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 24f5d8549a7..466739b48d8 100644 --- a/README.md +++ b/README.md @@ -1419,6 +1419,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [fasthttprouter](https://github.com/buaazp/fasthttprouter) - High performance router forked from `httprouter`. The first router fit for `fasthttp`. +* [FastRouter](https://github.com/razonyang/fastrouter) - a fast, flexible HTTP router written in Go. * [gocraft/web](https://github.com/gocraft/web) - Mux and middleware package in Go. * [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. * [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framwework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. From 9b40a272767f58b7aad2536394975d006ad98907 Mon Sep 17 00:00:00 2001 From: Zack Date: Fri, 3 Nov 2017 04:28:28 -0600 Subject: [PATCH 1041/3440] Add schollz/progressbar --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e47e51db2da..8558c937a28 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. +* [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). From 2cf132db78e292f300059448d97d82fdeeffeccb Mon Sep 17 00:00:00 2001 From: vcaesar Date: Mon, 6 Nov 2017 15:27:27 +0800 Subject: [PATCH 1042/3440] add riot search --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e47e51db2da..607e8d89737 100644 --- a/README.md +++ b/README.md @@ -379,6 +379,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go. * [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. * [goes](https://github.com/belogik/goes) - Library to interact with Elasticsearch. + * [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine * [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. ## Date and Time From aafcb8236e045b33f40ef816da43b0531e4b426c Mon Sep 17 00:00:00 2001 From: Keyan Ghazi-Zahedi Date: Mon, 6 Nov 2017 08:58:07 -0700 Subject: [PATCH 1043/3440] Added goent (#1657) GO Implementation of Entropy Measures --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e47e51db2da..f5b7bff0a85 100644 --- a/README.md +++ b/README.md @@ -950,6 +950,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures * [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. * [gonum/mat64](https://github.com/gonum/matrix) - The general purpose package for matrix computation. Package mat64 provides basic linear algebra operations for float64 matrices. From 76c51adc4c5e8ce3f99f1666cfe01fc31752e75b Mon Sep 17 00:00:00 2001 From: Oleg Sklyar Date: Mon, 6 Nov 2017 23:45:05 +0100 Subject: [PATCH 1044/3440] * Adds new packages cli and log. * Drops go-longpoll as defunct, repo removed. * Drops slf and slog (providing above log as the replacements) as defunct, repos removed. * Migrates ventu-io/go-shortid to teris-io/shortid. The committer is the author of all the packages, of the added, removed and amended. --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f5b7bff0a85..8362c733fa7 100644 --- a/README.md +++ b/README.md @@ -141,6 +141,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 struct tags. +* [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line applications. * [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. @@ -644,6 +645,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gone/log](https://github.com/One-com/gone/tree/master/log) - Fast, extendable, full-featured, std-lib source compatible log library. * [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](https://github.com/teris-io/log) - Structured log interface for Go cleanly separates logging facade from its implementation. * [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. @@ -658,8 +660,6 @@ 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. * [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. @@ -710,7 +710,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. @@ -756,7 +755,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. @@ -774,6 +772,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. +* [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [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... * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. From b5e4f8473d30e2bd677362ccbe5c9e40b8f45ffe Mon Sep 17 00:00:00 2001 From: Roman Khavronenko Date: Tue, 7 Nov 2017 22:47:10 +0200 Subject: [PATCH 1045/3440] Add chproxy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f5b7bff0a85..d9312a57ade 100644 --- a/README.md +++ b/README.md @@ -309,6 +309,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Database tools.* +* [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. * [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. * [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. From 72514fcb5ae6a97e5f1da54f3b426eabf2c83e74 Mon Sep 17 00:00:00 2001 From: "le.yu" Date: Wed, 8 Nov 2017 09:07:37 +0800 Subject: [PATCH 1046/3440] add repo evaluator which evaluates an expression dynamicly --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f5b7bff0a85..926946758d3 100644 --- a/README.md +++ b/README.md @@ -1223,6 +1223,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [delve](https://github.com/derekparker/delve) - Go debugger. * [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. * [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. +* [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. * [excelize](https://github.com/360EntSecGroup-Skylar/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. * [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. From 384daa8d1031fdbb77099fc06b0240cf2d2dff1c Mon Sep 17 00:00:00 2001 From: "OCHIAI, Hiromu" Date: Wed, 8 Nov 2017 15:01:17 +0900 Subject: [PATCH 1047/3440] Add gosseract (#1661) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 31816ae4c93..0ec2f74ec41 100644 --- a/README.md +++ b/README.md @@ -690,6 +690,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. +* [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. * [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. * [neat](https://github.com/jinyeom/neat) - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT). From 137fcad0627c191f905ae551f8af0a1ea50931fd Mon Sep 17 00:00:00 2001 From: Saddam H Date: Wed, 8 Nov 2017 12:02:58 +0600 Subject: [PATCH 1048/3440] Add renderer package (#1669) * Add renderer package Add golang response (JSON, JSONP, XML, YAML, HTML, File) rendering package * Typo fix for renderer package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0ec2f74ec41..a98e6875104 100644 --- a/README.md +++ b/README.md @@ -1413,6 +1413,7 @@ 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. +* [renderer](https://github.com/thedevsaddam/renderer) - Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go. * [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. From 381bfc564827132757c274cd780e36b59c1aa3d5 Mon Sep 17 00:00:00 2001 From: Timothy Date: Wed, 8 Nov 2017 15:40:06 +0800 Subject: [PATCH 1049/3440] add skm (#1662) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a98e6875104..5625bb6939c 100644 --- a/README.md +++ b/README.md @@ -1563,6 +1563,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). * [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the reponse code and data between each call for specific server stress based on its previous response. +* [skm](https://github.com/TimothyYe/skm) - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! * [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. * [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. From 0fc4cb8acc80dd633d30e79c0fcd16c816c72e7d Mon Sep 17 00:00:00 2001 From: Steeve Date: Wed, 8 Nov 2017 16:43:50 +0100 Subject: [PATCH 1050/3440] Add gocv (#1667) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5625bb6939c..0b7a5d1540d 100644 --- a/README.md +++ b/README.md @@ -602,6 +602,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. * [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. * [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. +* [gocv](https://github.com/hybridgroup/gocv) - Go package for computer vision using OpenCV 3.3+. * [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. * [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. From 468156b2cdc52c586bfa3534eb2cf02c68113011 Mon Sep 17 00:00:00 2001 From: Anthony HAMON Date: Thu, 9 Nov 2017 01:18:21 +0100 Subject: [PATCH 1051/3440] Add chyle (#1673) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d58b6d34eda..f0892742e12 100644 --- a/README.md +++ b/README.md @@ -1216,6 +1216,7 @@ 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. +* [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. * [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. From 8b36837ce571ed44ff8f32cb384531b7aa8560b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=BF=97=E5=BC=BA?= Date: Fri, 10 Nov 2017 10:02:53 +0800 Subject: [PATCH 1052/3440] add xj2go pkg (#1672) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0892742e12..d93c47e9550 100644 --- a/README.md +++ b/README.md @@ -1134,6 +1134,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text. ## Third-party APIs From 9cf84452fa025e19c134b8387c2c6e8eedc1bce6 Mon Sep 17 00:00:00 2001 From: Johannes Kohnen Date: Fri, 10 Nov 2017 11:26:09 +0100 Subject: [PATCH 1053/3440] Remove go-bindata (#1675) This (fork of) go-bindata is not awesome. The project is not maintained anymore and has a great bunch of issues. Currently there are 50 unresolved issue tickets and 18 unmerge pull requests. Many of the issues make this tool very annoying to use, but would be easy to fix if it was maintained. An example issue that is very easy to fix is https://github.com/jteeuwen/go-bindata/issues/148 See also https://github.com/jteeuwen/go-bindata/issues/165 Apparently the maintainer has disappeared from earth's surface two years ago. (Let's hope that's not actually true.) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4152d3040fb..06961c3a6a3 100644 --- a/README.md +++ b/README.md @@ -931,7 +931,6 @@ 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-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. From 82edc675aa2a50c905354905cb0ecb5c25ac6134 Mon Sep 17 00:00:00 2001 From: Mark Neves Date: Fri, 10 Nov 2017 16:34:55 -0800 Subject: [PATCH 1054/3440] Add 'tui-go' to advanced console UIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06961c3a6a3..dfd8b260a07 100644 --- a/README.md +++ b/README.md @@ -183,6 +183,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). +* [tui-go](https://github.com/marcusolsson/tui-go) - Go UI library for building rich terminal applications. * [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. * [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. * [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data. From 36e90bb4f905845922eae89e3f53c55bb293c420 Mon Sep 17 00:00:00 2001 From: Karthik Muralidharan Date: Sat, 11 Nov 2017 07:54:25 +0530 Subject: [PATCH 1055/3440] Add healthcheck (#1676) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06961c3a6a3..419d502fd27 100644 --- a/README.md +++ b/README.md @@ -769,6 +769,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [healthcheck](https://github.com/etherlabsio/healthcheck) - An opinionated and concurrent health-check HTTP handler for RESTful services. * [hostutils](https://github.com/Wing924/hostutils) - A golang library for packing and unpacking FQDNs list. * [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. * [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. From ef3d113e3a4804bbf9a8b3b7dfd7a8d854be3811 Mon Sep 17 00:00:00 2001 From: Shawn Smith Date: Sat, 11 Nov 2017 18:24:05 +0900 Subject: [PATCH 1056/3440] Add Go Report Card (#1678) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 419d502fd27..39030b039a6 100644 --- a/README.md +++ b/README.md @@ -1725,6 +1725,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. * [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. +* [Go Report Card](https://goreportcard.com) - A report card for your Go package. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. * [Golang Flow](http://golangflow.io) - Post Updates, News, Packages and more. From a4c35cbaad691c2d058a47cc379af8711844ec43 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 11 Nov 2017 09:32:16 -0200 Subject: [PATCH 1057/3440] set awesome-go chat channel (#1679) * set awesome-go chat channel ref #1666 * alphabetical order Correction --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 39030b039a6..fd2b2262804 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Join the chat at https://gitter.im/avelino/awesome-go](https://badges.gitter.im/avelino/awesome-go.svg)](https://gitter.im/avelino/awesome-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [awesome-go chat channel](http://gophers.slack.com/messages/awesome-go) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). @@ -1229,7 +1229,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [delve](https://github.com/derekparker/delve) - Go debugger. * [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. * [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. -* [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. +* [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. * [excelize](https://github.com/360EntSecGroup-Skylar/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. * [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. @@ -1733,6 +1733,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [golang-graphics](https://github.com/mholt/golang-graphics) - Collection of Go images, graphics, and art. * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. * [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. +* [Gopher Community Chat](https://invite.slack.golangbridge.org) - Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)). * [gowalker.org](https://gowalker.org) - Go Project API documentation. * [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. From b017c4dbdc947a99dcbc6fc0eba0b9c9d968f57d Mon Sep 17 00:00:00 2001 From: Wendell Sun Date: Thu, 16 Nov 2017 03:14:33 -0600 Subject: [PATCH 1058/3440] Update README.md (#1685) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 97ce7baf96d..2d2c037b30f 100644 --- a/README.md +++ b/README.md @@ -1560,6 +1560,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. +* [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. * [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. From 5569337f059e929d0ed33773fae618a969df84b1 Mon Sep 17 00:00:00 2001 From: Milan Nikolic Date: Thu, 16 Nov 2017 10:14:49 +0100 Subject: [PATCH 1059/3440] Add malgo (Mini audio library) (#1682) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2d2c037b30f..f3ca224b012 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [malgo](https://github.com/gen2brain/malgo) - Mini audio library. * [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. From 0fccf12441fd0ac8a81611321d1983f1195a0c77 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Nov 2017 08:53:07 -0200 Subject: [PATCH 1060/3440] Create CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 84 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..2bb25d84533 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,84 @@ +# Code of Conduct + +## 1. Purpose + +A primary goal of Awesome Go is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof). + +This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior. + +We invite all those who participate in Awesome Go to help us create safe and positive experiences for everyone. + +## 2. Open Source Citizenship + +A supplemental goal of this Code of Conduct is to increase open source citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community. + +Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society. + +If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know. + +## 3. Expected Behavior + +The following behaviors are expected and requested of all community members: + +* Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community. +* Exercise consideration and respect in your speech and actions. +* Attempt collaboration before conflict. +* Refrain from demeaning, discriminatory, or harassing behavior and speech. +* Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential. +* Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations. + +## 4. Unacceptable Behavior + +The following behaviors are considered harassment and are unacceptable within our community: + +* Violence, threats of violence or violent language directed against another person. +* Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. +* Posting or displaying sexually explicit or violent material. +* Posting or threatening to post other people’s personally identifying information ("doxing"). +* Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability. +* Inappropriate photography or recording. +* Inappropriate physical contact. You should have someone’s consent before touching them. +* Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances. +* Deliberate intimidation, stalking or following (online or in person). +* Advocating for, or encouraging, any of the above behavior. +* Sustained disruption of community events, including talks and presentations. + +## 5. Consequences of Unacceptable Behavior + +Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated. + +Anyone asked to stop unacceptable behavior is expected to comply immediately. + +If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event). + +## 6. Reporting Guidelines + +If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. t@avelino.xxx. + +[Reporting Guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#contribution-guidelines) + +Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress. + +## 7. Addressing Grievances + +If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify Avelino with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies. + +[Policy](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) + +## 8. Scope + +We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues–online and in-person–as well as in all one-on-one communications pertaining to community business. + +This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members. + +## 9. Contact info + +t@avelino.xxx + +## 10. License and attribution + +This Code of Conduct is distributed under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/). + +Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy). + +Retrieved on November 22, 2016 from [http://citizencodeofconduct.org/](http://citizencodeofconduct.org/) From 2f7f9392f9c4539a92ee2aff85de6d19b297c034 Mon Sep 17 00:00:00 2001 From: vz Date: Fri, 17 Nov 2017 03:20:05 +0800 Subject: [PATCH 1061/3440] add gse (#1687) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f3ca224b012..fb46a17d85f 100644 --- a/README.md +++ b/README.md @@ -805,6 +805,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. * [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. From 57982747782b8b3afa1e82e3b4996512a9fc334f Mon Sep 17 00:00:00 2001 From: Roman Atachiants Date: Fri, 17 Nov 2017 03:35:08 +0800 Subject: [PATCH 1062/3440] Update README.md (#1674) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb46a17d85f..81f47c53c3e 100644 --- a/README.md +++ b/README.md @@ -410,6 +410,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. * [digota](https://github.com/digota/digota) - grpc ecommerce microservice. * [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. +* [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. * [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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. From 0be54c8a0af10da6f59205b224eeb3eb568a9d0c Mon Sep 17 00:00:00 2001 From: Quentin Renard Date: Mon, 20 Nov 2017 10:31:18 +0100 Subject: [PATCH 1063/3440] Added go-astits (#1690) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 81f47c53c3e..63e9ff1cc05 100644 --- a/README.md +++ b/README.md @@ -1357,6 +1357,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. * [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). +* [go-astits](https://github.com/asticode/go-astits) - Parse and demux MPEG Transport Streams (.ts) natively in GO. * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. From 1f40f0e7b7f345a31ebbe3f57820c3fbf4b1a3b6 Mon Sep 17 00:00:00 2001 From: Ian Lopshire Date: Tue, 21 Nov 2017 09:31:07 -0500 Subject: [PATCH 1064/3440] Added go-fixedwidth (#1691) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63e9ff1cc05..1196df1e1f8 100644 --- a/README.md +++ b/README.md @@ -1111,6 +1111,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). * [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. From 9e57279ff08b6896cdb400add24c23170bc6fe7f Mon Sep 17 00:00:00 2001 From: Alin Sinpalean Date: Tue, 21 Nov 2017 15:31:56 +0100 Subject: [PATCH 1065/3440] Replace github username in concurrent-writer URL (#1688) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1196df1e1f8..f4043be1aed 100644 --- a/README.md +++ b/README.md @@ -241,7 +241,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [concurrent-writer](https://github.com/alin-sinpalean/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. +* [concurrent-writer](https://github.com/free/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. * [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. From 7d066a02619e6ded3614ed9f2e518850ec3ad384 Mon Sep 17 00:00:00 2001 From: Lucas Gomide Date: Tue, 21 Nov 2017 23:55:34 -0200 Subject: [PATCH 1066/3440] Add Snitch to list of other software (#1693) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f4043be1aed..33f1645cca0 100644 --- a/README.md +++ b/README.md @@ -1620,6 +1620,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). * [snap](https://github.com/intelsdi-x/snap) - Powerful telemetry framework. +* [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. From d473f049582d44c65df5eac307557144df6c9c1a Mon Sep 17 00:00:00 2001 From: Nathan Osman Date: Tue, 21 Nov 2017 17:56:30 -0800 Subject: [PATCH 1067/3440] Add go-sunrise. (#1692) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 33f1645cca0..c81ad2713f4 100644 --- a/README.md +++ b/README.md @@ -397,6 +397,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [durafmt](https://github.com/hako/durafmt) - Time duration formatting library for Go. * [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving... * [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). +* [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. * [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`. From 3996a2f8244619c39a715458161d039803f978d9 Mon Sep 17 00:00:00 2001 From: Diogo Nicoleti Date: Wed, 22 Nov 2017 17:32:31 -0200 Subject: [PATCH 1068/3440] Add Joinville Go Meetup (#1694) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c81ad2713f4..edb486fda61 100644 --- a/README.md +++ b/README.md @@ -1695,6 +1695,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Boston](https://www.meetup.com/bostongo/) * [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) * [Golang Israel](https://www.meetup.com/Go-Israel/) +* [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) * [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) * [Golang Lyon](https://www.meetup.com/Golang-Lyon/) * [Golang Melbourne](https://www.meetup.com/golang-mel/) From 06dc9cc23085d3e41588f7974baa5cc2103efa3a Mon Sep 17 00:00:00 2001 From: Marvin Blum Date: Sat, 25 Nov 2017 15:40:05 +0100 Subject: [PATCH 1069/3440] Add Gondolier (#1697) * Added Gondolier * Gondolier in alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index edb486fda61..321fa87ad0c 100644 --- a/README.md +++ b/README.md @@ -304,6 +304,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [gondolier](https://github.com/emvicom/gondolier) - Gondolier is a library to auto migrate database schemas using structs. * [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. From 4f62e819b7e7f3d1faafa1ec418c8744fb9c4d33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20S=C5=82omka?= Date: Mon, 27 Nov 2017 23:28:57 +0100 Subject: [PATCH 1070/3440] Fix link to Slack (#1699) - correct channel name - smaller font --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 321fa87ad0c..ddb737bd851 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [awesome-go chat channel](http://gophers.slack.com/messages/awesome-go) +# Awesome Go + +[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [awesome-go chat channel](http://gophers.slack.com/messages/awesome) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From d30cc00a05e4b009826acd1a7edbb8fdf58688a7 Mon Sep 17 00:00:00 2001 From: Alexey Kamenskiy Date: Tue, 28 Nov 2017 06:29:36 +0800 Subject: [PATCH 1071/3440] Add link to argparse (#1700) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddb737bd851..eb26bc3fa7e 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications.* +* [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. * [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 struct tags. * [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. From 16fff0c6c6823042cdec32ac606a94789245de50 Mon Sep 17 00:00:00 2001 From: Jacek Szwec Date: Tue, 28 Nov 2017 21:14:19 -0500 Subject: [PATCH 1072/3440] Add csvutil (#1701) * Add csvutil * Add missing comma to csvutil description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eb26bc3fa7e..ab784299769 100644 --- a/README.md +++ b/README.md @@ -1002,6 +1002,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang. * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. * [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. +* [csvutil] (https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. * [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for 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. From 3dca83748d7780f07a2443a384bc61bb06490641 Mon Sep 17 00:00:00 2001 From: Akshay Moghe Date: Tue, 28 Nov 2017 18:14:31 -0800 Subject: [PATCH 1073/3440] Add distillog to 'Logging' section (#1703) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ab784299769..2174cb232db 100644 --- a/README.md +++ b/README.md @@ -646,6 +646,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for generating and working with log files.* +* [distillog](https://github.com/amoghe/distillog) - distilled levelled logging (think of it as stdlib + log levels). * [glg](https://github.com/kpango/glg) - glg is simple and fast leveled logging library for Go. * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. * [go-cronowriter](https://github.com/utahta/go-cronowriter) - Simple writer that rotate log files automatically based on current date and time, like cronolog. From dd47505e407067722ad8fa88acc53775f28a8e22 Mon Sep 17 00:00:00 2001 From: Jacek Szwec Date: Tue, 28 Nov 2017 21:25:22 -0500 Subject: [PATCH 1074/3440] Fix csvutil link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2174cb232db..d8d97cec745 100644 --- a/README.md +++ b/README.md @@ -1003,7 +1003,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang. * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. * [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. -* [csvutil] (https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. +* [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. * [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for 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. From 946492a1ba3ac76fc3f85c080dd2438d0acdc54f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Wed, 29 Nov 2017 14:12:33 -0200 Subject: [PATCH 1075/3440] Better slack badge (#1707) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d8d97cec745..e63f5a2423e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Awesome Go -[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [awesome-go chat channel](http://gophers.slack.com/messages/awesome) +[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://s3.eu-central-1.amazonaws.com/ngtuna/join-us-on-slack.png)](http://gophers.slack.com/messages/awesome) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 64d778a2591aaffc76db7de863f2802b1a84e16b Mon Sep 17 00:00:00 2001 From: Grigory Zubankov Date: Sat, 2 Dec 2017 09:30:50 +0300 Subject: [PATCH 1076/3440] Add repeat --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e63f5a2423e..5076d16593a 100644 --- a/README.md +++ b/README.md @@ -1318,6 +1318,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. * [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. +* [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. From 3b66b2273ac5eb4914a8f80c29e2d1bf199f4616 Mon Sep 17 00:00:00 2001 From: Isaac Hier Date: Sun, 3 Dec 2017 20:15:06 -0500 Subject: [PATCH 1077/3440] Add Jaeger --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e63f5a2423e..4446270eb1d 100644 --- a/README.md +++ b/README.md @@ -291,6 +291,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goleveldb](https://github.com/syndtr/goleveldb) - Implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in 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. +* [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. * [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. From e7dbcd6d2d3be17bae8deaf868dd949a973123c1 Mon Sep 17 00:00:00 2001 From: Kevin Burke Date: Mon, 4 Dec 2017 16:54:55 -0800 Subject: [PATCH 1078/3440] Add autocert and nacl (#1698) Autocert is a Go maintained project that facilitates provisioning TLS certificates and starting a server using those certificates. kevinburke/nacl implements all of the NaCL API's in Go, in a way that's compatible with the C library offered here: https://nacl.cr.yp.to. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index e63f5a2423e..85d525f7135 100644 --- a/README.md +++ b/README.md @@ -986,11 +986,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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. +* [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto + provision Let's Encrypt certificates and start a TLS server. * [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)". * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. * [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. +* [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. * [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. From bb1ea2f9dcfed1b06f4c651a50f2b33e295fec75 Mon Sep 17 00:00:00 2001 From: Grigory Zubankov Date: Tue, 5 Dec 2017 09:06:08 +0300 Subject: [PATCH 1079/3440] Add journald --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f58be9a13a9..487e5eecd58 100644 --- a/README.md +++ b/README.md @@ -656,6 +656,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Console, Simple Console, File or Elasticsearch. * [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. * [gone/log](https://github.com/One-com/gone/tree/master/log) - Fast, extendable, full-featured, std-lib source compatible log library. +* [journald](https://github.com/ssgreg/journald) - Go implementation of systemd Journal's native API for logging. * [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](https://github.com/teris-io/log) - Structured log interface for Go cleanly separates logging facade from its implementation. From d2588923491220a9d4c9046bce8a7af60324da27 Mon Sep 17 00:00:00 2001 From: Patrick Rainier Juen Date: Tue, 5 Dec 2017 19:14:43 +0800 Subject: [PATCH 1080/3440] Transfer traefik to DevOps tools Traefik was under `Authentication`, this PR transfers it under `DevOps Tools`. If you think it fits more in another category, do tell me and I'll update the PR. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 487e5eecd58..8ec03e0415b 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). * [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. * [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. -* [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. * [yubigo](https://github.com/GeertJohan/yubigo) - Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. ## Command Line @@ -1589,6 +1588,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the reponse code and data between each call for specific server stress based on its previous response. * [skm](https://github.com/TimothyYe/skm) - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! * [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. +* [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. * [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. From 40d4ab0101356bc73f78bfdff416fe1a2f3fa093 Mon Sep 17 00:00:00 2001 From: zhengchun Date: Wed, 6 Dec 2017 11:06:53 +0800 Subject: [PATCH 1081/3440] add antch (#1713) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ec03e0415b..025902f7ade 100644 --- a/README.md +++ b/README.md @@ -752,6 +752,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. +* [antch](https://github.com/antchfx/antch) - A fast, powerful and extensible web crawling & scraping framework. * [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. From 60d9b77e53c7077708416eee91f8c5bd2ff5a32f Mon Sep 17 00:00:00 2001 From: Patrick Rainier Juen Date: Wed, 6 Dec 2017 13:14:10 +0800 Subject: [PATCH 1082/3440] Add gopher mascot resources (#1716) * Add gopher mascot resources addresses #1695 * Reorder entries * Correct order based on CI --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 025902f7ade..4e4aa877db2 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Benchmarks](#benchmarks) - [Conferences](#conferences) - [E-Books](#e-books) + - [Gophers](#gophers) - [Meetups](#meetups) - [Twitter](#twitter) - [Websites](#websites) @@ -1692,6 +1693,15 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [The Go Programming Language](http://www.gopl.io/) * [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) +## Gophers + +* [gopher-stickers](https://github.com/tenntenn/gopher-stickers) +* [gopher-vector](https://github.com/golang-samples/gopher-vector) +* [gophericons](https://github.com/shalakhin/gophericons) +* [gopherize.me](https://github.com/matryer/gopherize.me) - Gopherize yourself +* [gophers](https://github.com/ashleymcnamara/gophers) - Gopher artworks by Ashley McNamara +* [gophers](https://github.com/egonelbre/gophers) - Free gophers + ## Meetups * [Go Language NYC](https://www.meetup.com/golanguagenewyork/) From 8288becf95e4490632e1bdbcc98f750880ffbee4 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Thu, 7 Dec 2017 09:59:55 +0800 Subject: [PATCH 1083/3440] docs(Gophers): add another gopher icon resource. (#1717) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 4e4aa877db2..067aa6c1aed 100644 --- a/README.md +++ b/README.md @@ -1695,12 +1695,15 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Gophers +* [Go-gopher-Vector](https://github.com/keygx/Go-gopher-Vector) - Go gopher Vector Data [.ai, .svg] +* [gopher-logos](https://github.com/GolangUA/gopher-logos) - adorable gopher logos * [gopher-stickers](https://github.com/tenntenn/gopher-stickers) * [gopher-vector](https://github.com/golang-samples/gopher-vector) * [gophericons](https://github.com/shalakhin/gophericons) * [gopherize.me](https://github.com/matryer/gopherize.me) - Gopherize yourself * [gophers](https://github.com/ashleymcnamara/gophers) - Gopher artworks by Ashley McNamara * [gophers](https://github.com/egonelbre/gophers) - Free gophers +* [gophers](https://github.com/rogeralsing/gophers) - random gopher graphics ## Meetups From 87b3e8896873c926a7a9270053c35420235f6036 Mon Sep 17 00:00:00 2001 From: Dave Brophy Date: Thu, 7 Dec 2017 02:55:01 -0800 Subject: [PATCH 1084/3440] Add Blast (#1689) Blast is a tool I developed to send ~6m API requests from a CSV data source. I've extended it to include more load-testing specific features. It's protocol agnostic, so non-http APIs can be easily supported. Batch job features: * Use CSV data source to send millions of API requests. * Automatic resume after exit. Load testing features: * Change the rate (requests per second) interactively during the run. * Simple, useful latency stats. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 067aa6c1aed..117c83e39da 100644 --- a/README.md +++ b/README.md @@ -1556,6 +1556,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. * [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. * [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. +* [Blast](https://github.com/dave/blast) - A simple tool for API load testing and batch jobs. * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). From e700fb97098568a93f23e937cca23f041b943a1f Mon Sep 17 00:00:00 2001 From: Artem Filippov Date: Mon, 11 Dec 2017 11:39:20 +0300 Subject: [PATCH 1085/3440] Add github.com/Xamber/Varis --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 117c83e39da..74ebf132ded 100644 --- a/README.md +++ b/README.md @@ -712,6 +712,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [tfgo](https://github.com/galeone/tfgo) - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python. +* [Varis](https://github.com/Xamber/Varis) - Golang Neural Network. ## Messaging From d230b9852858112afda7612c02d57ec37f06762e Mon Sep 17 00:00:00 2001 From: marusama Date: Mon, 11 Dec 2017 14:57:24 +0300 Subject: [PATCH 1086/3440] Update README.md Add github.com/marusama/semaphore --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 117c83e39da..90985542d87 100644 --- a/README.md +++ b/README.md @@ -562,6 +562,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [semaphore](https://github.com/marusama/semaphore) - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations). * [tunny](https://github.com/Jeffail/tunny) - Goroutine pool for golang. * [worker-pool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool. * [workerpool](https://github.com/gammazero/workerpool) - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued. From e06cdde31f810567dcd70f1dd0ac28905d061dce Mon Sep 17 00:00:00 2001 From: lamados Date: Tue, 12 Dec 2017 15:15:24 +0000 Subject: [PATCH 1087/3440] Remove github.com/neuegram/ghost (#1724) The library hasn't been updated in 2 years and [Casper](https://clients.casper.io/register.php) has been shut down for legal reasons, so the library no longer works. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 117c83e39da..b6488cdc303 100644 --- a/README.md +++ b/README.md @@ -1173,7 +1173,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. * [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-hacknews](https://github.com/PaulRosset/go-hacknews) - Tiny Go client for HackerNews API. From 86d247f7d95bf50421d08fba7b8e0156a2bea174 Mon Sep 17 00:00:00 2001 From: Rafael Jesus Date: Wed, 13 Dec 2017 09:16:11 +0100 Subject: [PATCH 1088/3440] Add parallel-fn library (#1722) Add parallel-fn library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87018e7fbd2..4b9826d740a 100644 --- a/README.md +++ b/README.md @@ -561,6 +561,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. +* [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. * [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. * [tunny](https://github.com/Jeffail/tunny) - Goroutine pool for golang. From 2efad5eafb323defc8f07c57049820ec1446e58c Mon Sep 17 00:00:00 2001 From: Nazarii Date: Sat, 9 Dec 2017 18:41:53 +0200 Subject: [PATCH 1089/3440] added banjo to web frameworks list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 117c83e39da..e3b3cc27166 100644 --- a/README.md +++ b/README.md @@ -1383,6 +1383,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go. * [Air](https://github.com/sheng/air) - Ideal RESTful web framework for Go. +* [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! * [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. From b5c11d7af9461241558e7d2d77095607502717c1 Mon Sep 17 00:00:00 2001 From: Weilin Shi <934587911@qq.com> Date: Sat, 16 Dec 2017 08:25:52 +0800 Subject: [PATCH 1090/3440] Rename Gogland to GoLand (#1727) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e9974dafd9..25a2b2eeb92 100644 --- a/README.md +++ b/README.md @@ -1615,7 +1615,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. -* [Gogland](https://jetbrains.com/go) - Full featured cross-platform Go IDE. +* [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. * [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. From fe2ac16416202e5d1341b07fe675b9682ef21733 Mon Sep 17 00:00:00 2001 From: Daniel Selans Date: Sun, 31 Dec 2017 14:23:30 -0800 Subject: [PATCH 1091/3440] Adding the InVisionApp/go-health async health check lib --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 25a2b2eeb92..c706628049e 100644 --- a/README.md +++ b/README.md @@ -420,6 +420,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. +* [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service. * [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. * [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. From 4fb38272d21803748299360994a2b9901aacf3eb Mon Sep 17 00:00:00 2001 From: Jan Koehnlein Date: Tue, 2 Jan 2018 03:36:01 +0100 Subject: [PATCH 1092/3440] Added theia-go-extension and go-language-server (#1732) * Added theia-go-extension and go-language-server * Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index acdf68a27c4..f7e4b846cac 100644 --- a/README.md +++ b/README.md @@ -1519,11 +1519,13 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Editor Plugins * [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs. +* [go-language-server](https://github.com/theia-ide/go-language-server) - A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol. * [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. * [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. +* [theia-go-extension](https://github.com/theia-ide/theia-go-extension) - Go language support for the Theia IDE. * [velour](https://github.com/velour/velour) - IRC client for the acme editor. * [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - Vim plugin to highlight syntax errors on save. * [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. From ba577d7173e1beec87f8cc6cee7b074fd27acfda Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 2 Jan 2018 03:37:43 +0100 Subject: [PATCH 1093/3440] Add periph.io (#1729) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f7e4b846cac..5efbbbf949a 100644 --- a/README.md +++ b/README.md @@ -643,6 +643,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gatt](https://github.com/paypal/gatt) - Gatt is a Go package for building Bluetooth Low Energy peripherals. * [gobot](https://github.com/hybridgroup/gobot/) - Gobot is a framework for robotics, physical computing, and the Internet of Things. * [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. +* [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. * [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. ## Logging From db585822db8bfe4229aaa2b9c0707ef7d0ea09d6 Mon Sep 17 00:00:00 2001 From: Huan Du Date: Tue, 2 Jan 2018 11:34:41 +0800 Subject: [PATCH 1094/3440] add go-sqlbuilder (#1743) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5efbbbf949a..bdca4837052 100644 --- a/README.md +++ b/README.md @@ -904,6 +904,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [beego orm](https://github.com/astaxie/beego/tree/master/orm) - Powerful orm framework for go. Support: pq/mysql/sqlite3. * [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. * [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. +* [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. * [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. * [gomodel](https://github.com/cosiner/gomodel) - Lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. From 7e9f7bf509eca49f5aed3dcba9f98cc7370e8f69 Mon Sep 17 00:00:00 2001 From: Rafael Jesus Date: Tue, 2 Jan 2018 16:16:15 +0100 Subject: [PATCH 1095/3440] Add retry-go library (#1721) Add retry-go library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23ed0534ec2..7d8f22b78c1 100644 --- a/README.md +++ b/README.md @@ -1335,6 +1335,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [retry](https://github.com/kamilsk/retry) - Functional mechanism based on context to perform actions repetitively until successful. +* [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. From 361aa4e4fa58c42f818914159e73794e5cc03d20 Mon Sep 17 00:00:00 2001 From: adranwit Date: Tue, 2 Jan 2018 07:16:32 -0800 Subject: [PATCH 1096/3440] added endly declarative end to end testing (#1728) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7d8f22b78c1..a78c85f763f 100644 --- a/README.md +++ b/README.md @@ -1072,6 +1072,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [endly](https://github.com/viant/endly) - Declarative end to end functional testing. * [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. From ebd2a18c449ac372ba83cbfec4dc6f014bb2d0c1 Mon Sep 17 00:00:00 2001 From: Maxim Chechel Date: Tue, 2 Jan 2018 18:16:42 +0300 Subject: [PATCH 1097/3440] Add github.com/hexdigest/prep (#1731) * Added link to minimock generator * Add github.com/hexdigest/prep * changed the ordering --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a78c85f763f..20950cf32bb 100644 --- a/README.md +++ b/README.md @@ -325,6 +325,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Supports 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. +* [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code. * [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. * [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup. * [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. From 3d306757c3325e5174f0f86399740f702dc674db Mon Sep 17 00:00:00 2001 From: Henry Sarabia Date: Tue, 2 Jan 2018 07:16:52 -0800 Subject: [PATCH 1098/3440] Add github.com/Henry-Sarabia/igdb (#1733) * Add github.com/Henry-Sarabia/igdb * Fix link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20950cf32bb..c531246c5ec 100644 --- a/README.md +++ b/README.md @@ -1208,6 +1208,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. * [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. +* [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). * [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. * [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. From a8193023a326d9b1ef8467076f59e900d75592c7 Mon Sep 17 00:00:00 2001 From: EricZhou <34467684+mojocn@users.noreply.github.com> Date: Tue, 2 Jan 2018 23:17:03 +0800 Subject: [PATCH 1099/3440] Update README.md (#1734) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c531246c5ec..6d051178bc5 100644 --- a/README.md +++ b/README.md @@ -765,6 +765,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [base64Captcha](https://github.com/mojocn/base64Captcha) - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha. * [battery](https://github.com/distatus/battery) - Cross-platform, normalized battery information library. * [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). From 1c9751d1a7c8a1177fbcba7f7cdefb2c62ee0584 Mon Sep 17 00:00:00 2001 From: Anthony HAMON Date: Tue, 2 Jan 2018 16:17:12 +0100 Subject: [PATCH 1100/3440] Add strumt (#1736) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6d051178bc5..421d613b95a 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. * [readline](https://github.com/chzyer/readline) - Pure golang implementation that provides most features in GNU-Readline under MIT license. * [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. +* [strumt](https://github.com/antham/strumt) - Library to create prompt chain. * [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. * [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). * [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency. From 05b4b795b79c1ba623c413a19cae3db2ceed4a46 Mon Sep 17 00:00:00 2001 From: Oleg Lobanov Date: Tue, 2 Jan 2018 18:17:20 +0300 Subject: [PATCH 1101/3440] add https://github.com/o1egl/fwencoder library (#1738) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 421d613b95a..25d9fa6ec0e 100644 --- a/README.md +++ b/README.md @@ -1019,6 +1019,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. * [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. * [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. +* [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. * [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for 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. From 76d30a0366d85163674ae3665e575882f5d8aca8 Mon Sep 17 00:00:00 2001 From: jandelgado Date: Wed, 3 Jan 2018 03:52:54 +0100 Subject: [PATCH 1102/3440] Added RabbitMQ/AMQP related libs and tools (#1740) * Added RabbitMQ/AMQP related libs and tools * just add rabtap --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 25d9fa6ec0e..dac1c19ead6 100644 --- a/README.md +++ b/README.md @@ -751,6 +751,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [pubsub](https://github.com/tuxychandru/pubsub) - Simple pubsub package for go. +* [rabtap](https://github.com/jandelgado/rabtap) - RabbitMQ swiss army knife cli app. * [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. From 1b821c14e0edf1af86144823dbc9790a3d55be0e Mon Sep 17 00:00:00 2001 From: Laurent Demailly Date: Wed, 3 Jan 2018 12:00:30 -0800 Subject: [PATCH 1103/3440] proposed addition of fortio (#1742) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dac1c19ead6..303230f4345 100644 --- a/README.md +++ b/README.md @@ -858,6 +858,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [fortio](https://github.com/istio/fortio) - Load testing library and command line tool and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. * [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). From 7fb863efc3f0ba8bd8264ee6045a046a49289d72 Mon Sep 17 00:00:00 2001 From: Saurabh-hooda <34857609+Saurabh-hooda@users.noreply.github.com> Date: Thu, 4 Jan 2018 06:09:27 +0530 Subject: [PATCH 1104/3440] Suggestion for a Resource addition (#1747) * Suggestion for a Resource addition Hello, I am Saurabh, co-founder of Hackr.io. Hackr.io is a programming community & a great place to find the best online programming courses and tutorials. It's a one stop solution for tutorial recommendations with 5000+ tutorial of more than 140 programming languages. I was looking at your learning resources page and found it pretty useful. I believe that Hackr.io would be really useful to the developer community in finding the right programming course/tutorial and would make a nice addition to your resource page. Hackr is also listed on other esteemed websites like Lehigh University's resource page and official Official Python wiki page to name a few. Thanks for the list of great resources you have compiled. Enjoy your week:) * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 303230f4345..833b5fcb44e 100644 --- a/README.md +++ b/README.md @@ -1800,6 +1800,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +* [Golang tutorial](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. From 2a12306ab3884d77991e55740c9ecc55df86113f Mon Sep 17 00:00:00 2001 From: Ddo Date: Fri, 5 Jan 2018 07:56:31 +0700 Subject: [PATCH 1105/3440] add ddo/rq (#1741) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 833b5fcb44e..d38e8c35d51 100644 --- a/README.md +++ b/README.md @@ -1345,6 +1345,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [retry](https://github.com/kamilsk/retry) - Functional mechanism based on context to perform actions repetitively until successful. * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. +* [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. From 80dddfa85a3d5654613ab01bc77a96da2e6cb6b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20Belicza?= Date: Fri, 5 Jan 2018 01:57:24 +0100 Subject: [PATCH 1106/3440] Add minquery utility library (#1750) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d38e8c35d51..0ed4052eda7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Awesome Go +# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://s3.eu-central-1.amazonaws.com/ngtuna/join-us-on-slack.png)](http://gophers.slack.com/messages/awesome) @@ -1320,6 +1320,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). * [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. From 6edf917f8a6b92230e0f3be61abd6bd3928ef388 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20Belicza?= Date: Sat, 6 Jan 2018 05:55:28 +0100 Subject: [PATCH 1107/3440] Add backscanner utility library (#1752) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0ed4052eda7..8ed925e3d7b 100644 --- a/README.md +++ b/README.md @@ -1247,6 +1247,7 @@ 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. +* [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. * [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. * [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. * [circuitbreaker](https://github.com/rubyist/circuitbreaker) - Circuit Breakers in Go. From 390e6e98742d8339b492cf30425b3207b40e73ba Mon Sep 17 00:00:00 2001 From: Spencer Date: Sun, 7 Jan 2018 08:59:27 -0600 Subject: [PATCH 1108/3440] Updated GoSublime descirption (#1753) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ed925e3d7b..8e0efd31af4 100644 --- a/README.md +++ b/README.md @@ -1539,7 +1539,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [GoSublime](https://github.com/DisposaBoy/GoSublime) - Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features. * [theia-go-extension](https://github.com/theia-ide/theia-go-extension) - Go language support for the Theia IDE. * [velour](https://github.com/velour/velour) - IRC client for the acme editor. * [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - Vim plugin to highlight syntax errors on save. From a03363751e47abfdbe03c69806bdfd937c307b9e Mon Sep 17 00:00:00 2001 From: Mark Phelps Date: Mon, 8 Jan 2018 19:44:32 -0500 Subject: [PATCH 1109/3440] Add codeship-go link (#1755) Add link to Codeship Go API client --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8e0efd31af4..55310534949 100644 --- a/README.md +++ b/README.md @@ -1179,6 +1179,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [codeship-go](https://github.com/codeship/codeship-go) - Go client library for interacting with Codeship's API v2. * [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API. * [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API. From 5663e6fc6f5f55b4260ac2cd5b27ac87ec510335 Mon Sep 17 00:00:00 2001 From: Daniel Selans Date: Mon, 8 Jan 2018 18:47:40 -0800 Subject: [PATCH 1110/3440] adding the conjungo merge library (#1745) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 55310534949..02c952318ae 100644 --- a/README.md +++ b/README.md @@ -246,6 +246,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [bloom](https://github.com/yourbasic/bloom) - Golang Bloom filter implementation. * [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams. * [concurrent-writer](https://github.com/free/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. +* [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. * [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. From 4ac333393be05182288604887a4430890bf548b8 Mon Sep 17 00:00:00 2001 From: Joseph Taylor Date: Thu, 11 Jan 2018 18:47:43 -0600 Subject: [PATCH 1111/3440] Add Timespan package (#1757) * Add Timespan package Timespan is a Go library for interacting with intervals of time, defined as a start time and a duration. * Alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 02c952318ae..90dddaa23ef 100644 --- a/README.md +++ b/README.md @@ -409,6 +409,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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`. +* [timespan](https://github.com/SaidinWoT/timespan) - For interacting with intervals of time, defined as a start time and a duration. * [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. * [tuesday](https://github.com/osteele/tuesday) - Ruby-compatible Strftime function. From 6ba63090c7040ac2ec2cdbfa1ecb88e53bcc36c3 Mon Sep 17 00:00:00 2001 From: Siarhei Navatski Date: Sun, 14 Jan 2018 23:16:48 +0300 Subject: [PATCH 1112/3440] go-mgo is unmaintained (#1759) https://github.com/go-mgo/mgo/commit/b86855e89b5a6a30ea0c31ef8bb16bf17179734d --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 90dddaa23ef..c252d79f396 100644 --- a/README.md +++ b/README.md @@ -376,7 +376,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. - * [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. + * [mgo](https://github.com/globalsign/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-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in golang. * [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang. From b74ffb5fc4d147c8650e33b391327402e4b08d6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20D=C3=B6ll?= Date: Sun, 14 Jan 2018 21:20:15 +0100 Subject: [PATCH 1113/3440] Adding Chronos library and Yeoman generator (#1760) * Adding a Chronos library This adds a library to interact with the [Chronos](https://mesos.github.io/chronos/) Job Scheduler for Mesos * Adding Yeoman generator for Go --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c252d79f396..7585f5867df 100644 --- a/README.md +++ b/README.md @@ -1192,6 +1192,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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-chronos](https://github.com/axelspringer/go-chronos) - Go library for interacting with the [Chronos](https://mesos.github.io/chronos/) Job Scheduler * [go-hacknews](https://github.com/PaulRosset/go-hacknews) - Tiny Go client for HackerNews API. * [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) @@ -1563,6 +1564,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. * [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. * [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. +* [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](https://yeoman.io) generator to get new Go projects started. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. From 5ba2e0989dc3466ac8ee3e2487be565184330cbd Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 15 Jan 2018 02:53:07 +0000 Subject: [PATCH 1114/3440] Added GoCrest and GoGiven to the list (#1761) * Added GoCrest and GoGiven to the list GoCrest and GoGiven added to the awesome list. * Did not realize -'s were alphabetically before alphanumeric characters. * fix ordering again - dashes were not the only issue. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7585f5867df..8ba02801c44 100644 --- a/README.md +++ b/README.md @@ -1089,8 +1089,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [gocrest](https://github.com/corbym/gocrest) - Composable hamcrest-like matchers for Go assertions. * [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. + * [gogiven](https://github.com/corbym/gogiven) - YATSPEC-like BDD testing framework for Go. * [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. From 96d0e857ff81258205ad1bc40cc161945016b42f Mon Sep 17 00:00:00 2001 From: oaStuff Date: Wed, 17 Jan 2018 02:18:44 +0100 Subject: [PATCH 1115/3440] added clusteredBigCache (#1763) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ba02801c44..d62aea2a703 100644 --- a/README.md +++ b/README.md @@ -281,6 +281,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. +* [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. * [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. From 62f0074f630c2d4617891bc90c29a3e1d10b769b Mon Sep 17 00:00:00 2001 From: Marc Gray Date: Wed, 17 Jan 2018 02:18:58 +0100 Subject: [PATCH 1116/3440] Update README.md (#1746) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d62aea2a703..f3c64a92d61 100644 --- a/README.md +++ b/README.md @@ -292,6 +292,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. * [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 Go. +* [gorocksdb](https://github.com/kapitan-k/gorocksdb) - Gorocksdb is a wrapper for [RocksDB](https://rocksdb.org) written in 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. * [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. From b8ee8e656946f9f392a2ab9a6efe965bb05e2320 Mon Sep 17 00:00:00 2001 From: Rafael Jesus Date: Wed, 17 Jan 2018 12:24:34 +0100 Subject: [PATCH 1117/3440] Add rabbus library (#1764) * Add rabbus library * :see_no_evil: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f3c64a92d61..88947e9b92a 100644 --- a/README.md +++ b/README.md @@ -755,6 +755,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [pubsub](https://github.com/tuxychandru/pubsub) - Simple pubsub package for go. +* [rabbus](https://github.com/rafaeljesus/rabbus) - A tiny wrapper over amqp exchanges and queues. * [rabtap](https://github.com/jandelgado/rabtap) - RabbitMQ swiss army knife cli app. * [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. From a4933476ff99f3f2984a39866569b42884202ba2 Mon Sep 17 00:00:00 2001 From: Ilija Eftimov Date: Mon, 22 Jan 2018 23:08:50 +0100 Subject: [PATCH 1118/3440] Add GopherCon Europe to conferences list (#1768) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 88947e9b92a..372f7d6caad 100644 --- a/README.md +++ b/README.md @@ -1708,6 +1708,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GopherCon](http://www.gophercon.com/) - Denver, USA * [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR * [GopherCon Dubai](http://www.gophercon.ae/) - Dubai, UAE +* [GopherCon Europe](https://gophercon.is/) - Reykjavik, Iceland * [GopherCon India](http://www.gophercon.in/) - Pune, India * [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore * [GothamGo](http://gothamgo.com/) - New York City, USA From c063dddea659c6c3dd9fa9c69eda6c51099eeffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Gim=C3=A9nez?= Date: Tue, 30 Jan 2018 16:45:32 -0300 Subject: [PATCH 1119/3440] Add Justforfunc youtube channel hosted by @campoy (#1776) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 372f7d6caad..29aea58e626 100644 --- a/README.md +++ b/README.md @@ -1803,6 +1803,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. * [Gopher Community Chat](https://invite.slack.golangbridge.org) - Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)). * [gowalker.org](https://gowalker.org) - Go Project API documentation. +* [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). * [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. From 398d0226e7dab6009077dceee4275d771eb9ea65 Mon Sep 17 00:00:00 2001 From: caibirdme Date: Wed, 31 Jan 2018 03:47:31 +0800 Subject: [PATCH 1120/3440] add gendry (#1772) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 29aea58e626..5e128af522e 100644 --- a/README.md +++ b/README.md @@ -338,6 +338,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 them with ease. +* [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder. * [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. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. From 3c28c42e835b0bda1bcd0b9aa6c0d4a9fe47469e Mon Sep 17 00:00:00 2001 From: Jack Mott Date: Tue, 30 Jan 2018 13:48:44 -0600 Subject: [PATCH 1121/3440] Update README.md (#1773) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5e128af522e..6a1448de621 100644 --- a/README.md +++ b/README.md @@ -1813,6 +1813,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. * [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. +* [Games With Go](http://gameswithgo.org/) - A video series teaching programming and game development. * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. From 0deb012e02890ea5f996e695a68a22a8762cf663 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Tue, 30 Jan 2018 20:50:14 +0100 Subject: [PATCH 1122/3440] Add anagent library (#1775) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6a1448de621..8ec2deeae41 100644 --- a/README.md +++ b/README.md @@ -768,6 +768,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. +* [anagent](https://github.com/mudler/anagent) - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection. * [antch](https://github.com/antchfx/antch) - A fast, powerful and extensible web crawling & scraping framework. * [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. From 244d5066d0964532714b870d57b594fab2ffd32a Mon Sep 17 00:00:00 2001 From: Bator Tsyrendylykov Date: Wed, 31 Jan 2018 16:43:09 +0300 Subject: [PATCH 1123/3440] Add CyclicBarrier to goroutines section. (#1778) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ec2deeae41..91ebe5537fa 100644 --- a/README.md +++ b/README.md @@ -564,6 +564,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for managing and working with Goroutines.* +* [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. From e965e9694dbce64b9090eb934ae68a8ad4480435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Wed, 31 Jan 2018 16:51:59 -0200 Subject: [PATCH 1124/3440] Change slack badge url (#1780) Change slack badge url to be displayed in site, like README. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 91ebe5537fa..c67770b1e3f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Awesome Go -[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://s3.eu-central-1.amazonaws.com/ngtuna/join-us-on-slack.png)](http://gophers.slack.com/messages/awesome) +[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://camo.githubusercontent.com/984828c0b020357921853f59eaaa65aaee755542/68747470733a2f2f73332e65752d63656e7472616c2d312e616d617a6f6e6177732e636f6d2f6e6774756e612f6a6f696e2d75732d6f6e2d736c61636b2e706e67)](http://gophers.slack.com/messages/awesome) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 2af8d16295bc9f45b137ca2dc650e675d9d8a167 Mon Sep 17 00:00:00 2001 From: Eduard Date: Thu, 1 Feb 2018 15:30:57 +0300 Subject: [PATCH 1125/3440] Added a link to the "transaction" library in the "Finance" section. (#1782) * Added link to the "transaction". Added link to the embedded database for accounts transactions. * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c67770b1e3f..3857b279212 100644 --- a/README.md +++ b/README.md @@ -502,6 +502,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). +* [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. ## Forms From a3b3e81ab7625b7464b7487860b3fa38d1ac16ff Mon Sep 17 00:00:00 2001 From: Edwin Date: Thu, 1 Feb 2018 22:14:48 +0800 Subject: [PATCH 1126/3440] add the WUID package (#1781) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3857b279212..7c9af842c29 100644 --- a/README.md +++ b/README.md @@ -815,6 +815,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. * [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. From cbaaba68c0a3aa554e4e8da7d4f2c6201467e244 Mon Sep 17 00:00:00 2001 From: Josh Date: Sun, 4 Feb 2018 16:27:11 -0500 Subject: [PATCH 1127/3440] updating goes link to maintained repo (#1789) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c9af842c29..bb617d2bea5 100644 --- a/README.md +++ b/README.md @@ -394,7 +394,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go. * [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go. * [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. - * [goes](https://github.com/belogik/goes) - Library to interact with Elasticsearch. + * [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch. * [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine * [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. From 90c3bf1c88533e2e603ee09a8a445083d4777c3a Mon Sep 17 00:00:00 2001 From: "Alan D. Cabrera" Date: Sun, 4 Feb 2018 13:27:34 -0800 Subject: [PATCH 1128/3440] Add geographic tools and servers (#1787) * Add geographic tools and servers * Remove duplicate entries --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bb617d2bea5..812a349f61f 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Forms](#forms) - [Game Development](#game-development) - [Generation and Generics](#generation-and-generics) + - [Geographic](#geographic) - [Go Compilers](#go-compilers) - [Goroutines](#goroutines) - [GUI](#gui) @@ -289,7 +290,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. -* [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. * [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 Go. * [gorocksdb](https://github.com/kapitan-k/gorocksdb) - Gorocksdb is a wrapper for [RocksDB](https://rocksdb.org) written in Go. @@ -306,7 +306,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. -* [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. *Database schema migration.* @@ -553,6 +552,15 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection. +## Geographic + +*Geographic tools and servers* + +* [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. +* [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. +* [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. +* [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. + ## Go Compilers *Tools for compiling Go to other languages.* From 1adc446465254c024d15575089b2b33504eba855 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Mon, 5 Feb 2018 06:38:55 +0900 Subject: [PATCH 1129/3440] Fix a word in the description of Ebiten (#1784) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 812a349f61f..0d0696d11aa 100644 --- a/README.md +++ b/README.md @@ -522,7 +522,7 @@ 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. +* [Ebiten](https://github.com/hajimehoshi/ebiten) - dead 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. From 5b9d1df924801fb3e2cfa17c9c45c2ec12586aae Mon Sep 17 00:00:00 2001 From: Lion Date: Tue, 6 Feb 2018 03:13:13 +0300 Subject: [PATCH 1130/3440] add minimp3 (#1785) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0d0696d11aa..24b364ca8df 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [malgo](https://github.com/gen2brain/malgo) - Mini audio library. +* [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library. * [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. From e1ebe56ea36d8b82f514d5986457c99604d73587 Mon Sep 17 00:00:00 2001 From: Alejandro Pedraza Date: Wed, 7 Feb 2018 05:52:01 -0500 Subject: [PATCH 1131/3440] Added go-finance (#1777) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 24b364ca8df..15fb91a5eb4 100644 --- a/README.md +++ b/README.md @@ -500,6 +500,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-finance] (https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. * [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). * [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. From 226980fef45b7bd1c672f4803d52181be6cd75df Mon Sep 17 00:00:00 2001 From: Matthew Jaffee Date: Wed, 7 Feb 2018 20:05:19 -0600 Subject: [PATCH 1132/3440] add commandeer to CLI libraries (#1790) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 15fb91a5eb4..b98e407d83a 100644 --- a/README.md +++ b/README.md @@ -151,6 +151,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line applications. * [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. +* [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [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. From 344b1160e7ac363f8764fa8f22aaf0b31aa6861f Mon Sep 17 00:00:00 2001 From: Marcus Willock Date: Mon, 12 Feb 2018 07:32:37 -0500 Subject: [PATCH 1133/3440] Removed go-pkg-rss because the repo does not exist (#1799) * Removed go-pkg-rss because the repo does not exist * Removed https://github.com/jteeuwen/go-pkg-xmlx as requested --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index b98e407d83a..d0c8deef79a 100644 --- a/README.md +++ b/README.md @@ -1163,7 +1163,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). * [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. @@ -1520,7 +1519,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries and tools for manipulating XML.* -* [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. * [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. * [xmlwriter](https://github.com/shabbyrobe/xmlwriter) - Procedural XML generation API based on libxml2's xmlwriter module. * [xpath](https://github.com/antchfx/xpath) - XPath package for Go. From 5a53e2d096a0ab9ebf429e9dbbb300cc1af1a304 Mon Sep 17 00:00:00 2001 From: Adam Woodbeck Date: Mon, 12 Feb 2018 07:32:52 -0500 Subject: [PATCH 1134/3440] Add strftime (#1801) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d0c8deef79a..991738b12ae 100644 --- a/README.md +++ b/README.md @@ -413,6 +413,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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`. +* [strftime](https://github.com/awoodbeck/strftime) - C99-compatible strftime formatter. * [timespan](https://github.com/SaidinWoT/timespan) - For interacting with intervals of time, defined as a start time and a duration. * [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. * [tuesday](https://github.com/osteele/tuesday) - Ruby-compatible Strftime function. From ff01d352395184324bc3d09567e4578df22943da Mon Sep 17 00:00:00 2001 From: Nik Ogura Date: Mon, 12 Feb 2018 04:33:01 -0800 Subject: [PATCH 1135/3440] Submitting Gomason for consideration (#1800) * added gomason link * fixed link order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 991738b12ae..9cfe4222ce6 100644 --- a/README.md +++ b/README.md @@ -226,6 +226,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for help with continuous integration.* * [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. +* [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. * [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. From c33bab866ea64c5311d74fcea39aba0c06ad2005 Mon Sep 17 00:00:00 2001 From: Jack Lindamood Date: Mon, 12 Feb 2018 04:33:12 -0800 Subject: [PATCH 1136/3440] Update README.md (#1797) Add link to https://github.com/cep21/circuit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9cfe4222ce6..0e6f66098c8 100644 --- a/README.md +++ b/README.md @@ -1276,6 +1276,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. * [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. * [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. +* [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. * [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. From c91c0786be6fbd7ad4958956761fe25442fb6155 Mon Sep 17 00:00:00 2001 From: Southclaws Date: Mon, 12 Feb 2018 20:02:09 +0000 Subject: [PATCH 1137/3440] Fix go-finance bad markdown syntax (#1803) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e6f66098c8..1f3539c45dc 100644 --- a/README.md +++ b/README.md @@ -503,7 +503,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-finance] (https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. +* [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. * [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). * [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. From c8cf67b0ceef5807015fd11e89b2db0104ff257d Mon Sep 17 00:00:00 2001 From: Marcus Willock Date: Mon, 12 Feb 2018 15:03:53 -0500 Subject: [PATCH 1138/3440] Added term-quiz to the README (#1793) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1f3539c45dc..8aece68367d 100644 --- a/README.md +++ b/README.md @@ -1687,6 +1687,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. +* [term-quiz](https://github.com/crazcalm/term-quiz) - Quizzes for your terminal. * [toto](https://github.com/blogcin/ToTo) - Simple proxy server written in Go language, can be used together with browser. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. From c8aee2efad437c5740e61fb870559a6424e6bba0 Mon Sep 17 00:00:00 2001 From: Patrik Ehrencrona Date: Wed, 14 Feb 2018 11:06:39 +0100 Subject: [PATCH 1139/3440] Add go-deep (#1804) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8aece68367d..dac25bd165b 100644 --- a/README.md +++ b/README.md @@ -718,6 +718,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fonet](https://github.com/Fontinalis/fonet) - A Deep Neural Network library written in Go. * [gago](https://github.com/MaxHalford/gago) - Multi-population, flexible, parallel genetic algorithm. * [go-cluster](https://github.com/e-XpertSolutions/go-cluster) - Go implementation of the k-modes and k-prototypes clustering algorithms. +* [go-deep](https://github.com/patrikeh/go-deep) - A feature-rich neural network library in Go. * [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-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. From dfefe207c906f398026ad8777238910969ee4389 Mon Sep 17 00:00:00 2001 From: Fatih Cetinkaya Date: Wed, 14 Feb 2018 05:07:04 -0500 Subject: [PATCH 1140/3440] Add gocmd (#1802) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dac25bd165b..ed476eabf76 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting 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. +* [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. * [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. From bd5d937099e65af3adb791ba016ff00cf6395267 Mon Sep 17 00:00:00 2001 From: Craig Swank Date: Wed, 14 Feb 2018 06:53:23 -0700 Subject: [PATCH 1141/3440] Added kcli to devops tools (#1788) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed476eabf76..d63c5c8621d 100644 --- a/README.md +++ b/README.md @@ -1628,6 +1628,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. * [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. +* [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. * [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. * [Moby](https://github.com/moby/moby) - Collaborative project for the container ecosystem to assemble container-based systems. From 68a788e1d3f161781c737338824ac237b790ce0f Mon Sep 17 00:00:00 2001 From: Francesco Sacchi Date: Fri, 16 Feb 2018 09:09:06 +0100 Subject: [PATCH 1142/3440] Add GoLab conference. (#1809) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d63c5c8621d..4b79199752c 100644 --- a/README.md +++ b/README.md @@ -1724,6 +1724,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA * [dotGo](http://www.dotgo.eu) - Paris, France * [GoCon](http://gocon.connpass.com/) - Tokyo, Japan +* [GoLab](http://golab.io/) - Florence, Italy * [GolangUK](http://golanguk.com/) - London, UK * [GopherChina](http://gopherchina.org) - Shanghai, China * [GopherCon](http://www.gophercon.com/) - Denver, USA From 900a815960d90aae1757a9bacf0742c8ba050347 Mon Sep 17 00:00:00 2001 From: Brendan LE GLAUNEC Date: Fri, 16 Feb 2018 18:13:21 +0100 Subject: [PATCH 1143/3440] Add Cameradar library (#1792) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4b79199752c..0587f442cbe 100644 --- a/README.md +++ b/README.md @@ -1028,6 +1028,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. +* [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. * [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)". * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. * [lego](https://github.com/xenolf/lego) - Pure Go ACME client library and CLI tool (for use with Let's Encrypt). From 3ba25e0896513e6f4d45090f64e6a3e376dcc2f1 Mon Sep 17 00:00:00 2001 From: Brian Scott <191290+bscott@users.noreply.github.com> Date: Sun, 18 Feb 2018 22:29:45 -0800 Subject: [PATCH 1144/3440] Added HTTPS scheme to Golangflow URL (#1812) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0587f442cbe..efda7abf62c 100644 --- a/README.md +++ b/README.md @@ -1819,7 +1819,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go Report Card](https://goreportcard.com) - A report card for your Go package. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. -* [Golang Flow](http://golangflow.io) - Post Updates, News, Packages and more. +* [Golang Flow](https://golangflow.io) - Post Updates, News, Packages and more. * [Golang News](https://golangnews.com) - Links and news about Go programming. * [golang-graphics](https://github.com/mholt/golang-graphics) - Collection of Go images, graphics, and art. * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. From e85a54e202be5edec791928f458fad27320d71ce Mon Sep 17 00:00:00 2001 From: brannx Date: Mon, 19 Feb 2018 14:13:33 +0300 Subject: [PATCH 1145/3440] Update README.md (#1815) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index efda7abf62c..156cf4b4597 100644 --- a/README.md +++ b/README.md @@ -1843,3 +1843,4 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. +* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's From 3eeaa3fc686799b36c4804643e2c59e3bd7d1ab4 Mon Sep 17 00:00:00 2001 From: Frederic Delbos Date: Mon, 19 Feb 2018 15:46:00 +0100 Subject: [PATCH 1146/3440] add pdfgen (#1811) * add pdfgen * wierd space --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 156cf4b4597..9cda6803901 100644 --- a/README.md +++ b/README.md @@ -820,6 +820,7 @@ 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. * [lk](https://github.com/hyperboloide/lk) - A simple licensing library for golang. * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. +* [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. From d1fb1e66ca648395eb13a1280e5a839bb8b8e0d1 Mon Sep 17 00:00:00 2001 From: Masashi SHIBATA Date: Tue, 20 Feb 2018 01:51:13 +0900 Subject: [PATCH 1147/3440] submit-goprompt (#1807) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9cda6803901..e0c66ea6b9f 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. * [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. * [go-isatty](https://github.com/mattn/go-isatty) - isatty for golang. +* [go-prompt](https://github.com/c-bata/go-prompt) - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit). * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. From 48e711f2366fb20e8806fc421df0cf23ed82794d Mon Sep 17 00:00:00 2001 From: Oleg Lobanov Date: Fri, 23 Feb 2018 15:16:52 +0300 Subject: [PATCH 1148/3440] Add https://github.com/o1egl/paseto library (#1818) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e0c66ea6b9f..db0ce534b53 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. +* [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO) * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). From 6d35fba578fab0f7f9193d151097c2393f981cd8 Mon Sep 17 00:00:00 2001 From: mingrammer Date: Fri, 23 Feb 2018 21:19:31 +0900 Subject: [PATCH 1149/3440] Add commonregex library (#1796) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index db0ce534b53..1bf7b9836d8 100644 --- a/README.md +++ b/README.md @@ -1163,6 +1163,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go. * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer. * [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers + * [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go * [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. * [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/). From 1f32db86437b072a4a01a7df6ae862eaf4c43f17 Mon Sep 17 00:00:00 2001 From: golangci <35628013+golangci@users.noreply.github.com> Date: Fri, 23 Feb 2018 15:23:39 +0300 Subject: [PATCH 1150/3440] Add GolangCI (#1817) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1bf7b9836d8..7b1ed5dfaf5 100644 --- a/README.md +++ b/README.md @@ -1551,6 +1551,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. +* [GolangCI](https://golangci.com/) - GolangCI is an automated Golang code review service for GitHub pull requests. Service is open source and it's free for open source projects. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. * [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. From 3607b661f60ebc4a9d3dfc52ad8ca05c5b8d0940 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E4=BD=B3=E5=86=9B?= Date: Fri, 23 Feb 2018 20:24:29 +0800 Subject: [PATCH 1151/3440] add https://github.com/xujiajun/gorouter library (#1820) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7b1ed5dfaf5..1634ada4bf5 100644 --- a/README.md +++ b/README.md @@ -1518,6 +1518,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [xujiajun/gorouter](https://github.com/xujiajun/gorouter) - A simple and fast HTTP router for Go. * [zeus](https://github.com/daryl/zeus) - Very simple and fast HTTP router for Go. ## Windows From 983d32a453a5ccadc892b25a3827732cc59501e9 Mon Sep 17 00:00:00 2001 From: Slizov Vadim Date: Fri, 23 Feb 2018 16:07:56 +0200 Subject: [PATCH 1152/3440] Add php-parser (#1814) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1634ada4bf5..b22b4c10a9e 100644 --- a/README.md +++ b/README.md @@ -1560,6 +1560,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. * [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#. * [tarp](https://github.com/verygoodsoftwarenotvirus/tarp) - tarp finds functions and methods without direct unit tests in Go source code. * [unconvert](https://github.com/mdempsky/unconvert) - Remove unnecessary type conversions from Go source. From 502d6887b7e5d049f38469ac5c005e4d5550928c Mon Sep 17 00:00:00 2001 From: David Belicza Date: Mon, 26 Feb 2018 20:35:50 +0100 Subject: [PATCH 1153/3440] Update README.md (#1821) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b22b4c10a9e..33e92a6a720 100644 --- a/README.md +++ b/README.md @@ -1021,6 +1021,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sparse](https://github.com/james-bowman/sparse) - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. * [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. +* [TextRank](https://github.com/DavidBelicza/TextRank) - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. * [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 From ce2f82acd5a76a032acbfac3484c1f93cbcd11c9 Mon Sep 17 00:00:00 2001 From: Renato Suero Date: Mon, 26 Feb 2018 19:38:49 +0000 Subject: [PATCH 1154/3440] Change repo (#1823) * Added Kallax on ORM * Changed a repo because it is a fork * Removed kallax from orm section * Change repo fork by source Update README.md (#1815) add pdfgen (#1811) * add pdfgen * wierd space submit-goprompt (#1807) Add https://github.com/o1egl/paseto library (#1818) Add commonregex library (#1796) Add GolangCI (#1817) add https://github.com/xujiajun/gorouter library (#1820) Add php-parser (#1814) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 33e92a6a720..fbac847ad02 100644 --- a/README.md +++ b/README.md @@ -1149,8 +1149,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * 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. + * [chromedp](https://github.com/knq/chromedp) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. + * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. * [selenoid](https://github.com/aandryashin/selenoid) - alternative Selenium hub server that launches browsers within containers. ## Text Processing From 6c9ab1c55352d80329d181fe96b3d13402956fb9 Mon Sep 17 00:00:00 2001 From: Rajeev N Bharshetty Date: Tue, 27 Feb 2018 01:09:34 +0530 Subject: [PATCH 1155/3440] Adding Heimdall HTTP clien to the list (#1824) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fbac847ad02..e0771675304 100644 --- a/README.md +++ b/README.md @@ -438,6 +438,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. +* [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. * [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. From 7d972141752aa08595d91b57bac1aa5e85930e05 Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Tue, 27 Feb 2018 00:52:01 +0200 Subject: [PATCH 1156/3440] Add go-server-timing (#1827) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e0771675304..cf731d12975 100644 --- a/README.md +++ b/README.md @@ -1477,6 +1477,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API. * [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. +* [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. * [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. * [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. * [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. From 3b13cad700c2413e11808c444f268d8f3d9959b8 Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Tue, 27 Feb 2018 06:07:58 +0200 Subject: [PATCH 1157/3440] Add client-timing (#1828) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cf731d12975..930881a87e6 100644 --- a/README.md +++ b/README.md @@ -1475,6 +1475,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis #### Actual middlewares +* [client-timing](https://github.com/posener/client-timing) - An HTTP client for Server-Timing header. * [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API. * [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. * [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. From 1a3174eda5942ad2ba3eb8a3d959cdcf3928c7b2 Mon Sep 17 00:00:00 2001 From: Saddam H Date: Mon, 5 Mar 2018 23:43:04 +0600 Subject: [PATCH 1158/3440] Add package retry (#1825) Add package retry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 930881a87e6..b11c608c46c 100644 --- a/README.md +++ b/README.md @@ -1381,6 +1381,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [retry](https://github.com/kamilsk/retry) - Functional mechanism based on context to perform actions repetitively until successful. +* [retry](https://github.com/thedevsaddam/retry) - Simple and easy retry mechanism package for Go. * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. From bf91c695dde8d19e2d571f9be9529f68306f555b Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 5 Mar 2018 09:43:26 -0800 Subject: [PATCH 1159/3440] Adding Vasto, a distributed key value store. (#1826) * add Gleam * Update README.md * Update README.md * adding Vasto --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b11c608c46c..525e626ba53 100644 --- a/README.md +++ b/README.md @@ -312,6 +312,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. +* [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. *Database schema migration.* From 9bf717ce27da839d288c3ac587d0da106a875dc2 Mon Sep 17 00:00:00 2001 From: Elena Grahovac Date: Fri, 9 Mar 2018 16:53:18 +0100 Subject: [PATCH 1160/3440] Added Gophercon Russia to the conferences (#1838) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 525e626ba53..cf45f84055d 100644 --- a/README.md +++ b/README.md @@ -1746,6 +1746,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GopherCon Dubai](http://www.gophercon.ae/) - Dubai, UAE * [GopherCon Europe](https://gophercon.is/) - Reykjavik, Iceland * [GopherCon India](http://www.gophercon.in/) - Pune, India +* [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia * [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore * [GothamGo](http://gothamgo.com/) - New York City, USA From bd0ebf729379799a3bed07cb7b55a54214c209c7 Mon Sep 17 00:00:00 2001 From: Alberto Bertogli Date: Mon, 12 Mar 2018 11:40:03 +0000 Subject: [PATCH 1161/3440] Add chasquid, an SMTP (email) server (#1831) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cf45f84055d..e39471a1b62 100644 --- a/README.md +++ b/README.md @@ -458,8 +458,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Email -*Libraries that implement email creation and sending.* +*Libraries and tools that implement email creation and sending.* +* [chasquid](https://blitiri.com.ar/p/chasquid) - SMTP server written in Go. * [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. From de6a77d462c0d0d8e278d78a903135fe394a02cc Mon Sep 17 00:00:00 2001 From: Ashley Jeffs Date: Mon, 12 Mar 2018 17:49:37 +0000 Subject: [PATCH 1162/3440] Add github.com/Jeffail/benthos (#1832) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e39471a1b62..40e710b4a4a 100644 --- a/README.md +++ b/README.md @@ -752,6 +752,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement messaging systems.* +* [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. * [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. From 66e4606b3906030168642e84c5697eafe9d4a33f Mon Sep 17 00:00:00 2001 From: Francesco Date: Wed, 14 Mar 2018 19:21:58 +0100 Subject: [PATCH 1163/3440] Add go-up library (#1840) * Add go-up library * Fix entries order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 40e710b4a4a..6988c05db76 100644 --- a/README.md +++ b/README.md @@ -211,6 +211,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. * [envh](https://github.com/antham/envh) - Helpers to manage environment variables. * [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. +* [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. * [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from 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. From 3f43bcde6f2360523fbc951b4a7df9b20a13d2e5 Mon Sep 17 00:00:00 2001 From: Paul Mach Date: Thu, 15 Mar 2018 09:50:01 -0700 Subject: [PATCH 1164/3440] Add paulmach/(orb|osm) geometric libraries (#1829) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6988c05db76..fbbb31d56fe 100644 --- a/README.md +++ b/README.md @@ -569,6 +569,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Geographic tools and servers* * [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. +* [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. * [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. * [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. * [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. @@ -1021,6 +1022,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [orb](https://github.com/paulmach/orb) - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support. * [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. * [sparse](https://github.com/james-bowman/sparse) - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. From 5b88d1051b708d86a3cbe4a150b9794b179cd0af Mon Sep 17 00:00:00 2001 From: iqhater Date: Thu, 15 Mar 2018 19:50:58 +0300 Subject: [PATCH 1165/3440] added EasyMIDI library to awesome-go list (#1834) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fbbb31d56fe..ae31fa0917d 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* +* [EasyMIDI](https://github.com/algoGuy/EasyMIDI) - EasyMidi is a simple and reliable library for working with standard midi file (SMF). * [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. From b42db300b02ae6f9a111a238100f7b41717fe83c Mon Sep 17 00:00:00 2001 From: Rylan Date: Thu, 15 Mar 2018 09:51:28 -0700 Subject: [PATCH 1166/3440] Add package getlang (#1835) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ae31fa0917d..42f0da35250 100644 --- a/README.md +++ b/README.md @@ -849,6 +849,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with human languages.* * [dpar](https://github.com/danieldk/dpar/) - Transition-based statistical dependency parser. +* [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. * [go-eco](https://github.com/ThePaw/go-eco) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. * [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. * [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. From b6757c79725b5af8008166418403b92c999723ed Mon Sep 17 00:00:00 2001 From: zhengchun Date: Fri, 16 Mar 2018 00:54:05 +0800 Subject: [PATCH 1167/3440] Add syndfeed package (#1836) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 42f0da35250..759a5ce9a79 100644 --- a/README.md +++ b/README.md @@ -1199,6 +1199,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. * [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. From 1d4b8e0a2dbd8e54b127013b47b1b34f393d44e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel=20Ortu=C3=B1o?= Date: Sat, 17 Mar 2018 11:01:54 +0100 Subject: [PATCH 1168/3440] Update README.md (#1849) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 759a5ce9a79..1b40b6f87a4 100644 --- a/README.md +++ b/README.md @@ -1078,6 +1078,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. +* [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. * [yakvs](https://github.com/sci4me/yakvs) - Small, networked, in-memory key-value store. From b547026c67472600b25bb334b3d504b5f81c0915 Mon Sep 17 00:00:00 2001 From: sinni800 Date: Tue, 20 Mar 2018 12:14:23 +0100 Subject: [PATCH 1169/3440] remove inconshreveable/ngrok - no longer developed (#1843) v2.0 is advertised in the readme but is not open source and a commercial service --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 1b40b6f87a4..5504df28027 100644 --- a/README.md +++ b/README.md @@ -1375,7 +1375,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. * [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). * [panicparse](https://github.com/maruel/panicparse) - Groups similar goroutines and colorizes stack dump. From 5b763e87e9dfa334a6bc989fd5e904ce189fe3db Mon Sep 17 00:00:00 2001 From: erdnaxeli Date: Sat, 24 Mar 2018 09:11:21 +0100 Subject: [PATCH 1170/3440] Remove Goat: deprecated (#1854) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 5504df28027..6d6a6bbf990 100644 --- a/README.md +++ b/README.md @@ -1460,7 +1460,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-relax](https://github.com/codehack/go-relax) - Framework of pluggable components to build RESTful API's. * [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. * [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. From 46c02410d6b888ece8d80960831f8d786c6c5862 Mon Sep 17 00:00:00 2001 From: Nikolay Pavlovich Date: Sat, 24 Mar 2018 14:57:48 +0300 Subject: [PATCH 1171/3440] added clickhouse-bulk (#1855) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6d6a6bbf990..f5710b50ca2 100644 --- a/README.md +++ b/README.md @@ -331,6 +331,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Database tools.* * [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. +* [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small insterts and sends big requests to ClickHouse servers. * [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. * [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. From 1b90bf5c10c856867104b7d34b736d7ce12866dd Mon Sep 17 00:00:00 2001 From: MinJae Kwon Date: Sat, 24 Mar 2018 21:09:03 +0900 Subject: [PATCH 1172/3440] Add cfmt library (#1850) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f5710b50ca2..2818d85d821 100644 --- a/README.md +++ b/README.md @@ -180,6 +180,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. +* [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. * [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. From 4583355e6d95de72347c46c1bc8317f5687db0ea Mon Sep 17 00:00:00 2001 From: Raja Bhatia Date: Sat, 24 Mar 2018 08:16:47 -0400 Subject: [PATCH 1173/3440] Added argon2pw to Security (#1844) * Added argon2pw to Security * Ensure security is in alphabetical order --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2818d85d821..356adb58fb3 100644 --- a/README.md +++ b/README.md @@ -1040,8 +1040,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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. -* [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto - provision Let's Encrypt certificates and start a TLS server. +* [argon2pw] (https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. +* [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. * [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. * [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)". From 5435ed054f2944e2b39a8215e72d791659ac6db5 Mon Sep 17 00:00:00 2001 From: Kris Brandow Date: Sat, 24 Mar 2018 08:40:01 -0400 Subject: [PATCH 1174/3440] Add official MongoDB Go driver (#1846) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 356adb58fb3..e2237b6421d 100644 --- a/README.md +++ b/README.md @@ -390,6 +390,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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://github.com/globalsign/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 + * [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. * [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. From 43c5f0d153e030a4c918c6f1439a42859ee1244a Mon Sep 17 00:00:00 2001 From: Cemre Mengu Date: Sat, 24 Mar 2018 20:56:37 +0300 Subject: [PATCH 1175/3440] removed go-bqstreamer, no longer maintained (#1859) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e2237b6421d..8f9d1b3bc98 100644 --- a/README.md +++ b/README.md @@ -366,7 +366,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [bgc](https://github.com/viant/bgc) - Datastore Connectivity for BigQuery 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 uses 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. * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that uses database/sql. * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. From 957758ace7a0268d3f8775f5ac5d8f2dee0657d9 Mon Sep 17 00:00:00 2001 From: rohduggal <35959788+rohduggal@users.noreply.github.com> Date: Sat, 24 Mar 2018 23:30:21 +0530 Subject: [PATCH 1176/3440] Updated Naming (#1858) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f9d1b3bc98..ee77e0ccc00 100644 --- a/README.md +++ b/README.md @@ -1862,8 +1862,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. -* [Golang tutorial](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. +* [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's From 19fae62f958c69c3ca7cc28935e88d6b6e22e292 Mon Sep 17 00:00:00 2001 From: D Date: Mon, 26 Mar 2018 16:26:50 +0800 Subject: [PATCH 1177/3440] :sparkles: Add Pipe (#1851) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ee77e0ccc00..7a87333336f 100644 --- a/README.md +++ b/README.md @@ -1703,6 +1703,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [orange-cat](https://github.com/noraesae/orange-cat) - Markdown previewer written in Go. * [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. +* [Pipe](https://github.com/b3log/pipe) - A small and beautiful blogging platform. * [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [rkt](https://github.com/coreos/rkt) - App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. From 051955ce996df019dd3be4e71ae1a46d8f43e5d3 Mon Sep 17 00:00:00 2001 From: Dan P Date: Tue, 27 Mar 2018 14:18:28 +0100 Subject: [PATCH 1178/3440] added golang dorset meetup (#1861) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7a87333336f..ff428b8925e 100644 --- a/README.md +++ b/README.md @@ -1799,6 +1799,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Belo Horizonte - Brazil](https://www.meetup.com/go-belo-horizonte/) * [Golang Boston](https://www.meetup.com/bostongo/) * [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) +* [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) * [Golang Israel](https://www.meetup.com/Go-Israel/) * [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) * [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) From 5f83be8ee8fdae47562953d8a3e3032b7a3ea299 Mon Sep 17 00:00:00 2001 From: Burak Sezer Date: Sat, 31 Mar 2018 16:55:21 +0300 Subject: [PATCH 1179/3440] Add github.com/buraksezer/consistent package (#1864) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ff428b8925e..b6632532551 100644 --- a/README.md +++ b/README.md @@ -432,6 +432,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *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. +* [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. * [digota](https://github.com/digota/digota) - grpc ecommerce microservice. * [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. * [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. From 830bfccfb2ff4c1b89ce28dfc4cead55bd91b702 Mon Sep 17 00:00:00 2001 From: Andrew Young Date: Sat, 31 Mar 2018 22:56:16 +0900 Subject: [PATCH 1180/3440] Add the iot project for Google IoT Core. (#1862) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b6632532551..10e95fc1e79 100644 --- a/README.md +++ b/README.md @@ -677,6 +677,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [flogo](https://github.com/tibcosoftware/flogo) - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. * [gatt](https://github.com/paypal/gatt) - Gatt is a Go package for building Bluetooth Low Energy peripherals. * [gobot](https://github.com/hybridgroup/gobot/) - Gobot is a framework for robotics, physical computing, and the Internet of Things. +* [iot](https;//github.com/vaelen/iot/) - IoT is a simple framework for implementing a Google IoT Core device. * [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. * [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. * [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. From d8cebc02bc059f75a65d676ee9cad655230d89a3 Mon Sep 17 00:00:00 2001 From: Danlock <17@dlock.tech> Date: Sat, 31 Mar 2018 13:56:57 +0000 Subject: [PATCH 1181/3440] Added github.com/fatih/structs to serialization (#1865) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 10e95fc1e79..2b47ea3bd5b 100644 --- a/README.md +++ b/README.md @@ -1073,6 +1073,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. +* [structs](https://github.com/fatih/structs) - Library with support for converting structs to maps, struct keys/values to slices, and more. ## Server Applications From 18db805b4aa34ff52febb9e231bb22669abf5a0a Mon Sep 17 00:00:00 2001 From: mcz Date: Sat, 31 Mar 2018 15:59:03 +0200 Subject: [PATCH 1182/3440] added https://github.com/gobuffalo/packr (#1848) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2b47ea3bd5b..43a3d205dbb 100644 --- a/README.md +++ b/README.md @@ -999,6 +999,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [packr](https://github.com/gobuffalo/packr) - The simple and easy way to embed static files into Go binaries. * [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. * [templify](https://github.com/wlbr/templify) - Embed external template files into Go code to create single file binaries. From 523a2ebd6676865238597716f394a152a1f4ec74 Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Mon, 2 Apr 2018 00:45:00 +0900 Subject: [PATCH 1183/3440] README.md: Add goimagehash (#1866) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 43a3d205dbb..b20a418d87a 100644 --- a/README.md +++ b/README.md @@ -652,6 +652,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. * [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. * [gocv](https://github.com/hybridgroup/gocv) - Go package for computer vision using OpenCV 3.3+. +* [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. * [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. * [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. From 976ba51dbcc277e5147e571ccc67e292b3e48961 Mon Sep 17 00:00:00 2001 From: Andrew Young Date: Mon, 2 Apr 2018 14:44:41 +0900 Subject: [PATCH 1184/3440] Fix typo in iot link (#1867) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b20a418d87a..6d62fad5033 100644 --- a/README.md +++ b/README.md @@ -678,7 +678,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [flogo](https://github.com/tibcosoftware/flogo) - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. * [gatt](https://github.com/paypal/gatt) - Gatt is a Go package for building Bluetooth Low Energy peripherals. * [gobot](https://github.com/hybridgroup/gobot/) - Gobot is a framework for robotics, physical computing, and the Internet of Things. -* [iot](https;//github.com/vaelen/iot/) - IoT is a simple framework for implementing a Google IoT Core device. +* [iot](https://github.com/vaelen/iot/) - IoT is a simple framework for implementing a Google IoT Core device. * [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. * [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. * [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. From 4698a0cbce24998ceaddab8b58ae4178c49dae88 Mon Sep 17 00:00:00 2001 From: omercelik Date: Thu, 5 Apr 2018 09:05:11 +0100 Subject: [PATCH 1185/3440] Update README.md (#1870) Added Gopher amigurumi toy pattern --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6d62fad5033..f5619c6ea1a 100644 --- a/README.md +++ b/README.md @@ -1789,6 +1789,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gophers](https://github.com/ashleymcnamara/gophers) - Gopher artworks by Ashley McNamara * [gophers](https://github.com/egonelbre/gophers) - Free gophers * [gophers](https://github.com/rogeralsing/gophers) - random gopher graphics +* [gophers](https://github.com/sillecelik/go-gopher) - Gopher amigurumi toy pattern ## Meetups From da2ec6251ed7d2d90e0f1db3eba9a6f0c4911707 Mon Sep 17 00:00:00 2001 From: Arthur Date: Sun, 8 Apr 2018 03:43:52 +0200 Subject: [PATCH 1186/3440] fix malformed link (#1875) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f5619c6ea1a..28fccb581a2 100644 --- a/README.md +++ b/README.md @@ -1044,7 +1044,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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. -* [argon2pw] (https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. +* [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. * [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. * [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. From 261a53cb84823fb8ecdcc099a5ca0041125ead9c Mon Sep 17 00:00:00 2001 From: Alex Gorelov Date: Sun, 8 Apr 2018 16:44:22 +0300 Subject: [PATCH 1187/3440] Update README.md (#1877) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 28fccb581a2..021293db472 100644 --- a/README.md +++ b/README.md @@ -393,7 +393,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. - * [redigo](https://github.com/garyburd/redigo) - Redigo is a Go client for the Redis database. + * [redigo](https://github.com/gomodule/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/hoisie/redis) - Simple, powerful Redis client for Go. * [redis](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. From 0234cbf5de9480fac5586006936488ae4653739b Mon Sep 17 00:00:00 2001 From: jbwyatt4 Date: Sun, 8 Apr 2018 13:38:42 -0700 Subject: [PATCH 1188/3440] Removed go-gml, goqt (#1873) Removed go-gml, goqt; no activity since 2015, 2016, respectively. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 021293db472..60c2e10c702 100644 --- a/README.md +++ b/README.md @@ -613,9 +613,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-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). From 86ffef1f32b193b4486eddf70972716d58070b5b Mon Sep 17 00:00:00 2001 From: Kamaleshwar Date: Mon, 9 Apr 2018 18:07:47 +0530 Subject: [PATCH 1189/3440] added webgo (#1872) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 60c2e10c702..ca55d7fb91f 100644 --- a/README.md +++ b/README.md @@ -1482,6 +1482,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc). * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. From 1f655af07775c7cc27ad4ab67e749ecaffe10ba5 Mon Sep 17 00:00:00 2001 From: "Pascal S. de Kloe" Date: Mon, 9 Apr 2018 14:38:24 +0200 Subject: [PATCH 1190/3440] Add another JWT library. (#1874) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ca55d7fb91f..9406565252f 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. * [jwt](https://github.com/robbert229/jwt) - Clean and easy to use implementation of JSON Web Tokens (JWT). +* [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. * [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. From 3935d3737110173f05c6f7df2e96521ea8b99dc5 Mon Sep 17 00:00:00 2001 From: Go101 <22589241+go101@users.noreply.github.com> Date: Mon, 9 Apr 2018 10:32:08 -0400 Subject: [PATCH 1191/3440] add a new e-book: go 101 (#1879) * Update README.md * add Go 101 description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9406565252f..92743bdff3b 100644 --- a/README.md +++ b/README.md @@ -1771,6 +1771,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [An Introduction to Programming in Go](http://www.golang-book.com/) * [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 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details * [Go Bootcamp](http://golangbootcamp.com) * [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. * [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) From 22c2275e681253b6b6194c2693329d6a617569ad Mon Sep 17 00:00:00 2001 From: Zhuojie Zhou Date: Wed, 18 Apr 2018 06:54:06 -0700 Subject: [PATCH 1192/3440] Add Flagr (#1883) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92743bdff3b..7669ad6620c 100644 --- a/README.md +++ b/README.md @@ -1084,6 +1084,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. +* [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. From 92fead9cbac6c536401b666ea2f4f6f9439616cf Mon Sep 17 00:00:00 2001 From: Cemre Mengu Date: Wed, 18 Apr 2018 16:54:39 +0300 Subject: [PATCH 1193/3440] Added goracle (#1841) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added goracle Oracle driver for Go, using the ODPI-C driver * Updated alphabetical order ¯\_(ツ)_/¯ . --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7669ad6620c..8558bca5028 100644 --- a/README.md +++ b/README.md @@ -372,6 +372,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). + * [goracle](https://github.com/go-goracle/goracle) - Oracle driver for Go, using the ODPI-C driver * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. From 488065b2af009691340b9838e7a4a70d9f4dca79 Mon Sep 17 00:00:00 2001 From: JuanPablo Date: Wed, 18 Apr 2018 10:54:56 -0300 Subject: [PATCH 1194/3440] Added link to Learn go with TDD (#1880) * added learn go with TDD * added symbol - as separator --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8558bca5028..0490b9af349 100644 --- a/README.md +++ b/README.md @@ -1876,5 +1876,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. +* [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's From 42722b06c1c2328a67213acfc45f0dce7c0c76e9 Mon Sep 17 00:00:00 2001 From: Michael Persson Date: Wed, 18 Apr 2018 09:08:33 -0500 Subject: [PATCH 1195/3440] add encdec package (#1881) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0490b9af349..43bb525c8c3 100644 --- a/README.md +++ b/README.md @@ -1186,6 +1186,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. * [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/). + * [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. * [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-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). From 2fc97884dc23cbfd36476160abc1584db6a68f76 Mon Sep 17 00:00:00 2001 From: Steve Coffey Date: Wed, 18 Apr 2018 07:09:27 -0700 Subject: [PATCH 1196/3440] Add techan package (#1884) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 43bb525c8c3..87d4a668d7a 100644 --- a/README.md +++ b/README.md @@ -519,6 +519,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. * [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). +* [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies. * [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. From 1eb29f432dc48cb3578719f962ed10f4a6d8efff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E4=BD=B3=E5=86=9B?= Date: Wed, 18 Apr 2018 22:14:40 +0800 Subject: [PATCH 1197/3440] add https://github.com/xujiajun/godbal (#1888) add https://github.com/xujiajun/godbal --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87d4a668d7a..1936e176ab2 100644 --- a/README.md +++ b/README.md @@ -350,6 +350,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 them with ease. * [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder. +* [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. * [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. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. From 3d077ae7ce6d980374234afe0e7745ffc937e033 Mon Sep 17 00:00:00 2001 From: Muhammad Surya Date: Wed, 18 Apr 2018 21:15:48 +0700 Subject: [PATCH 1198/3440] add https://github.com/Fs02/grimoire (#1890) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1936e176ab2..30c6957505c 100644 --- a/README.md +++ b/README.md @@ -958,6 +958,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gomodel](https://github.com/cosiner/gomodel) - Lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. +* [grimoire](https://github.com/Fs02/grimoire) - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3). * [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. * [Marlow](https://github.com/dadleyy/marlow) - Generated ORM from project structs for compile time safety assurances. * [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. From 52643ecd1f25b80be1161750634567c58fe4ec00 Mon Sep 17 00:00:00 2001 From: Asdine El Hrychy Date: Fri, 20 Apr 2018 17:36:26 +0200 Subject: [PATCH 1199/3440] Add Confita (#1892) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 30c6957505c..f09bdf9d0f2 100644 --- a/README.md +++ b/README.md @@ -208,6 +208,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. * [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. +* [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. * [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. From f93a87e7527f9ad46d9f0c58b249a71be3d19ba3 Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 21 Apr 2018 12:16:08 -0400 Subject: [PATCH 1200/3440] added golang bulgaria (#1894) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f09bdf9d0f2..4fdee96e6ce 100644 --- a/README.md +++ b/README.md @@ -1812,6 +1812,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Bangalore](https://www.meetup.com/Golang-Bangalore/) * [Golang Belo Horizonte - Brazil](https://www.meetup.com/go-belo-horizonte/) * [Golang Boston](https://www.meetup.com/bostongo/) +* [Golang Bulgaria](https://www.meetup.com/Golang-Bulgaria/) * [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) * [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) * [Golang Israel](https://www.meetup.com/Go-Israel/) From bfafc2e05160bea774e30b9e9abe165c24f5146d Mon Sep 17 00:00:00 2001 From: Marco Talento Date: Sun, 22 Apr 2018 14:37:25 +0100 Subject: [PATCH 1201/3440] Add Go Health Package (#1895) * Add go-health to README.md * fix order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4fdee96e6ce..f8df372ac5a 100644 --- a/README.md +++ b/README.md @@ -1336,6 +1336,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. * [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. From 073534d84e6ae8b729c61678d87f034572e7607c Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Thu, 26 Apr 2018 06:20:31 +0800 Subject: [PATCH 1202/3440] remove 404 not found link. (#1898) --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f8df372ac5a..0b35766f1ac 100644 --- a/README.md +++ b/README.md @@ -766,7 +766,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. * [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. +* [drone-line](https://github.com/appleboy/drone-line) - Sending [Line](https://at.line.me/en) 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. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. @@ -1243,7 +1243,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [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. +* [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](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](http://geocoder.opencagedata.com/api.html), [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. * [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-chronos](https://github.com/axelspringer/go-chronos) - Go library for interacting with the [Chronos](https://mesos.github.io/chronos/) Job Scheduler @@ -1333,7 +1333,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. @@ -1624,7 +1623,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. * [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. * [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. -* [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](https://yeoman.io) generator to get new Go projects started. +* [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](http://yeoman.io) generator to get new Go projects started. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. @@ -1766,9 +1765,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GopherChina](http://gopherchina.org) - Shanghai, China * [GopherCon](http://www.gophercon.com/) - Denver, USA * [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR -* [GopherCon Dubai](http://www.gophercon.ae/) - Dubai, UAE * [GopherCon Europe](https://gophercon.is/) - Reykjavik, Iceland -* [GopherCon India](http://www.gophercon.in/) - Pune, India * [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia * [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore * [GothamGo](http://gothamgo.com/) - New York City, USA @@ -1851,7 +1848,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. * [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. -* [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - Collection of Go articles and tutorials. * [Go Blog](http://blog.golang.org) - The official Go blog. * [Go Challenge](http://golang-challenge.org/) - Learn Go by solving problems and getting feedback from Go experts. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. From 670cd208b2aaf0fac62d36232a456a2ce23d7a54 Mon Sep 17 00:00:00 2001 From: "O.J" Date: Thu, 26 Apr 2018 01:21:04 +0300 Subject: [PATCH 1203/3440] Update README.md (#1893) add github.com/OrlovEvgeny/go-mcache --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0b35766f1ac..40e39d3fae1 100644 --- a/README.md +++ b/README.md @@ -268,6 +268,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. From 57b764b881b897fada27ef6f7944bf4c953c26f0 Mon Sep 17 00:00:00 2001 From: "O.J" Date: Thu, 26 Apr 2018 04:49:37 +0300 Subject: [PATCH 1204/3440] fix build fail (#1899) as title --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 40e39d3fae1..bea14a35c82 100644 --- a/README.md +++ b/README.md @@ -266,9 +266,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-datastructures](https://github.com/Workiva/go-datastructures) - Collection of useful, performant, and thread-safe data structures. * [go-ef](https://github.com/amallia/go-ef) - A Go implementation of the Elias-Fano encoding. * [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. +* [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. * [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. -* [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. From e4582de79e68fc057d1675c02085e1be2c76c09f Mon Sep 17 00:00:00 2001 From: Francis Chuang Date: Fri, 27 Apr 2018 10:57:04 +1000 Subject: [PATCH 1205/3440] Update repository for avatica database driver (#1902) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bea14a35c82..a97f7362f70 100644 --- a/README.md +++ b/README.md @@ -366,7 +366,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for connecting and operating databases.* * Relational Databases - * [avatica](https://github.com/Boostport/avatica) - Apache Phoenix/Avatica SQL driver for database/sql. + * [avatica](https://github.com/apache/calcite-avatica-go) - Apache Avatica/Phoenix 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. * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that uses database/sql. From 9d5eb9cfebcc7fa5b464af72efe06ac3953e4974 Mon Sep 17 00:00:00 2001 From: Vitaliy Mogilevskiy Date: Wed, 2 May 2018 10:51:00 -0700 Subject: [PATCH 1206/3440] adding tabular to README (#1908) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a97f7362f70..f19b6632557 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. * [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. +* [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). From 53162203c28749e60cf1b6dee12e89340fc62eff Mon Sep 17 00:00:00 2001 From: Aled James <21338390+alljames@users.noreply.github.com> Date: Thu, 3 May 2018 02:11:43 +0100 Subject: [PATCH 1207/3440] Add Cardiff meetup to README.md (#1913) Cardiff (Wales) meetup added in accordance with formatting of other meetups on README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f19b6632557..c51b4ff7a4f 100644 --- a/README.md +++ b/README.md @@ -1813,6 +1813,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Belo Horizonte - Brazil](https://www.meetup.com/go-belo-horizonte/) * [Golang Boston](https://www.meetup.com/bostongo/) * [Golang Bulgaria](https://www.meetup.com/Golang-Bulgaria/) +* [Golang Cardiff, UK](https://www.meetup.com/Cardiff-Go-Meetup/) * [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) * [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) * [Golang Israel](https://www.meetup.com/Go-Israel/) From 7f7b004d8d511c1d33deaf9ba8d99ff40e54beb8 Mon Sep 17 00:00:00 2001 From: Leandro Lugaresi Date: Wed, 2 May 2018 22:38:49 -0300 Subject: [PATCH 1208/3440] add leandro-lugaresi/hub (#1912) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c51b4ff7a4f..8cc2918e086 100644 --- a/README.md +++ b/README.md @@ -784,6 +784,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [hub](https://github.com/leandro-lugaresi/hub) - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. * [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. From a5af9a697ccb29cd5c4937149e11a92d0600b1cb Mon Sep 17 00:00:00 2001 From: Hisham waleed karam Date: Thu, 3 May 2018 11:00:04 +0200 Subject: [PATCH 1209/3440] add geoserver package (#1906) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8cc2918e086..67daf722c4a 100644 --- a/README.md +++ b/README.md @@ -580,6 +580,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Geographic tools and servers* * [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. +* [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. * [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. * [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. * [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. From 150b85223243181ef2c86f2d09052b4d116480de Mon Sep 17 00:00:00 2001 From: Alexander Date: Thu, 3 May 2018 14:23:20 +0200 Subject: [PATCH 1210/3440] Add github.com/sashka/signedvalue (#1897) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 67daf722c4a..0520aa9aee7 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). * [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. * [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. +* [signedvalue](https://github.com/sashka/signedvalue) - Signed and timestamped strings compatible with [Tornado's](https://github.com/tornadoweb/tornado) `create_signed_value`, `decode_signed_value`, and therefore `set_secure_cookie` and `get_secure_cookie`. * [yubigo](https://github.com/GeertJohan/yubigo) - Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. ## Command Line From 9a662c8a54a7f3a9e7f6f3560708999fabf6db5a Mon Sep 17 00:00:00 2001 From: Zack Date: Thu, 3 May 2018 05:24:28 -0700 Subject: [PATCH 1211/3440] add peerdiscovery (#1900) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0520aa9aee7..feac1562255 100644 --- a/README.md +++ b/README.md @@ -928,6 +928,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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. +* [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast * [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). * [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. From e47c9f52cdae6bbf6135af94215306f3cb40fd82 Mon Sep 17 00:00:00 2001 From: Apollo Li Date: Thu, 3 May 2018 05:55:04 -0700 Subject: [PATCH 1212/3440] Add a go algorithms repo (#1886) Add a go algorithms repo, including tree(bst, btree, vEB-tree...), heap(binary heap, leftist heap, fibonacci heap...), sort, hashmap, graph(more content will be soon) ... --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index feac1562255..23777d17c5b 100644 --- a/README.md +++ b/README.md @@ -252,7 +252,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Data Structures *Generic datastructures and algorithms in Go.* - +* [algorithms](https://github.com/shady831213/algorithms) - Algorithms and dat structures.CLRS study. * [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. * [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. * [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. From 91e11abe1d2f3b3b03a7a93f04cce4ff540845bb Mon Sep 17 00:00:00 2001 From: Kasper Lewau Date: Thu, 3 May 2018 17:19:51 +0200 Subject: [PATCH 1213/3440] add Go Copenhagen (#1914) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23777d17c5b..50b46fdb5fd 100644 --- a/README.md +++ b/README.md @@ -1818,6 +1818,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Boston](https://www.meetup.com/bostongo/) * [Golang Bulgaria](https://www.meetup.com/Golang-Bulgaria/) * [Golang Cardiff, UK](https://www.meetup.com/Cardiff-Go-Meetup/) +* [Golang Copenhagen](https://www.meetup.com/Go-Cph/) * [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) * [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) * [Golang Israel](https://www.meetup.com/Go-Israel/) From e7a1e4568b5fc8f426ba1932216f7df489dee298 Mon Sep 17 00:00:00 2001 From: Jason Feng Date: Fri, 4 May 2018 11:17:07 +1000 Subject: [PATCH 1214/3440] Added Sydney AU meetup to readme (#1918) * Added Sydney AU meetup to readme * change sydney au go meetup link position --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 50b46fdb5fd..be87067fd04 100644 --- a/README.md +++ b/README.md @@ -155,7 +155,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line applications. * [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. -* [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. +* [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [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. @@ -1055,7 +1055,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [acmetool](https://github.com/hlandau/acme) - ACME (Let's Encrypt) client tool with automatic renewal. * [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. -* [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. +* [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. * [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. * [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)". @@ -1832,6 +1832,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Pune](https://www.meetup.com/Golang-Pune/) * [Golang Singapore](https://www.meetup.com/golangsg/) * [Golang Stockholm](https://www.meetup.com/Go-Stockholm/) +* [Golang Syney, AU](https://www.meetup.com/golang-syd/) * [Golang São Paulo - Brazil](https://www.meetup.com/golangbr/) * [Golang Vancouver, BC](https://www.meetup.com/golangvan/) * [Golang Москва](https://www.meetup.com/Golang-Moscow/) From 9bb5d5ec32932beee8e9d2ba06925e89db3ede11 Mon Sep 17 00:00:00 2001 From: Amin Alaee Date: Sat, 5 May 2018 16:51:05 +0430 Subject: [PATCH 1215/3440] rename yanff to nff-go (#1922) * rename yanff to nff-go rename yanff to nff-go * update list order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be87067fd04..e4700484a1c 100644 --- a/README.md +++ b/README.md @@ -928,6 +928,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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. +* [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). * [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast * [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). @@ -941,7 +942,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [YANNFF](https://github.com/intel-go/yanff) - Framework for rapid development of performant network functions for cloud and bare-metal. ## OpenGL From 75c7c857c9a27f53133e9b2bf974090c84b60911 Mon Sep 17 00:00:00 2001 From: Clauss von Rabbe Jr Date: Sat, 5 May 2018 17:38:09 +0200 Subject: [PATCH 1216/3440] Add lstags (#1923) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4700484a1c..ac058cc5c04 100644 --- a/README.md +++ b/README.md @@ -1671,6 +1671,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. +* [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. * [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. * [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. From 2d1587405c784559d85eb30ca00274c8a3eccc53 Mon Sep 17 00:00:00 2001 From: Apollo Li Date: Sun, 6 May 2018 18:32:05 -0700 Subject: [PATCH 1217/3440] fix typo about algorithms (#1927) fix typo about algorithms. dat -> data --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac058cc5c04..e6ff7739daa 100644 --- a/README.md +++ b/README.md @@ -252,7 +252,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Data Structures *Generic datastructures and algorithms in Go.* -* [algorithms](https://github.com/shady831213/algorithms) - Algorithms and dat structures.CLRS study. +* [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. * [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. * [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. * [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. From 5305242445241a59271cea86de9b40c50ee4673c Mon Sep 17 00:00:00 2001 From: recoilme Date: Wed, 9 May 2018 15:26:29 +0200 Subject: [PATCH 1218/3440] slowpoke - Key-value store with persistence (#1915) * slowpoke - Key-value store with persistence * slowpoke - Key-value store with persistence --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6ff7739daa..6176651f281 100644 --- a/README.md +++ b/README.md @@ -317,6 +317,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. * [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. +* [slowpoke](https://github.com/recoilme/slowpoke) - Key-value store with persistence. * [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. From ab7a2f01883bd88b6876d1167667716569291be1 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Thu, 10 May 2018 18:40:50 +0300 Subject: [PATCH 1219/3440] add c4go (#1924) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6176651f281..77f72f2ced7 100644 --- a/README.md +++ b/README.md @@ -592,6 +592,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for compiling Go to other languages.* +* [c4go](https://github.com/Konstantin8105/c4go) - Transpile C code to Go code. * [gopherjs](https://github.com/gopherjs/gopherjs) - Compiler from Go to JavaScript. * [llgo](https://github.com/go-llvm/llgo) - LLVM-based compiler for Go. * [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. From c8e84eaca88ea4004d35bd51393c22d8cd8a7ec1 Mon Sep 17 00:00:00 2001 From: John Gibb Date: Thu, 10 May 2018 22:24:33 -0400 Subject: [PATCH 1220/3440] Update mattes/migrate URL (#1930) github.com/mattes/migrate has been deprecated in favor of https://github.com/golang-migrate/migrate. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 77f72f2ced7..f6009e76522 100644 --- a/README.md +++ b/README.md @@ -330,7 +330,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gondolier](https://github.com/emvicom/gondolier) - Gondolier is a library to auto migrate database schemas using structs. * [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. +* [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support 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. From fe8ba9555c333b837c6e65a0ceba080bf95c7a6e Mon Sep 17 00:00:00 2001 From: Tim De Pauw Date: Mon, 14 May 2018 17:10:57 +0200 Subject: [PATCH 1221/3440] Add lwc (#1932) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6009e76522..89f8760a8f5 100644 --- a/README.md +++ b/README.md @@ -1674,6 +1674,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. * [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. +* [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. * [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. * [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. From 386f9d9385e6d6c202ce5f7d64e33165261eda40 Mon Sep 17 00:00:00 2001 From: Alpha Date: Mon, 14 May 2018 23:11:21 +0800 Subject: [PATCH 1222/3440] ADD: Onelog to logging section (#1929) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89f8760a8f5..8a16667f1db 100644 --- a/README.md +++ b/README.md @@ -722,6 +722,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [logxi](https://github.com/mgutz/logxi) - 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. * [mlog](https://github.com/jbrodriguez/mlog) - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. +* [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenario. Also, it is one of the logger with the lowest allocation. * [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. * [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. From 9fef593c3ef7fa68aa58d811ded7cbc865b5a0b0 Mon Sep 17 00:00:00 2001 From: Aofei Sheng Date: Tue, 15 May 2018 01:13:00 +0800 Subject: [PATCH 1223/3440] Add Cameron (#1925) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a16667f1db..e6066a648bc 100644 --- a/README.md +++ b/README.md @@ -652,6 +652,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bild](https://github.com/anthonynsimon/bild) - Collection of image processing algorithms in pure Go. * [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. +* [cameron](https://github.com/sheng/cameron) - An avatar generator for Go. * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. * [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. * [gift](https://github.com/disintegration/gift) - Package of image processing filters. From bc7824b14436edb884ff117de5189d520bc78cc6 Mon Sep 17 00:00:00 2001 From: Jordan Taylor Date: Thu, 17 May 2018 15:45:47 -0400 Subject: [PATCH 1224/3440] Add kelseyhightower/envconfig to configurations sections (#1941) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e6066a648bc..ad6a57c78dc 100644 --- a/README.md +++ b/README.md @@ -226,6 +226,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file. * [ini](https://github.com/go-ini/ini) - Go package to 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. +* [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. * [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. @@ -1675,7 +1676,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. -* [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. +* [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. * [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. * [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. * [Moby](https://github.com/moby/moby) - Collaborative project for the container ecosystem to assemble container-based systems. From e23abba87d0d9891e986b88d67a6b2e34a40f8a5 Mon Sep 17 00:00:00 2001 From: "Andrew J. Gillis" Date: Thu, 17 May 2018 12:47:21 -0700 Subject: [PATCH 1225/3440] Update README.md (#1938) Add deque to README. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad6a57c78dc..28d4fd5c5cf 100644 --- a/README.md +++ b/README.md @@ -264,6 +264,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. * [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. +* [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). * [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. From fb5c3f2554d7f60176a5fd931c5eb9876b53bd64 Mon Sep 17 00:00:00 2001 From: Back Yu Date: Thu, 17 May 2018 21:53:33 -0700 Subject: [PATCH 1226/3440] add go-excel (#1937) add go-excel --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 28d4fd5c5cf..2e33edaa4b4 100644 --- a/README.md +++ b/README.md @@ -1346,6 +1346,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. +* [go-excel](https://github.com/szyhf/go-excel) - An simple and light reader to read a relate-db-like excel as a table. * [go-funk](https://github.com/thoas/go-funk) - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...). * [go-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. * [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. From 079710050521c02ca8a37691975183e0c855812f Mon Sep 17 00:00:00 2001 From: Back Yu Date: Sun, 20 May 2018 17:34:34 -0700 Subject: [PATCH 1227/3440] fix mistake in grammar of `go-excel` (#1951) fix mistake in grammar of `go-excel` --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e33edaa4b4..a2b974e9238 100644 --- a/README.md +++ b/README.md @@ -1346,7 +1346,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. -* [go-excel](https://github.com/szyhf/go-excel) - An simple and light reader to read a relate-db-like excel as a table. +* [go-excel](https://github.com/szyhf/go-excel) - A simple and light reader to read a relate-db-like excel as a table. * [go-funk](https://github.com/thoas/go-funk) - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...). * [go-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. * [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. From 7ddf1d4d6f93a75506c70fde9846af22036e771f Mon Sep 17 00:00:00 2001 From: Gerardo JT Date: Mon, 21 May 2018 02:36:58 +0200 Subject: [PATCH 1228/3440] Add https://github.com/fulldump/biff (#1948) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a2b974e9238..e9b63730ef9 100644 --- a/README.md +++ b/README.md @@ -1138,6 +1138,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. * [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. From c836f9568e52a83f62ff3e0437b7d74d6638254d Mon Sep 17 00:00:00 2001 From: Guoqiang Chen Date: Mon, 21 May 2018 08:37:50 +0800 Subject: [PATCH 1229/3440] add another go-log (#1947) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9b63730ef9..5976b5d5d60 100644 --- a/README.md +++ b/README.md @@ -703,6 +703,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [glg](https://github.com/kpango/glg) - glg is simple and fast leveled logging library for Go. * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. * [go-cronowriter](https://github.com/utahta/go-cronowriter) - Simple writer that rotate log files automatically based on current date and time, like cronolog. +* [go-log](https://github.com/subchen/go-log) - Simple and configurable Logging in Go, with level, formatters and writers. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - Log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. From b1ffbb2e5333ade9d3ce5c6dbfb7c67f2d77aead Mon Sep 17 00:00:00 2001 From: Felix Kronlage Date: Mon, 21 May 2018 02:38:29 +0200 Subject: [PATCH 1230/3440] add Golang Meetup Hamburg to the list of Meetups (#1950) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5976b5d5d60..6b9c9603187 100644 --- a/README.md +++ b/README.md @@ -1832,6 +1832,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Copenhagen](https://www.meetup.com/Go-Cph/) * [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) * [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) +* [Golang Hamburg - Germany](https://www.meetup.com/Go-User-Group-Hamburg/) * [Golang Israel](https://www.meetup.com/Go-Israel/) * [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) * [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) From 1d43a0aa9babe2de298bf4b6e0b331371a9ae0cb Mon Sep 17 00:00:00 2001 From: Sergey Grebenshchikov Date: Mon, 21 May 2018 02:39:34 +0200 Subject: [PATCH 1231/3440] Add flagvar (#1949) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6b9c9603187..7693207f69e 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. * [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. +* [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package. * [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. * [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. From 442d101d98ff665d03b91c73c01da8fa4bd50950 Mon Sep 17 00:00:00 2001 From: kazhuravlev Date: Thu, 24 May 2018 03:43:17 +0300 Subject: [PATCH 1232/3440] Remove dpar (#1956) dpar is Rust project now --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 7693207f69e..e90139ca389 100644 --- a/README.md +++ b/README.md @@ -869,7 +869,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with human languages.* -* [dpar](https://github.com/danieldk/dpar/) - Transition-based statistical dependency parser. * [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. * [go-eco](https://github.com/ThePaw/go-eco) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. * [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. From fb6cf0c964ccd3a1302838d0fde679d1f841c961 Mon Sep 17 00:00:00 2001 From: Noval Agung Prayogo Date: Thu, 24 May 2018 07:45:13 +0700 Subject: [PATCH 1233/3440] add gubrak (#1954) * add gubrak * update gubrak link --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e90139ca389..52eaef773d4 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Tools](#tools) - [Code Analysis](#code-analysis) - [Editor Plugins](#editor-plugins) - - [Go Generate Tools](#go-generate-tools) + - [Go Generate Tools](#go-generate-tools) - [Go Tools](#go-tools) - [Software Packages](#software-packages) - [DevOps Tools](#devops-tools) @@ -1379,6 +1379,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. +* [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. * [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. From ceee5f5ba52087fd1c3c2867a8f45948ef139511 Mon Sep 17 00:00:00 2001 From: Defcronyke Date: Mon, 28 May 2018 04:26:21 -0400 Subject: [PATCH 1234/3440] add godscache a.k.a. Go DS Cache (#1934) a wrapper around the Google Cloud Datastore Go package that adds caching using memcached. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52eaef773d4..8962b6b7ce0 100644 --- a/README.md +++ b/README.md @@ -396,6 +396,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. + * [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. * [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. From 620e74a62010f716d677d7644c1acf0dcdd906ac Mon Sep 17 00:00:00 2001 From: Guoqiang Chen Date: Mon, 28 May 2018 16:26:42 +0800 Subject: [PATCH 1235/3440] Add go-trylock (#1939) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8962b6b7ce0..3e07e88ed59 100644 --- a/README.md +++ b/README.md @@ -608,6 +608,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. +* [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. From fce9c8438a067dfd2f6a912328835b2f337245cf Mon Sep 17 00:00:00 2001 From: Sujit Shakya Date: Mon, 28 May 2018 14:12:07 +0545 Subject: [PATCH 1236/3440] Adds mspm package name in DataStructure and Algorithm list. (#1946) godoc: https://godoc.org/github.com/BlackRabbitt/mspm testCoverage: https://gocover.io/github.com/blackrabbitt/mspm/ds/trie https://gocover.io/github.com/blackrabbitt/mspm/search reportCard: https://goreportcard.com/report/github.com/BlackRabbitt/mspm --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3e07e88ed59..decb62f8777 100644 --- a/README.md +++ b/README.md @@ -284,6 +284,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. +* [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. * [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. From ba36b3d9944cf567044044ce6c4ff8ca35c9e04f Mon Sep 17 00:00:00 2001 From: Stjepan Date: Mon, 28 May 2018 10:27:36 +0200 Subject: [PATCH 1237/3440] Add clockwork (#1958) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index decb62f8777..f76bbf3fb27 100644 --- a/README.md +++ b/README.md @@ -1328,6 +1328,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. * [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. +* [clockwork](https://github.com/whiteShtef/clockwork) - Simple and intuitive job scheduling library in Go. * [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. From a3479c4e0a9f3d2f6101dfc7a5555f6a782a7c8e Mon Sep 17 00:00:00 2001 From: Saddam H Date: Mon, 28 May 2018 20:21:14 +0600 Subject: [PATCH 1238/3440] Add package gojsonq (#1959) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/thedevsaddam/gojsonq - godoc.org: https://godoc.org/github.com/thedevsaddam/gojsonq - goreportcard.com: https://goreportcard.com/report/github.com/thedevsaddam/gojsonq - coverage service link: [![Coverage Status](https://coveralls.io/repos/github/thedevsaddam/gojsonq/badge.svg?branch=master)](https://coveralls.io/github/thedevsaddam/gojsonq?branch=master) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f76bbf3fb27..300ab8e40c7 100644 --- a/README.md +++ b/README.md @@ -1007,6 +1007,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Query Language +* [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. * [graphql](https://github.com/sevki/graphql) - GraphQL implementation in go. * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. From ff7c24dd23fe4ecdc9ba1db41fc7db11ce0afdf8 Mon Sep 17 00:00:00 2001 From: Noval Agung Prayogo Date: Fri, 1 Jun 2018 08:06:12 +0700 Subject: [PATCH 1239/3440] update gubrak tagline (#1964) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/novalagung/gubrak - godoc.org: https://godoc.org/github.com/novalagung/gubrak - goreportcard.com: [![Go Report Card](https://goreportcard.com/badge/github.com/novalagung/gubrak?nocache=1)](https://goreportcard.com/report/github.com/novalagung/gubrak?nocache=1) - coverage service link: [![cover.run](https://cover.run/go/github.com/novalagung/gubrak.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fnovalagung%2Fgubrak) 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 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: --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 300ab8e40c7..d992043faf3 100644 --- a/README.md +++ b/README.md @@ -1384,7 +1384,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. -* [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. +* [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [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. From 9b5311ec9e01d70d72004e3cc436d5930e9869ee Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Fri, 1 Jun 2018 10:08:30 +0900 Subject: [PATCH 1240/3440] Add Aero (#1963) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/aerogo/aero - godoc.org: https://godoc.org/github.com/aerogo/aero - goreportcard.com: https://goreportcard.com/report/github.com/aerogo/aero - coverage service link: ![Codecov](https://codecov.io/gh/aerogo/aero/branch/go/graph/badge.svg) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d992043faf3..25253bd3d9d 100644 --- a/README.md +++ b/README.md @@ -1480,6 +1480,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Full stack web frameworks.* * [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go. +* [Aero](https://github.com/aerogo/aero) - High-performance web framework for Go, reaches top scores in Lighthouse. * [Air](https://github.com/sheng/air) - Ideal RESTful web framework for Go. * [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. From fb1a271d51f177f9a5e364fbc444daa026320d51 Mon Sep 17 00:00:00 2001 From: Osamu TONOMORI Date: Fri, 1 Jun 2018 10:09:44 +0900 Subject: [PATCH 1241/3440] Add osamingo/gosh (#1961) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/osamingo/gosh - godoc.org: https://godoc.org/github.com/osamingo/gosh - goreportcard.com: https://goreportcard.com/report/github.com/osamingo/gosh - coverage service link: [![codecov](https://codecov.io/gh/osamingo/gosh/branch/master/graph/badge.svg)](https://codecov.io/gh/osamingo/gosh) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 25253bd3d9d..5d1470a041a 100644 --- a/README.md +++ b/README.md @@ -843,6 +843,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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). +* [gosh](https://github.com/osamingo/gosh) - Provide Go Statistics Handler, Struct, Measure Method. * [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. From b24735206478d3d19e9d1353b481ec0db927a4ac Mon Sep 17 00:00:00 2001 From: Darwin <172265+dwin@users.noreply.github.com> Date: Thu, 31 May 2018 22:23:03 -0400 Subject: [PATCH 1242/3440] Update README.md (#1968) added goArgonPass to Security --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5d1470a041a..0644e836b4c 100644 --- a/README.md +++ b/README.md @@ -1071,6 +1071,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. * [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. * [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)". +* [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. * [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. From 68140142b2ae7f6eb6960499f487ac1030ef7825 Mon Sep 17 00:00:00 2001 From: fish Date: Fri, 1 Jun 2018 10:24:22 +0800 Subject: [PATCH 1243/3440] add redis-lock (#1966) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0644e836b4c..0f560bc7e1b 100644 --- a/README.md +++ b/README.md @@ -466,6 +466,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - Go implementation of the Raft consensus protocol, by CoreOS. +* [redis-lock](https://github.com/bsm/redis-lock) - Simplified distributed locking implementation using Redis. * [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)). From 02b2d52406e2ede34d79e5f93aa1da8515aa146a Mon Sep 17 00:00:00 2001 From: vz Date: Fri, 1 Jun 2018 10:25:58 +0800 Subject: [PATCH 1244/3440] add tt (#1965) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0f560bc7e1b..6e5ccd366e4 100644 --- a/README.md +++ b/README.md @@ -1173,6 +1173,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. * [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler. * Mock From cf5b6b5b66cd1137210301d6f20af5d05807a637 Mon Sep 17 00:00:00 2001 From: "Mike JS. Choi" Date: Thu, 31 May 2018 23:04:21 -0500 Subject: [PATCH 1245/3440] Add fac (#1967) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6e5ccd366e4..e8d8c3903b5 100644 --- a/README.md +++ b/README.md @@ -1675,6 +1675,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. * [Dropship](https://github.com/chrismckenzie/dropship) - Tool for deploying code via cdn. * [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. +* [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts * [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. From 3413aa2b4a8fe849e4343d078ed476b8564796a6 Mon Sep 17 00:00:00 2001 From: Louis Thibault Date: Fri, 1 Jun 2018 23:24:55 +0100 Subject: [PATCH 1246/3440] Update README.md (#1786) Add lucas-clemente/quic-go (an implementation of the QUIC protocol in pure Go) to the Networking section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e8d8c3903b5..c048b6df8e1 100644 --- a/README.md +++ b/README.md @@ -944,6 +944,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast * [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). +* [quic-go](https://github.com/lucas-clemente/quic-go) - An implementation of the QUIC protocol in pure Go. * [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [ssh](https://github.com/gliderlabs/ssh) - Higher-level API for building SSH servers (wraps crypto/ssh). From e800967647df9f21561e3fc25cfdf9c7c011a106 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Thu, 14 Jun 2018 02:07:25 -0700 Subject: [PATCH 1247/3440] add ghorg (#1974) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c048b6df8e1..515784af02e 100644 --- a/README.md +++ b/README.md @@ -833,6 +833,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. +* [ghorg](https://github.com/gabrie30/ghorg) - Clone all repos from a GitHub org into a single directory. * [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. From 4870254b25180aae0174c78308311aea0fb2970c Mon Sep 17 00:00:00 2001 From: Kunal Kapadia Date: Thu, 14 Jun 2018 14:37:44 +0530 Subject: [PATCH 1248/3440] Add GopherCon India Conference (#1972) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 515784af02e..bebdfc21563 100644 --- a/README.md +++ b/README.md @@ -1797,6 +1797,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GopherCon](http://www.gophercon.com/) - Denver, USA * [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR * [GopherCon Europe](https://gophercon.is/) - Reykjavik, Iceland +* [GopherCon India](https://www.gophercon.in/) - Pune, India * [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia * [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore * [GothamGo](http://gothamgo.com/) - New York City, USA From 38091726035da67a0b454da6bf98254415fff6db Mon Sep 17 00:00:00 2001 From: Ariel Mashraki <7413593+a8m@users.noreply.github.com> Date: Fri, 15 Jun 2018 04:51:10 +0300 Subject: [PATCH 1249/3440] doc: add rql (#1975) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bebdfc21563..9b39898b98c 100644 --- a/README.md +++ b/README.md @@ -1017,6 +1017,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. * [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. +* [rql](https://github.com/a8m/rql) - Resource Query Language for REST API. ## Resource Embedding From d37c85f03309cbfec6010a402a8a3eb8800d0a5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Cha=C3=ADn?= Date: Fri, 15 Jun 2018 06:45:14 +0200 Subject: [PATCH 1250/3440] Add HTTPLab (#1896) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/gchaincl/httplab - godoc.org: https://godoc.org/github.com/gchaincl/httplab - goreportcard.com: https://goreportcard.com/report/github.com/gchaincl/httplab **Make sure that you've checked the boxes below before you submit PR:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9b39898b98c..65f75bd5583 100644 --- a/README.md +++ b/README.md @@ -933,6 +933,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [HTTPLab](https://github.com/gchaincl/httplab) - HTTPLabs let you inspect HTTP requests and forge responses. * [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. From c42ec8152a20d627e9d049e5213270d122e631f9 Mon Sep 17 00:00:00 2001 From: Gerardo JT Date: Fri, 15 Jun 2018 06:45:46 +0200 Subject: [PATCH 1251/3440] Add golax framework (#1971) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/fulldump/golax - godoc.org: https://godoc.org/github.com/fulldump/golax - goreportcard.com: https://goreportcard.com/report/github.com/fulldump/golax - coverage service link [![cover.run](https://cover.run/go/github.com/fulldump/golax.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Ffulldump%2Fgolax) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 65f75bd5583..8422503a33a 100644 --- a/README.md +++ b/README.md @@ -1503,6 +1503,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-relax](https://github.com/codehack/go-relax) - Framework of pluggable components to build RESTful API's. * [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. * [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis. +* [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. * [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. From f3484db25135afdc0bbaa7ee2ff3e7b905c680e5 Mon Sep 17 00:00:00 2001 From: Leonidas Maroulis Date: Fri, 15 Jun 2018 10:58:26 +0300 Subject: [PATCH 1252/3440] Add url-shortener (#1976) **Please provide package links to:** - github.com repo: https://github.com/pantrif/url-shortener - godoc.org: https://godoc.org/github.com/pantrif/url-shortener - goreportcard.com: https://goreportcard.com/report/github.com/pantrif/url-shortener - coverage service link: https://gocover.io/github.com/pantrif/url-shortener/shortener **Make sure that you've checked the boxes below before you submit PR:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] 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. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8422503a33a..743f9f5e135 100644 --- a/README.md +++ b/README.md @@ -864,6 +864,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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... * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. +* [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. * [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. From 98efd219bb87d8e965904e7909a0e41adff04d08 Mon Sep 17 00:00:00 2001 From: Aofei Sheng Date: Fri, 15 Jun 2018 15:59:48 +0800 Subject: [PATCH 1253/3440] Add SandID (#1979) **Please provide package links to:** - github.com repo: https://github.com/sheng/sandid - godoc.org: https://godoc.org/github.com/sheng/sandid - goreportcard.com: https://goreportcard.com/report/github.com/sheng/sandid - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.): [![Coverage Status](https://coveralls.io/repos/github/sheng/sandid/badge.svg?branch=master)](https://coveralls.io/github/sheng/sandid?branch=master) **Make sure that you've checked the boxes below before you submit PR:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 743f9f5e135..bbd696119ff 100644 --- a/README.md +++ b/README.md @@ -858,6 +858,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. +* [sandid](https://github.com/sheng/sandid) - Every grain of sand on earth has its own ID. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. * [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. From 887ec0f7ec69570b346b92e54b477d974c481081 Mon Sep 17 00:00:00 2001 From: Luciano Ramalho Date: Thu, 5 Jul 2018 15:31:46 -0300 Subject: [PATCH 1254/3440] Added go-cmp, a "package for comparing Go values in tests". The repo has 575 stars on Github and is under the Google organization there. (#1998) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bbd696119ff..535976809a0 100644 --- a/README.md +++ b/README.md @@ -1161,6 +1161,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests * [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. From 62d319d17ede8950621e8a1b9a6bf34f8dc411a1 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Sat, 7 Jul 2018 05:06:24 +0900 Subject: [PATCH 1255/3440] Add packet (#1996) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 535976809a0..f40273f1b09 100644 --- a/README.md +++ b/README.md @@ -945,6 +945,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). +* [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. * [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast * [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). From 0f4bfb2cef60f7cbdf880e5d8fde57cea5c2ef84 Mon Sep 17 00:00:00 2001 From: Ravil Bikbulatov Date: Fri, 6 Jul 2018 23:06:44 +0300 Subject: [PATCH 1256/3440] Add go-critic linter. (#1989) Add `go-critic` linter in Code Analysis. - github.com repo: https://github.com/go-critic/go-critic - godoc.org: - goreportcard.com: https://goreportcard.com/report/github.com/go-critic/go-critic - coverage service link: - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] 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. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f40273f1b09..9f8160d0296 100644 --- a/README.md +++ b/README.md @@ -1610,6 +1610,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. * [go-checkstyle](https://github.com/qiniu/checkstyle) - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. * [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects. +* [go-critic](https://github.com/go-critic/go-critic) - source code linter that brings checks that are currently not implemented in other linters. * [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. From 3b2446a7619fb2ffa0d8885fb924538d67e04b0b Mon Sep 17 00:00:00 2001 From: gilbertchen Date: Fri, 6 Jul 2018 16:07:09 -0400 Subject: [PATCH 1257/3440] Update README.md (#1980) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f8160d0296..7d4b56d83c0 100644 --- a/README.md +++ b/README.md @@ -1732,6 +1732,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. * [Docker](http://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. +* [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. * [fleet](https://github.com/coreos/fleet) - Distributed init System. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. From 6e174fec8050415b5ff1b06f94ab1cf443822d37 Mon Sep 17 00:00:00 2001 From: Shiau Yan Tsai Date: Sat, 7 Jul 2018 04:32:16 +0800 Subject: [PATCH 1258/3440] Fix: typo (#1999) Typo for Sydney --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d4b56d83c0..48569b8ffb7 100644 --- a/README.md +++ b/README.md @@ -1868,7 +1868,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Pune](https://www.meetup.com/Golang-Pune/) * [Golang Singapore](https://www.meetup.com/golangsg/) * [Golang Stockholm](https://www.meetup.com/Go-Stockholm/) -* [Golang Syney, AU](https://www.meetup.com/golang-syd/) +* [Golang Sydney, AU](https://www.meetup.com/golang-syd/) * [Golang São Paulo - Brazil](https://www.meetup.com/golangbr/) * [Golang Vancouver, BC](https://www.meetup.com/golangvan/) * [Golang Москва](https://www.meetup.com/Golang-Moscow/) From f901acf64de0c4f1123fe428720244a7d4e5f82f Mon Sep 17 00:00:00 2001 From: Marcin Kaciuba Date: Sun, 8 Jul 2018 18:27:14 +0200 Subject: [PATCH 1259/3440] Add mort (#1991) [![Codecov](https://img.shields.io/codecov/c/github/aldor007/mort.svg)](https://codecov.io/gh/aldor007/mort) [![Go Report Card](http://goreportcard.com/badge/aldor007/mort)](http://goreportcard.com/report/aldor007/mort) [![Godoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://godoc.org/github.com/aldor007/mort) [![LICENSE](https://img.shields.io/github/license/aldor007/mort.svg?style=flat-square)](https://github.com/aldor007/mort/blob/master/LICENSE.md) - github.com repo: https://github.com/aldor007/mort - godoc.org: https://godoc.org/github.com/aldor007/mort - goreportcard.com: https://goreportcard.com/report/github.com/aldor007/mort - coverage service link [![Codecov](https://img.shields.io/codecov/c/github/aldor007/mort.svg)](https://codecov.io/gh/aldor007/mort) **Make sure that you've checked the boxes below before you submit PR:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 48569b8ffb7..d8ff90dc4a7 100644 --- a/README.md +++ b/README.md @@ -676,6 +676,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. * [img](https://github.com/hawx/img) - Selection of image manipulation tools. * [ln](https://github.com/fogleman/ln) - 3D line art rendering in Go. +* [mort](https://github.com/aldor007/mort) - Storage and image processing server written in Go. * [mpo](https://github.com/donatj/mpo) - Decoder and conversion tool for MPO 3D Photos. * [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go. * [pt](https://github.com/fogleman/pt) - Path tracing engine written in Go. From 1287864a2f69208db3f7e8fd16586b69c4dbbad7 Mon Sep 17 00:00:00 2001 From: isaachier Date: Mon, 16 Jul 2018 12:08:40 -0400 Subject: [PATCH 1260/3440] Move Jaeger to distributed system (#2004) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d8ff90dc4a7..3315737e46a 100644 --- a/README.md +++ b/README.md @@ -313,7 +313,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorocksdb](https://github.com/kapitan-k/gorocksdb) - Gorocksdb is a wrapper for [RocksDB](https://rocksdb.org) written in 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. -* [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. * [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. @@ -459,6 +458,7 @@ 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. * [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. * [hprose](https://github.com/hprose/hprose-golang) - Very newbility RPC Library, support 25+ languages now. +* [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. * [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. * [KrakenD](https://github.com/devopsfaith/krakend) - Ultra performant API Gateway framework with middlewares. From 4314fec1e90c8eb88d2bcab94b37a53fd1f9202c Mon Sep 17 00:00:00 2001 From: Daniel Salvadori Date: Tue, 17 Jul 2018 15:15:29 -0300 Subject: [PATCH 1261/3440] Added g3n - Go 3D Game Engine! (#1933) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3315737e46a..998bedadf6d 100644 --- a/README.md +++ b/README.md @@ -555,6 +555,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go. * [Ebiten](https://github.com/hajimehoshi/ebiten) - dead 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. +* [g3n](https://github.com/g3n/engine) - Go 3D Game Engine. * [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. From ceb5188c3649829f3647278a6de90dae7dc0c52e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20Soul=C3=A9?= Date: Tue, 17 Jul 2018 20:16:09 +0200 Subject: [PATCH 1262/3440] Add go-testdeep to the Testing Frameworks list (#1969) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 998bedadf6d..dee3728a2d1 100644 --- a/README.md +++ b/README.md @@ -1166,6 +1166,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal. * [go-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. + * [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. * [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. From 1f3dbb5613a491bae39d15cc240c1f677b0ac90e Mon Sep 17 00:00:00 2001 From: Tanghui Lin Date: Wed, 18 Jul 2018 02:16:24 +0800 Subject: [PATCH 1263/3440] discovery (#1977) * add discovery * fix --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dee3728a2d1..d9a9b1ce519 100644 --- a/README.md +++ b/README.md @@ -1116,6 +1116,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [discovery](https://github.com/Bilibili/discovery) - A registry for resilient mid-tier load balancing and failover. * [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. From 0e1cfd61d0bfc9fa9033f3b00a5d7c7e3b1fb6e5 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 18 Jul 2018 03:17:11 +0900 Subject: [PATCH 1264/3440] Add yunabe/lgo - Interactive Go programming with Jupyter. (#1984) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d9a9b1ce519..0fb723f11f6 100644 --- a/README.md +++ b/README.md @@ -1750,6 +1750,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms. +* [lgo](https://github.com/yunabe/lgo) - Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility. * [limetext](http://limetext.org/) - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) - LiteIDE is a simple, open source, cross-platform Go IDE. * [mockingjay](https://github.com/quii/mockingjay-server) - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. From efa66c0d92f6a6d7c9d91d5de75fe6693ca5a57e Mon Sep 17 00:00:00 2001 From: kevin birch Date: Tue, 17 Jul 2018 14:17:49 -0400 Subject: [PATCH 1265/3440] add github.com/percolate/charlatan (#1981) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0fb723f11f6..1881151efa0 100644 --- a/README.md +++ b/README.md @@ -1158,6 +1158,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [baloo](https://github.com/h2non/baloo) - Expressive and versatile end-to-end HTTP API testing made easy. * [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them. + * [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. * [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. From d761a354fc854c1c8277db3fa785cc9b967f0520 Mon Sep 17 00:00:00 2001 From: PHANINDRA SURA Date: Tue, 17 Jul 2018 23:53:31 +0530 Subject: [PATCH 1266/3440] added gNxI (#1986) * added gNxI * Added GNXI/GNMI * with changes to the comments --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1881151efa0..3839050caaa 100644 --- a/README.md +++ b/README.md @@ -926,6 +926,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http. * [fortio](https://github.com/istio/fortio) - Load testing library and command line tool and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. * [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. From 907a62b436c8f4609ed0720a0e0a189445e332af Mon Sep 17 00:00:00 2001 From: Grigory Zubankov Date: Tue, 17 Jul 2018 21:23:59 +0300 Subject: [PATCH 1267/3440] add stl (#1988) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3839050caaa..d43d53dc59b 100644 --- a/README.md +++ b/README.md @@ -619,6 +619,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [semaphore](https://github.com/marusama/semaphore) - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations). +* [stl](https://github.com/ssgreg/stl) - Software transactional locks based on Software Transactional Memory (STM) concurrency control mechanism. * [tunny](https://github.com/Jeffail/tunny) - Goroutine pool for golang. * [worker-pool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool. * [workerpool](https://github.com/gammazero/workerpool) - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued. From 60092673518439a41d750aa1a9d4a968400651b8 Mon Sep 17 00:00:00 2001 From: the4thamigo-uk Date: Tue, 17 Jul 2018 19:24:17 +0100 Subject: [PATCH 1268/3440] Add conflate config library/tool (#2002) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d43d53dc59b..3dbbc907554 100644 --- a/README.md +++ b/README.md @@ -212,6 +212,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. * [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. * [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. +* [conflate](https://github.com/miracl/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. * [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. From 20c01dba878c6fa7d957734f80fbd956010071a5 Mon Sep 17 00:00:00 2001 From: Rafael Passos Date: Tue, 17 Jul 2018 19:25:16 +0100 Subject: [PATCH 1269/3440] Added LSB Steganography Library (#2005) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3dbbc907554..17c97699bea 100644 --- a/README.md +++ b/README.md @@ -686,6 +686,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [resize](https://github.com/nfnt/resize) - Image resizing for Go with common interpolation methods. * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. * [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. +* [steganography](https://github.com/auyer/steganography) - Pure Go Library for LSB steganography. * [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. * [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. From 9782e65062f5d1b9d7b14027dd1637b53ef242f7 Mon Sep 17 00:00:00 2001 From: Shiming Zhang Date: Wed, 18 Jul 2018 02:35:46 +0800 Subject: [PATCH 1270/3440] Add ctc (#2008) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 17c97699bea..23d0e4e0d0f 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [ctc](https://github.com/wzshiming/ctc) - The non-invasive cross-platform terminal color library does not need to modify the Print method * [go-ataman](https://github.com/workanator/go-ataman) - Go library for rendering ANSI colored text templates in terminals. * [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. * [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. From efd54afa559a1c9fce299b457d3bcd3296110c86 Mon Sep 17 00:00:00 2001 From: Michael <6246835+bhmj@users.noreply.github.com> Date: Thu, 19 Jul 2018 11:32:23 +0300 Subject: [PATCH 1271/3440] Add jsonslice (#1997) * Add jsonslice * Add jsonslice --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23d0e4e0d0f..b86f4871790 100644 --- a/README.md +++ b/README.md @@ -1028,6 +1028,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. * [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. +* [jsonslice](https://github.com/bhmj/jsonslice) - Jsonpath queries with advanced filters. * [rql](https://github.com/a8m/rql) - Resource Query Language for REST API. ## Resource Embedding From e67597c93bf00a2cef9f57e7afb3620dcd75a41e Mon Sep 17 00:00:00 2001 From: Humphrey Shotton Date: Mon, 23 Jul 2018 12:27:31 +0100 Subject: [PATCH 1272/3440] Added GoBoy emulator (#2026) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b86f4871790..92884554cab 100644 --- a/README.md +++ b/README.md @@ -1746,6 +1746,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. * [fleet](https://github.com/coreos/fleet) - Distributed init System. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. +* [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. From 2e7f81bf2aa82c2b72bcae2a6c1321a28644c51c Mon Sep 17 00:00:00 2001 From: Jaden Weiss Date: Mon, 23 Jul 2018 15:17:00 -0400 Subject: [PATCH 1273/3440] add gofrs uuid package (#2014) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92884554cab..f60b448113c 100644 --- a/README.md +++ b/README.md @@ -873,6 +873,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. * [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. +* [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. * [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. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. From cc828dab19be552a396b28d62e9b2943e7db9669 Mon Sep 17 00:00:00 2001 From: John Lee Date: Tue, 24 Jul 2018 03:19:06 +0800 Subject: [PATCH 1274/3440] Add fpGo record (#2020) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f60b448113c..0eb833d4075 100644 --- a/README.md +++ b/README.md @@ -1368,6 +1368,7 @@ 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. +* [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang * [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. From db9fbc05e7bde59a39f6f639b903b3390b8226c9 Mon Sep 17 00:00:00 2001 From: Marco Muratori Date: Mon, 23 Jul 2018 21:28:11 +0200 Subject: [PATCH 1275/3440] Added sprbox (#2018) * added workerful and sprbox * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0eb833d4075..e4f0bfcadf3 100644 --- a/README.md +++ b/README.md @@ -1456,6 +1456,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. +* [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory, init and configure a toolbox struct in one line. * [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. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. From a8cb8f8de7a35f4f072227c9209a2612dfa66e3a Mon Sep 17 00:00:00 2001 From: Shafreeck Sea Date: Tue, 24 Jul 2018 03:30:51 +0800 Subject: [PATCH 1276/3440] Add package retry (#2021) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4f0bfcadf3..64dbee2ed09 100644 --- a/README.md +++ b/README.md @@ -1450,6 +1450,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [retry](https://github.com/kamilsk/retry) - Functional mechanism based on context to perform actions repetitively until successful. * [retry](https://github.com/thedevsaddam/retry) - Simple and easy retry mechanism package for Go. +* [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. From c949294089abde69d72308c8df92c4fa889ad8b9 Mon Sep 17 00:00:00 2001 From: Jessica Temporal Date: Mon, 23 Jul 2018 16:31:14 -0300 Subject: [PATCH 1277/3440] Fix escaping on immortal/immortal package (#2030) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 64dbee2ed09..9323ed62744 100644 --- a/README.md +++ b/README.md @@ -1414,7 +1414,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. From d1a3ebc02d56bb2b43afaa628e504fc1611dbcce Mon Sep 17 00:00:00 2001 From: Fris <22847866+OGFris@users.noreply.github.com> Date: Tue, 24 Jul 2018 19:32:15 +0100 Subject: [PATCH 1278/3440] Added GoStats (#2029) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9323ed62744..f5a77b15f32 100644 --- a/README.md +++ b/README.md @@ -1067,6 +1067,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goraph](https://github.com/gyuho/goraph) - Pure Go graph theory library(data structure, algorith visualization). * [gosl](https://github.com/cpmech/gosl) - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. * [gostat](https://github.com/ematvey/gostat) - Statistics library for the go language. +* [GoStats](https://github.com/OGFris/GoStats) - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. * [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. * [orb](https://github.com/paulmach/orb) - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support. From e79069f980ad6f244cc710f65bac730b28b99701 Mon Sep 17 00:00:00 2001 From: Inhere Date: Wed, 25 Jul 2018 02:32:39 +0800 Subject: [PATCH 1279/3440] Add gookit/config (#2027) * Add gookit/config * fix sort --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f5a77b15f32..ee85865b354 100644 --- a/README.md +++ b/README.md @@ -225,6 +225,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. +* [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. * [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 to read and write INI files. From 1d1bbb2d9ee9959a1b2d3dd179af01fe0b27a4e2 Mon Sep 17 00:00:00 2001 From: Tom Hadley Date: Tue, 24 Jul 2018 14:33:47 -0400 Subject: [PATCH 1280/3440] Update README.md (#2022) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ee85865b354..2e79c2ab6e7 100644 --- a/README.md +++ b/README.md @@ -1451,6 +1451,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [retry](https://github.com/kamilsk/retry) - Functional mechanism based on context to perform actions repetitively until successful. +* [retry](https://github.com/percolate/retry) - A simple but highly configurable retry package for Go. * [retry](https://github.com/thedevsaddam/retry) - Simple and easy retry mechanism package for Go. * [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. From 591a9f7af3b8a28ba6f36fe503d87d8b5f96b45c Mon Sep 17 00:00:00 2001 From: Eric Greer Date: Thu, 26 Jul 2018 10:16:52 -0700 Subject: [PATCH 1281/3440] Add flaggy (#2007) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e79c2ab6e7..f284b26621c 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. * [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. +* [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. * [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package. * [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. From e7c874cebdca5c4ba31720903eec539636a9d211 Mon Sep 17 00:00:00 2001 From: Max Claus Nunes Date: Thu, 26 Jul 2018 14:21:50 -0300 Subject: [PATCH 1282/3440] Add gaper (#2031) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f284b26621c..3fa6b4a6103 100644 --- a/README.md +++ b/README.md @@ -1373,6 +1373,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [filler](https://github.com/yaronsumel/filler) - small utility to fill structs using "fill" tag. * [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang * [fzf](https://github.com/junegunn/fzf) - Command-line fuzzy finder written in Go. +* [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. * [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. From a7461fbc05c457105ce1c16f211f34267d1dfee6 Mon Sep 17 00:00:00 2001 From: Felipe Cavalcanti Date: Thu, 26 Jul 2018 17:40:47 -0300 Subject: [PATCH 1283/3440] Added topfreegames/pitaya - Scalable game server framework (#2033) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3fa6b4a6103..d7f70466d52 100644 --- a/README.md +++ b/README.md @@ -571,6 +571,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. * [nano](https://github.com/lonnng/nano) - Lightweight, facility, high performance golang based game server framework * [Oak](https://github.com/oakmound/oak) - Pure Go game engine. +* [Pitaya](https://github.com/topfreegames/pitaya) - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. * [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. From 42b87702e040df8b6799b0c72e88875dda150c2d Mon Sep 17 00:00:00 2001 From: Anthony HAMON Date: Mon, 30 Jul 2018 15:25:16 +0200 Subject: [PATCH 1284/3440] Add gommit (#2034) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d7f70466d52..7d958ae3c8c 100644 --- a/README.md +++ b/README.md @@ -853,6 +853,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. +* [gommit](https://github.com/antham/gommit) - Analyze git commit messages to ensure they follow defined patterns * [gopsutil](https://github.com/shirou/gopsutil) - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). * [gosh](https://github.com/osamingo/gosh) - Provide Go Statistics Handler, Struct, Measure Method. * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. From 03ff623f1695182a2d31ee70b0cf671f879ccc4d Mon Sep 17 00:00:00 2001 From: Anton Medvedev Date: Mon, 30 Jul 2018 16:26:07 +0300 Subject: [PATCH 1285/3440] Add expr (#2041) * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7d958ae3c8c..95779ca1f0a 100644 --- a/README.md +++ b/README.md @@ -503,6 +503,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). +* [expr](https://github.com/antonmedv/expr) - an engine that can evaluate expressions. * [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. From e1b95fcca3b1218d035bfb5f525ffc2376e4ca56 Mon Sep 17 00:00:00 2001 From: Andrey G Date: Mon, 30 Jul 2018 10:18:43 -0500 Subject: [PATCH 1286/3440] Update README.md (#2013) added another library for XLSX Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/plandem/xlsx - godoc.org: https://godoc.org/github.com/plandem/xlsx - goreportcard.com: https://goreportcard.com/report/github.com/plandem/xlsx - coverage service link: https://codecov.io/gh/plandem/xlsx 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 95779ca1f0a..425859947bf 100644 --- a/README.md +++ b/README.md @@ -1478,6 +1478,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. +* [xlsx](https://github.com/plandem/xlsx) - Fast and safe way to read/update your existing Microsoft Excel files in Go programs. ## Validation From fa42c1ae0da46cc6f5ebd92e63a900aad060958e Mon Sep 17 00:00:00 2001 From: Maurice Tollmien Date: Sun, 12 Aug 2018 12:22:50 +0200 Subject: [PATCH 1287/3440] Added my own skiplist implementation to the readme (#2032) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 425859947bf..0947b870d3d 100644 --- a/README.md +++ b/README.md @@ -290,6 +290,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. +* [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. * [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. From e8fca6db26c3b31e64339d91420f0ffebfc528b4 Mon Sep 17 00:00:00 2001 From: Assaf Morami Date: Sun, 12 Aug 2018 13:23:03 +0300 Subject: [PATCH 1288/3440] Add joincap (#2038) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0947b870d3d..d5352cb12db 100644 --- a/README.md +++ b/README.md @@ -1770,6 +1770,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. * [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. +* [joincap](https://github.com/assafmo/joincap) - Command-line utility for merging multiple pcap files together. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms. * [lgo](https://github.com/yunabe/lgo) - Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility. From 065baf4c5be0a439d7adb4a0935cd252bd8a864a Mon Sep 17 00:00:00 2001 From: Marco Muratori Date: Sun, 12 Aug 2018 12:23:19 +0200 Subject: [PATCH 1289/3440] updated sprbox description (#2039) * added workerful and sprbox * Update README.md * updated sprbox description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d5352cb12db..b3dfb2f9aac 100644 --- a/README.md +++ b/README.md @@ -1466,7 +1466,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. -* [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory, init and configure a toolbox struct in one line. +* [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). * [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. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. From 2a78a312221ad5d196aca5903565b020fdf69d16 Mon Sep 17 00:00:00 2001 From: Alexey Popov <6425762@gmail.com> Date: Sun, 12 Aug 2018 13:23:28 +0300 Subject: [PATCH 1290/3440] Added alexeyco/simpletable (#2040) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3dfb2f9aac..94d2cc28370 100644 --- a/README.md +++ b/README.md @@ -198,6 +198,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. * [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. +* [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. * [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. From 0d379e1937d26a742b7c4c13b28c2133b49b15b6 Mon Sep 17 00:00:00 2001 From: John Arundel Date: Sun, 12 Aug 2018 11:23:36 +0100 Subject: [PATCH 1291/3440] Add uptimerobot - client for the Uptime Robot API (#2042) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 94d2cc28370..71cd30e7930 100644 --- a/README.md +++ b/README.md @@ -1346,6 +1346,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [uptimerobot](https://github.com/bitfield/uptimerobot) - Go wrapper and command-line client for the Uptime Robot 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. From 1dcd7be906e5206188e5ee494e7cf7dd59306ee2 Mon Sep 17 00:00:00 2001 From: Surender Thakran Date: Sun, 12 Aug 2018 15:53:49 +0530 Subject: [PATCH 1292/3440] Add GoMind (#2048) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 71cd30e7930..2b850c33ddf 100644 --- a/README.md +++ b/README.md @@ -772,6 +772,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [GoMind](https://github.com/surenderthakran/gomind) - A simplistic Neural Network Library in 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. From 20f2214394d4003f23f3cac078a185ac860afee5 Mon Sep 17 00:00:00 2001 From: wzshiming Date: Sun, 12 Aug 2018 18:24:14 +0800 Subject: [PATCH 1293/3440] add ffmt (#2017) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2b850c33ddf..5686989ecc4 100644 --- a/README.md +++ b/README.md @@ -846,6 +846,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. +* [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [ghorg](https://github.com/gabrie30/ghorg) - Clone all repos from a GitHub org into a single directory. * [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. From 5db96d40c94be507abaf8fb46e6da3c446213959 Mon Sep 17 00:00:00 2001 From: Thorsten Ball Date: Mon, 13 Aug 2018 10:15:09 +0200 Subject: [PATCH 1294/3440] Add two books to E-Books section (#2056) * Add two books to E-Books section Shameless self-promotion of my own books, but since the feedback was so positive so far, I thought someone would enjoy stumbling upon them in this list. Feel free to decline, though, if you don't want me to add my own links :) **TODOs:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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). * Reorder 'Writing A Compiler In Go' in E-Books --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5686989ecc4..a859eefeaad 100644 --- a/README.md +++ b/README.md @@ -1856,6 +1856,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Network Programming With Go](https://jan.newmarch.name/go/) * [The Go Programming Language](http://www.gopl.io/) * [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) +* [Writing A Compiler In Go](https://compilerbook.com) +* [Writing An Interpreter In Go](https://interpreterbook.com) ## Gophers From 3027c71628c8130b98d2ebb0a3f162af2461abac Mon Sep 17 00:00:00 2001 From: Konstantin Date: Mon, 13 Aug 2018 11:15:58 +0300 Subject: [PATCH 1295/3440] add f4go (#2059) * add c4go * add f4go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a859eefeaad..eb00d8e9a7f 100644 --- a/README.md +++ b/README.md @@ -608,6 +608,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for compiling Go to other languages.* * [c4go](https://github.com/Konstantin8105/c4go) - Transpile C code to Go code. +* [f4go](https://github.com/Konstantin8105/f4go) - Transpile FORTRAN 77 code to Go code. * [gopherjs](https://github.com/gopherjs/gopherjs) - Compiler from Go to JavaScript. * [llgo](https://github.com/go-llvm/llgo) - LLVM-based compiler for Go. * [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. From de4e908942e8eb7fe8eb05e419b986ddb6a65db0 Mon Sep 17 00:00:00 2001 From: Wesley Hill Date: Mon, 13 Aug 2018 19:14:16 +0100 Subject: [PATCH 1296/3440] add branca (#2057) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eb00d8e9a7f..542280db1fe 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for implementing authentications schemes.* * [authboss](https://github.com/volatiletech/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. +* [branca](https://github.com/hako/branca) - Golang implementation of Branca Tokens. * [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. * [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. From c5c5adb79c93025e421ddddc56213557c41207b0 Mon Sep 17 00:00:00 2001 From: Dmitry Narizhnykh Date: Mon, 13 Aug 2018 20:15:16 +0200 Subject: [PATCH 1297/3440] Add Dataflow kit (#2052) Add Dataflow kit https://github.com/slotix/dataflowkit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 542280db1fe..06c1a648040 100644 --- a/README.md +++ b/README.md @@ -1241,6 +1241,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer. * [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers * [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go + * [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. * [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. * [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/). From 3189ef935a3b5d7f2ea4541841eeae52c20f88b4 Mon Sep 17 00:00:00 2001 From: Manjunath Shetty Date: Tue, 14 Aug 2018 00:11:16 +0530 Subject: [PATCH 1298/3440] Added thread pool library (#2061) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06c1a648040..558a9dda8fd 100644 --- a/README.md +++ b/README.md @@ -630,6 +630,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [semaphore](https://github.com/kamilsk/semaphore) - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. * [semaphore](https://github.com/marusama/semaphore) - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations). * [stl](https://github.com/ssgreg/stl) - Software transactional locks based on Software Transactional Memory (STM) concurrency control mechanism. +* [threadpool](https://github.com/shettyh/threadpool) - Golang threadpool implementation. * [tunny](https://github.com/Jeffail/tunny) - Goroutine pool for golang. * [worker-pool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool. * [workerpool](https://github.com/gammazero/workerpool) - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued. From dc1e436c55a6f5cc7fbd1338e1062d43f38c2cf3 Mon Sep 17 00:00:00 2001 From: Pablo Aguiar Date: Tue, 14 Aug 2018 19:55:35 +0200 Subject: [PATCH 1299/3440] Update pop/soda repository location (#2063) The new The new location for pop (and soda) repository. See https://github.com/gobuffalo/pop https://github.com/markbates/pop#notice-this-repo-has-moved --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 558a9dda8fd..5e28031e12b 100644 --- a/README.md +++ b/README.md @@ -342,7 +342,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gormigrate](https://github.com/go-gormigrate/gormigrate) - Database schema migration helper for Gorm ORM. * [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. -* [soda](https://github.com/markbates/pop/tree/master/soda) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. +* [soda](https://github.com/gobuffalo/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. *Database tools.* @@ -1006,7 +1006,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grimoire](https://github.com/Fs02/grimoire) - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3). * [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. * [Marlow](https://github.com/dadleyy/marlow) - Generated ORM from project structs for compile time safety assurances. -* [pop/soda](https://github.com/markbates/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. +* [pop/soda](https://github.com/gobuffalo/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. * [SQLBoiler](https://github.com/volatiletech/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. From 33a372f58c886ca3c313e40e113377badc4992dd Mon Sep 17 00:00:00 2001 From: Toby Archer Date: Tue, 14 Aug 2018 21:40:42 +0100 Subject: [PATCH 1300/3440] readme: separate official/unofficial package management links (#2062) --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e28031e12b..45d9d60588e 100644 --- a/README.md +++ b/README.md @@ -1016,9 +1016,13 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Package Management -*Libraries for package and dependency management.* +*Official tooling for package management* * [dep](https://github.com/golang/dep) - Go dependency tool. +* [vgo](https://go.googlesource.com/vgo/) - Versioned Go. + +*Unofficial libraries for package and dependency management.* + * [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. * [glide](https://github.com/Masterminds/glide) - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. * [godep](https://github.com/tools/godep) - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies. From 0af444acaaecf00fafae0151c948ee1d1067bb8d Mon Sep 17 00:00:00 2001 From: vixentael Date: Wed, 15 Aug 2018 05:46:42 +0300 Subject: [PATCH 1301/3440] add acra (#2049) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 45d9d60588e..64b6d6df444 100644 --- a/README.md +++ b/README.md @@ -1100,6 +1100,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *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. +* [acra](https://github.com/cossacklabs/acra) - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system. * [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. * [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. From 8f7051292337ef1dd89a56ae88de15e7f4af503f Mon Sep 17 00:00:00 2001 From: Aleksandr Razumov Date: Sun, 19 Aug 2018 17:52:04 +0300 Subject: [PATCH 1302/3440] add gortc/sdp (#2068) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/gortc/sdp - godoc.org: https://godoc.org/github.com/gortc/sdp - goreportcard.com: [![Go Report Card](https://goreportcard.com/badge/github.com/gortc/sdp)](https://goreportcard.com/report/github.com/gortc/sdp) - coverage service link: [![codecov](https://codecov.io/gh/gortc/sdp/branch/master/graph/badge.svg)](https://codecov.io/gh/gortc/sdp) **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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 64b6d6df444..ff44c6cf0ea 100644 --- a/README.md +++ b/README.md @@ -1271,6 +1271,7 @@ 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. + * [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. * [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. From adcb0697e16ca8dfee30e17d43484357a569abb7 Mon Sep 17 00:00:00 2001 From: Max Chechel Date: Mon, 20 Aug 2018 15:21:42 +0300 Subject: [PATCH 1303/3440] Added links to gounit tool and gounit-vim plugin (#2072) * Added link to minimock generator * Add github.com/hexdigest/prep * changed the ordering * added links to gounit tool and gounit-vim plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ff44c6cf0ea..87bbf04a3a4 100644 --- a/README.md +++ b/README.md @@ -1678,6 +1678,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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 3 providing code completion and other IDE-like features. +* [gounit-vim](https://github.com/hexdigest/gounit-vim) - Vim plugin for generating Go tests based on the function's or method's signature. * [theia-go-extension](https://github.com/theia-ide/theia-go-extension) - Go language support for the Theia IDE. * [velour](https://github.com/velour/velour) - IRC client for the acme editor. * [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - Vim plugin to highlight syntax errors on save. @@ -1691,6 +1692,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. * [gonerics](http://github.com/bouk/gonerics) - Idiomatic Generics in Go. * [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. +* [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. * [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. ## Go Tools From 17ce10402433a3f4338426c7c621ff7c7db16181 Mon Sep 17 00:00:00 2001 From: Robin Joseph Date: Mon, 20 Aug 2018 05:24:32 -0700 Subject: [PATCH 1304/3440] Add go-pg-migrations (#2071) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87bbf04a3a4..be4e8d1a647 100644 --- a/README.md +++ b/README.md @@ -337,6 +337,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. * [gondolier](https://github.com/emvicom/gondolier) - Gondolier is a library to auto migrate database schemas using structs. * [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. From 79c7804f9c8edd974efce78df04f294486f444ce Mon Sep 17 00:00:00 2001 From: Max Halford Date: Mon, 20 Aug 2018 14:25:28 +0200 Subject: [PATCH 1305/3440] Update README.md (#2067) gago has been renamed to eaopt --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be4e8d1a647..6bb71f115c1 100644 --- a/README.md +++ b/README.md @@ -764,8 +764,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. * [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. +* [eaopt](https://github.com/MaxHalford/eaopt) - An evolutionary optimization library. * [fonet](https://github.com/Fontinalis/fonet) - A Deep Neural Network library written in Go. -* [gago](https://github.com/MaxHalford/gago) - Multi-population, flexible, parallel genetic algorithm. * [go-cluster](https://github.com/e-XpertSolutions/go-cluster) - Go implementation of the k-modes and k-prototypes clustering algorithms. * [go-deep](https://github.com/patrikeh/go-deep) - A feature-rich neural network library in Go. * [go-fann](https://github.com/white-pony/go-fann) - Go bindings for Fast Artificial Neural Networks(FANN) library. From 9350fef337aea8fd64140706faa5d47ef8def2f9 Mon Sep 17 00:00:00 2001 From: Ozgur Erdem Date: Tue, 21 Aug 2018 14:48:20 +0300 Subject: [PATCH 1306/3440] Add strutil (#2075) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6bb71f115c1..2a2d1264b05 100644 --- a/README.md +++ b/README.md @@ -883,6 +883,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [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... +* [strutil](https://github.com/ozgio/strutil) - String utilities * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. * [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. From 21fe55b1b1d106407022567faa0d96c21ee1c136 Mon Sep 17 00:00:00 2001 From: Marko Ristin Date: Tue, 21 Aug 2018 13:50:43 +0200 Subject: [PATCH 1307/3440] added gocontracts to go generate tools (#2074) * added gocontracts to go generate tools * fixed the order in the category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2a2d1264b05..32b81362ceb 100644 --- a/README.md +++ b/README.md @@ -1692,6 +1692,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [generic](https://github.com/usk81/generic) - flexible data type for Go. * [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. +* [gocontracts](https://github.com/Parquery/gocontracts) - brings design-by-contract to Go by synchronizing the code with the documentation. * [gonerics](http://github.com/bouk/gonerics) - Idiomatic Generics in Go. * [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. * [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. From d71f0a1bf29a367617537dd557f01235fdf49bd4 Mon Sep 17 00:00:00 2001 From: Alwin Doss Date: Mon, 27 Aug 2018 12:09:01 +0530 Subject: [PATCH 1308/3440] Added Library to convert to and from morse code (#2064) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 32b81362ceb..a53c5aad251 100644 --- a/README.md +++ b/README.md @@ -875,6 +875,7 @@ 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. * [lk](https://github.com/hyperboloide/lk) - A simple licensing library for golang. * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. +* [morse](https://github.com/alwindoss/morse) - Library to convert to and from morse code. * [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. * [sandid](https://github.com/sheng/sandid) - Every grain of sand on earth has its own ID. From 110de43941ef8e95b3c45ce5990ffed9de527863 Mon Sep 17 00:00:00 2001 From: Laurent Demailly Date: Mon, 3 Sep 2018 12:06:42 -0700 Subject: [PATCH 1309/3440] fortio update (new org) (#2079) there is a redirect which works already but might as well have the destination. added a few words to description too. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a53c5aad251..23bf38a1f6a 100644 --- a/README.md +++ b/README.md @@ -944,7 +944,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [fortio](https://github.com/istio/fortio) - Load testing library and command line tool and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. +* [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). * [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. * [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. From e9268a9d3032265a4c8e44fd07630cd5696edf40 Mon Sep 17 00:00:00 2001 From: Inhere Date: Tue, 4 Sep 2018 03:07:04 +0800 Subject: [PATCH 1310/3440] add gookit/color (#2077) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23bf38a1f6a..100244c0448 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-prompt](https://github.com/c-bata/go-prompt) - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit). * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. +* [gookit/color](https://github.com/gookit/color) - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. * [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. * [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. From 0d2f71cc9ab21e23040d1bd9869b30c1b23f0d8d Mon Sep 17 00:00:00 2001 From: Danny van Kooten Date: Mon, 3 Sep 2018 21:08:01 +0200 Subject: [PATCH 1311/3440] add extemplate, replaces grender (#2065) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 100244c0448..929ad741a57 100644 --- a/README.md +++ b/README.md @@ -1162,9 +1162,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. * [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. * [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. +* [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. * [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. * [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. * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. From b788444663890d954e07d239a1458b2526885aa3 Mon Sep 17 00:00:00 2001 From: Ivan Krutov Date: Wed, 12 Sep 2018 11:06:31 +0300 Subject: [PATCH 1312/3440] Fixed URL for Selenoid (moved to Aerokube organization) (#2093) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 929ad741a57..e877ee6b883 100644 --- a/README.md +++ b/README.md @@ -1237,7 +1237,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. - * [selenoid](https://github.com/aandryashin/selenoid) - alternative Selenium hub server that launches browsers within containers. + * [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. ## Text Processing From 622c59038f43ff079679bc6e206a52ed3009c3d5 Mon Sep 17 00:00:00 2001 From: Horst Rutter Date: Sun, 16 Sep 2018 21:34:41 -0400 Subject: [PATCH 1313/3440] Added entry for pdfcpu (#2105) (#2106) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: [pdfcpu](https://github.com/hhrutter/pdfcpu) - [godoc.org](https://godoc.org/github.com/hhrutter/pdfcpu) - [goreportcard.com](https://goreportcard.com/report/github.com/hhrutter/pdfcpu) - [coverage service link](https://coveralls.io/github/hhrutter/pdfcpu?branch=master) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e877ee6b883..976b1b01e59 100644 --- a/README.md +++ b/README.md @@ -528,6 +528,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [pdfcpu](https://github.com/hhrutter/pdfcpu) - PDF processor. * [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. * [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. From c90437e8b54912f7657816e1b85ab472338cc2c3 Mon Sep 17 00:00:00 2001 From: Vladimir Kovpak Date: Sat, 22 Sep 2018 22:10:46 +0300 Subject: [PATCH 1314/3440] Added "50 Shades of Go" into tutorials. (#2096) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 976b1b01e59..13cd8590472 100644 --- a/README.md +++ b/README.md @@ -1966,6 +1966,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### Tutorials +* [50 Shades of Go](http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs. * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. * [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. From 84dd9db14750d7fed927b5f22f24d4baa4be87ef Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 22 Sep 2018 16:31:37 -0300 Subject: [PATCH 1315/3440] upgrade cover.run example new version used query string --- .github/PULL_REQUEST_TEMPLATE.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 86f105eedbb..2c0cf6da606 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,7 +5,8 @@ Please check if what you want to add to `awesome-go` list meets [quality standar - github.com repo: - godoc.org: - goreportcard.com: -- coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `![cover.run go](https://cover.run/go/github.com/user/repository.svg)` +- coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` + Very good coverage From 534987b05ec37c67de35e26dd942fd7a67d71464 Mon Sep 17 00:00:00 2001 From: Shunsuke Maeda Date: Mon, 24 Sep 2018 12:40:24 +0900 Subject: [PATCH 1316/3440] add duci (#2108) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/duck8823/duci - godoc.org: https://godoc.org/github.com/duck8823/duci - goreportcard.com: https://goreportcard.com/report/github.com/duck8823/duci - coverage service link: [![Coverage Status](https://coveralls.io/repos/github/duck8823/duci/badge.svg?branch=master)](https://coveralls.io/github/duck8823/duci?branch=master) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 13cd8590472..334d7a83efd 100644 --- a/README.md +++ b/README.md @@ -245,6 +245,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for help with continuous integration.* * [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. +* [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. * [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. * [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. From 2845c4f18b6ce83b7a6c1ae2a6fb3dc1f112c997 Mon Sep 17 00:00:00 2001 From: Nikhil Mungel Date: Sun, 23 Sep 2018 20:42:39 -0700 Subject: [PATCH 1317/3440] Add pipeline (#2082) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/hyfather/pipeline - godoc.org: https://godoc.org/github.com/hyfather/pipeline - goreportcard.com: https://goreportcard.com/report/github.com/hyfather/pipeline - coverage service link: https://cover.run/go?repo=github.com%2Fhyfather%2Fpipeline&tag=golang-1.10 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 334d7a83efd..a2728699729 100644 --- a/README.md +++ b/README.md @@ -293,6 +293,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. +* [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. * [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. From f6a711cf7cbb57909e1acaa0017611e46d7ad91b Mon Sep 17 00:00:00 2001 From: Heyward Fann Date: Mon, 24 Sep 2018 11:19:55 -0500 Subject: [PATCH 1318/3440] fix yakvs link (#2098) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a2728699729..38e367de9f1 100644 --- a/README.md +++ b/README.md @@ -1155,7 +1155,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. -* [yakvs](https://github.com/sci4me/yakvs) - Small, networked, in-memory key-value store. +* [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. ## Template Engines From 7b52577736a8774ed92b84152ecb1bd7d8448afc Mon Sep 17 00:00:00 2001 From: Camal Cakar Date: Mon, 1 Oct 2018 17:37:19 +0200 Subject: [PATCH 1319/3440] Add GoWayFest & GoDays (#2119) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 38e367de9f1..81d4ff0fd61 100644 --- a/README.md +++ b/README.md @@ -1852,6 +1852,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA * [dotGo](http://www.dotgo.eu) - Paris, France * [GoCon](http://gocon.connpass.com/) - Tokyo, Japan +* [GoDays](https://www.godays.io/) - Berlin, Germany * [GoLab](http://golab.io/) - Florence, Italy * [GolangUK](http://golanguk.com/) - London, UK * [GopherChina](http://gopherchina.org) - Shanghai, China @@ -1862,6 +1863,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia * [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore * [GothamGo](http://gothamgo.com/) - New York City, USA +* [GoWayFest](https://goway.io/) - Minsk, Belarus ## E-Books From e73d4c8612f0559c6709a471781816283c65296c Mon Sep 17 00:00:00 2001 From: Andrew LeTourneau Date: Mon, 1 Oct 2018 10:56:03 -0500 Subject: [PATCH 1320/3440] Adding depcharge to devops list (#2083) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/centerorbit/depcharge - godoc.org: https://godoc.org/github.com/centerorbit/depcharge - goreportcard.com: https://goreportcard.com/report/github.com/centerorbit/depcharge - coverage service link: https://gitlab.com/centerorbit/depcharge/pipelines [![pipeline status](https://gitlab.com/centerorbit/depcharge/badges/master/pipeline.svg)](https://gitlab.com/centerorbit/depcharge/commits/master) [![coverage report](https://gitlab.com/centerorbit/depcharge/badges/master/coverage.svg)](https://gitlab.com/centerorbit/depcharge/commits/master) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [ ] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 81d4ff0fd61..b340bf9680c 100644 --- a/README.md +++ b/README.md @@ -1729,6 +1729,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Blast](https://github.com/dave/blast) - A simple tool for API load testing and batch jobs. * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. +* [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. * [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. From d6173d861a15b5e7a91de3a29d2da2b189eb7668 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 2 Oct 2018 02:32:44 +0100 Subject: [PATCH 1321/3440] Add Fyne to GUI list (#2121) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/fyne-io/fyne - godoc.org: https://godoc.org/github.com/fyne-io/fyne - goreportcard.com: https://goreportcard.com/report/github.com/fyne-io/fyne - coverage service link: [coveralls](https://coveralls.io/github/fyne-io/fyne) 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 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b340bf9680c..3b5b6bea42f 100644 --- a/README.md +++ b/README.md @@ -647,6 +647,7 @@ 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. +* [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go, rendered using EFL. Supports: Linux, macOS, Windows. * [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-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. From b5d3cf7b2e0d01a2acb66d1dfa0dee51cbfaf0f8 Mon Sep 17 00:00:00 2001 From: Daniel Nephin Date: Wed, 3 Oct 2018 14:44:03 -0400 Subject: [PATCH 1322/3440] Add gotest.tools (#2053) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b5b6bea42f..2d352778933 100644 --- a/README.md +++ b/README.md @@ -1214,6 +1214,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [gotest.tools](https://github.com/gotestyourself/gotest.tools) - A collection of packages to augment the go testing package and support common patterns. * [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. * [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. From 7b4fb51ebd6a74603302b8a4fdaec385eeaad329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Czaj=C4=99cki?= Date: Wed, 3 Oct 2018 20:44:29 +0200 Subject: [PATCH 1323/3440] Add triangolatte (#2069) * Add triangolatte * Put expected type of dash --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2d352778933..da910829c93 100644 --- a/README.md +++ b/README.md @@ -1101,6 +1101,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [TextRank](https://github.com/DavidBelicza/TextRank) - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. +* [triangolatte](https://github.com/tchayen/triangolatte) - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. * [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 From 8317d1006b7e1efb7b4fa098700790806aa9ac25 Mon Sep 17 00:00:00 2001 From: Zack Patrick Date: Wed, 3 Oct 2018 11:44:59 -0700 Subject: [PATCH 1324/3440] Update README.md (#2076) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da910829c93..f57a5e498a1 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO) * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. +* [rbac](https://github.com/zpatrick/rbac) - Minimalistic RBAC package for Go applications. * [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). * [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. From e1422a4e5402bf4d70090aafd579aba9a61ef9bf Mon Sep 17 00:00:00 2001 From: ceriath Date: Wed, 3 Oct 2018 20:47:28 +0200 Subject: [PATCH 1325/3440] Update README.md (#2102) Remove github.com/rakyll/coop and https://github.com/coreos/fleet --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index f57a5e498a1..7340d4293b5 100644 --- a/README.md +++ b/README.md @@ -1387,7 +1387,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [clockwerk](http://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. * [clockwork](https://github.com/whiteShtef/clockwork) - Simple and intuitive job scheduling library in Go. * [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. * [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. @@ -1787,7 +1786,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Docker](http://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. * [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. -* [fleet](https://github.com/coreos/fleet) - Distributed init System. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. * [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. From 3ec11f7663c96f3c554c7cf26f0061d9ac28f860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Gill=C3=A9?= Date: Wed, 3 Oct 2018 20:48:56 +0200 Subject: [PATCH 1326/3440] Add ln-paywall (#2078) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7340d4293b5..12cc49a3ccd 100644 --- a/README.md +++ b/README.md @@ -1587,6 +1587,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. * [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. * [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. +* [ln-paywall](https://github.com/philippgille/ln-paywall) - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin) * [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. * [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. From bb5b4b75427371e4587ecdddbf63e7c388af0990 Mon Sep 17 00:00:00 2001 From: Andrey Odintsov Date: Wed, 3 Oct 2018 21:49:09 +0300 Subject: [PATCH 1327/3440] Add ormlite (#2081) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 12cc49a3ccd..2788103eb2e 100644 --- a/README.md +++ b/README.md @@ -373,6 +373,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. * [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. +* [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. From d076721543765760af353f31d727d19a0cf2bcd5 Mon Sep 17 00:00:00 2001 From: Marco Muratori Date: Wed, 3 Oct 2018 20:49:32 +0200 Subject: [PATCH 1328/3440] moved sprbox from Utilities to Config section (#2089) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2788103eb2e..1ea5333972b 100644 --- a/README.md +++ b/README.md @@ -237,6 +237,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [joshbetz/config](https://github.com/joshbetz/config) - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. * [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. * [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. +* [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). * [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). @@ -1491,7 +1492,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. -* [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). * [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. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. From 4c97f27c5221e6ae934c8cdd8bfbcb4a4bcafdb6 Mon Sep 17 00:00:00 2001 From: Evan Surdam Date: Wed, 3 Oct 2018 18:49:50 +0000 Subject: [PATCH 1329/3440] Add go-sophos (#2092) * Add go-sophos * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1ea5333972b..364164bc131 100644 --- a/README.md +++ b/README.md @@ -1327,6 +1327,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. * [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. * [go-telegraph](https://github.com/toby3d/go-telegraph) - Telegraph publishing platform API client. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. From 5aa8fa8c76ce25353a3bca4973678e8e52746275 Mon Sep 17 00:00:00 2001 From: Elton Souza Date: Wed, 3 Oct 2018 15:54:28 -0300 Subject: [PATCH 1330/3440] Add htmlquery (#2130) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 364164bc131..50a0cb57bd8 100644 --- a/README.md +++ b/README.md @@ -1282,6 +1282,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goregen](https://github.com/zach-klippenstein/goregen) - Library for generating random strings from regular expressions. * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. + * [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression * [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. * [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. From 93a2e8745124b803efac09088f9ee4c10d800063 Mon Sep 17 00:00:00 2001 From: Heungsub Lee Date: Thu, 4 Oct 2018 04:19:56 +0900 Subject: [PATCH 1331/3440] NLP libraries in Chinese, Japanese (#2104) * Add go-pinyin * Add kagome * Make descriptions for go-pinyin and kagome simpler --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 50a0cb57bd8..0ac3136f351 100644 --- a/README.md +++ b/README.md @@ -912,6 +912,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. * [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. +* [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. * [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. * [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. @@ -920,6 +921,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. * [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. * [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. +* [kagome](https://github.com/ikawaha/kagome) - JP morphological analyzer written in pure Go. * [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. From 3b92e117e40ff0222d0c09122d7326491e64d2d4 Mon Sep 17 00:00:00 2001 From: Jessica Temporal Date: Wed, 3 Oct 2018 17:46:21 -0300 Subject: [PATCH 1332/3440] Adds me to Mainteners list (#2131) --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index f77c2b10a5d..e4ab3d21598 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7,3 +7,4 @@ Kirill Danshin (@kirillDanshin) Felipe Oliveira (@felipeweb) Bo-Yi Wu (@appleboy) Cássio Botaro (@cassiobotaro) +Jessica Temporal (@jtemporal) From c01635e24d1c331f2caf341cc57aea2dcdefa4cb Mon Sep 17 00:00:00 2001 From: auxten Date: Thu, 4 Oct 2018 06:29:54 +0900 Subject: [PATCH 1333/3440] add CovenantSQL (#2099) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0ac3136f351..5b08c3845f0 100644 --- a/README.md +++ b/README.md @@ -315,6 +315,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. * [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. +* [CovenantSQL](https://github.com/CovenantSQL/CovenantSQL) - CovenantSQL is a SQL database on blockchain. * [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. * [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. From 462d69e4728be0f287e9639f6f07cb7cc2706e97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20W=C3=BCthrich?= Date: Fri, 5 Oct 2018 23:21:07 +0200 Subject: [PATCH 1334/3440] add golangch twitter (#2132) * Add @golanch twitter * correct order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5b08c3845f0..e9bfef3645b 100644 --- a/README.md +++ b/README.md @@ -1951,6 +1951,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [@golang](https://twitter.com/golang) * [@golang_news](https://twitter.com/golang_news) +* [@golangch](https://twitter.com/golangch) * [@golangflow](https://twitter.com/golangflow) * [@golangweekly](https://twitter.com/golangweekly) From e915e744ce5069a90a795f1e0475be9d886e1667 Mon Sep 17 00:00:00 2001 From: Gergely Brautigam Date: Fri, 5 Oct 2018 23:21:46 +0200 Subject: [PATCH 1335/3440] Added furnace to awesome-go. (#2129) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9bfef3645b..51a688d1570 100644 --- a/README.md +++ b/README.md @@ -1748,6 +1748,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts * [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. +* [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. * [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. From dc0dabd2bc52eb1d0f1368994256dd26de50f2d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A1bio=20da=20Silva=20Ribeiro?= Date: Fri, 5 Oct 2018 18:21:57 -0300 Subject: [PATCH 1336/3440] Cachego Support (#2124) Added cachego link to database drivers. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 51a688d1570..2ef44bfc7d5 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. + * [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. * [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. From 052be74b6f4e733c4dc2432ac7905a9090b3718a Mon Sep 17 00:00:00 2001 From: Bidhan A Date: Sat, 6 Oct 2018 03:07:09 +0545 Subject: [PATCH 1337/3440] add gaia to DevOps Tools (#2123) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2ef44bfc7d5..f5aa3f39b67 100644 --- a/README.md +++ b/README.md @@ -1747,6 +1747,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Dropship](https://github.com/chrismckenzie/dropship) - Tool for deploying code via cdn. * [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. * [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts +* [gaia](https://github.com/gaia-pipeline/gaia) - Build powerful pipelines in any programming language. * [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. From 08bbb3f54677e8e7157ea70e704da47b0db1ca28 Mon Sep 17 00:00:00 2001 From: Evan Mena Date: Fri, 5 Oct 2018 17:22:36 -0400 Subject: [PATCH 1338/3440] Added ynab api go library (#2122) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f5aa3f39b67..adca6285dc9 100644 --- a/README.md +++ b/README.md @@ -1379,6 +1379,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. * [uptimerobot](https://github.com/bitfield/uptimerobot) - Go wrapper and command-line client for the Uptime Robot v2 API. * [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. +* [ynab](https://github.com/brunomvsouza/ynab.go) - Go wrapper for the YNAB API * [zooz](https://github.com/gojuno/go-zooz) - Go client for the Zooz API. ## Utilities From b90f25bf5fdaa1cd84fa442905d62b0c3bd52109 Mon Sep 17 00:00:00 2001 From: Wolfy-J Date: Sat, 6 Oct 2018 00:22:46 +0300 Subject: [PATCH 1339/3440] Update README.md (#2120) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index adca6285dc9..3f04d52bd5c 100644 --- a/README.md +++ b/README.md @@ -1164,6 +1164,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. +* [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. ## Template Engines From 30c72fd209639babfb54f8b9bd276e264fb14964 Mon Sep 17 00:00:00 2001 From: lx4r Date: Fri, 5 Oct 2018 23:23:02 +0200 Subject: [PATCH 1340/3440] adding Codingame (#2117) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f04d52bd5c..35aced6cbad 100644 --- a/README.md +++ b/README.md @@ -1965,6 +1965,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. * [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. +* [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. * [Go Blog](http://blog.golang.org) - The official Go blog. * [Go Challenge](http://golang-challenge.org/) - Learn Go by solving problems and getting feedback from Go experts. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. From 6d118dd4fcf37fe0e78dfdfbb5cb7e0953fc8d24 Mon Sep 17 00:00:00 2001 From: Noel Yahan Date: Sat, 6 Oct 2018 02:53:12 +0530 Subject: [PATCH 1341/3440] add mergi (#2111) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 35aced6cbad..e341b83448b 100644 --- a/README.md +++ b/README.md @@ -700,6 +700,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. * [img](https://github.com/hawx/img) - Selection of image manipulation tools. * [ln](https://github.com/fogleman/ln) - 3D line art rendering in Go. +* [mergi](https://github.com/noelyahan/mergi) - Tool & Go library for image manipulation (Merge, Crop, Resize, Watermark, Animate). * [mort](https://github.com/aldor007/mort) - Storage and image processing server written in Go. * [mpo](https://github.com/donatj/mpo) - Decoder and conversion tool for MPO 3D Photos. * [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go. From fbf1ea7779f9239db5324b31bc36514b08efe506 Mon Sep 17 00:00:00 2001 From: Sebastian <3441183+BattleBas@users.noreply.github.com> Date: Sat, 6 Oct 2018 02:53:51 -0500 Subject: [PATCH 1342/3440] Fix goreportcard URL (#2126) * Fix goreportcard URL Fixed the goreportcard URL by removing the "report" part which was leading to a 404 page. Now the URL points to the homepage, I assume this is what was intended. * Update link to include "github.com" Update link to include "github.com" in path to prevent going to 404 page. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d1b115c4db2..8294949f899 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,7 @@ If you removed our PR template you can find it [here](https://github.com/avelino ## Quality standards -To be on the list, project repositories should adhere to these quality standards (http://goreportcard.com/report/ **github_user** / **github_repo**): +To be on the list, project repositories should adhere to these quality standards (https://goreportcard.com/report/github.com/ **github_user** / **github_repo**): - Code functions as documented and expected - Generally useful to the wider community of Go programmers From 75b7f7d79468d33982626847ba216ff6faf93734 Mon Sep 17 00:00:00 2001 From: Adrian-George Bostan Date: Sat, 6 Oct 2018 10:54:10 +0300 Subject: [PATCH 1343/3440] Add libvlc-go (#2134) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e341b83448b..0754fd1b2d0 100644 --- a/README.md +++ b/README.md @@ -1544,6 +1544,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. +* [libvlc-go](https://github.com/adrg/libvlc-go) - Go bindings for libvlc 2.X/3.X/4.X (used by the VLC media player). * [v4l](https://github.com/korandiz/v4l) - Video capture library for Linux, written in Go. ## Web Frameworks From bb2ff81cb60215156a0483e0e2d7db7dc22d9778 Mon Sep 17 00:00:00 2001 From: Guilherme Caruso Date: Sat, 6 Oct 2018 04:54:27 -0300 Subject: [PATCH 1344/3440] Kair - Time and Date Lib - Insert (#2135) * Kair - Time and Date Lib - Insert * Lint - Checked and ready! * Lint - Checked and ready! * Description adjust --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0754fd1b2d0..e47f3b7ea73 100644 --- a/README.md +++ b/README.md @@ -448,6 +448,7 @@ 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). * [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. * [goweek](https://github.com/grsmv/goweek) - Library for working with week entity in golang. +* [Kair](https://github.com/GuilhermeCaruso/Kair) - Date and Time - Golang Formatting Library. * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. * [NullTime](https://github.com/kirillDanshin/nulltime) - Nullable `time.Time`. * [strftime](https://github.com/awoodbeck/strftime) - C99-compatible strftime formatter. From 94e6a13158314a8ac60ee2590af3eeb84e541453 Mon Sep 17 00:00:00 2001 From: Balazs Nadasdi Date: Sun, 7 Oct 2018 03:31:36 +0200 Subject: [PATCH 1345/3440] add go-commander (#2138) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e47f3b7ea73..1df75937e85 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. * [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package. * [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go. +* [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. * [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. * [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands. From 6c1fe3af83f332fbd386758eebc40f1654dacf38 Mon Sep 17 00:00:00 2001 From: Rodrigo Brito Date: Mon, 8 Oct 2018 04:59:19 -0300 Subject: [PATCH 1346/3440] Include StudioSol/async (#2140) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1df75937e85..2fa6709c09e 100644 --- a/README.md +++ b/README.md @@ -630,6 +630,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for managing and working with Goroutines.* +* [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. From 9a7ffeb3d206bfb0179319951b64b9808410cd7e Mon Sep 17 00:00:00 2001 From: Rodrigo Brito Date: Mon, 8 Oct 2018 04:59:34 -0300 Subject: [PATCH 1347/3440] Include StudioSol/set (#2141) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2fa6709c09e..b9185de3b7c 100644 --- a/README.md +++ b/README.md @@ -298,6 +298,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. +* [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. * [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. * [trie](https://github.com/derekparker/trie) - Trie implementation in Go. From 4cf383bdae2e731172600a2ffb2ad6e3dcf9cb56 Mon Sep 17 00:00:00 2001 From: Alex Pliutau Date: Thu, 11 Oct 2018 19:57:44 +0700 Subject: [PATCH 1348/3440] Add wit-go official wit.ai Go client (#2144) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b9185de3b7c..8b310e1d279 100644 --- a/README.md +++ b/README.md @@ -1365,7 +1365,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [paypal](https://github.com/logpacker/PayPal-Go-SDK) - 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. @@ -1385,6 +1385,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. * [uptimerobot](https://github.com/bitfield/uptimerobot) - Go wrapper and command-line client for the Uptime Robot v2 API. * [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. +* [wit-go](https://github.com/wit-ai/wit-go) - Go client for wit.ai HTTP API. * [ynab](https://github.com/brunomvsouza/ynab.go) - Go wrapper for the YNAB API * [zooz](https://github.com/gojuno/go-zooz) - Go client for the Zooz API. From 5e0ff7b0863f60b718453c617d72d9efb62d9cc6 Mon Sep 17 00:00:00 2001 From: Alex Pliutau Date: Fri, 12 Oct 2018 16:03:43 +0700 Subject: [PATCH 1349/3440] Add package main YouTube channel link (#2145) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8b310e1d279..91081fb238e 100644 --- a/README.md +++ b/README.md @@ -2006,5 +2006,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. +* [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's From 49dad74fe64f24992c72fa0d662743825b5368a1 Mon Sep 17 00:00:00 2001 From: Aofei Sheng Date: Sat, 13 Oct 2018 21:33:52 +0800 Subject: [PATCH 1350/3440] Fix repo URLs (#2153) https://github.com/sheng/air -> https://github.com/aofei/air https://github.com/sheng/sandid -> https://github.com/aofei/sandid https://github.com/sheng/cameron -> https://github.com/aofei/cameron --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 91081fb238e..8de007a66bf 100644 --- a/README.md +++ b/README.md @@ -687,7 +687,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bild](https://github.com/anthonynsimon/bild) - Collection of image processing algorithms in pure Go. * [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. -* [cameron](https://github.com/sheng/cameron) - An avatar generator for Go. +* [cameron](https://github.com/aofei/cameron) - An avatar generator for Go. * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. * [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. * [gift](https://github.com/disintegration/gift) - Package of image processing filters. @@ -893,7 +893,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [morse](https://github.com/alwindoss/morse) - Library to convert to and from morse code. * [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. -* [sandid](https://github.com/sheng/sandid) - Every grain of sand on earth has its own ID. +* [sandid](https://github.com/aofei/sandid) - Every grain of sand on earth has its own ID. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. * [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. @@ -1558,7 +1558,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go. * [Aero](https://github.com/aerogo/aero) - High-performance web framework for Go, reaches top scores in Lighthouse. -* [Air](https://github.com/sheng/air) - Ideal RESTful web framework for Go. +* [Air](https://github.com/aofei/air) - An ideally refined web framework for Go. * [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! From f548c034353a17a6971a82d2f717e07996b9c894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Sat, 13 Oct 2018 15:34:13 +0200 Subject: [PATCH 1351/3440] Add the Mercure (#2147) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8de007a66bf..064587e4a81 100644 --- a/README.md +++ b/README.md @@ -834,6 +834,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. +* [Mercure](https://github.com/dunglas/mercure) - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events). * [messagebus](https://github.com/vardius/message-bus) - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. * [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. From 37d0cff78683cecee8e12af7b7cfd8ec2e387f91 Mon Sep 17 00:00:00 2001 From: zhulongcheng Date: Sat, 13 Oct 2018 21:34:25 +0800 Subject: [PATCH 1352/3440] Add package testsql (#2148) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 064587e4a81..24cd47bd142 100644 --- a/README.md +++ b/README.md @@ -1235,6 +1235,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. * [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. * [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler. From c4fdf64388c7a857de8f1c44597260bd90b04879 Mon Sep 17 00:00:00 2001 From: Roberto Duessmann Date: Sat, 13 Oct 2018 10:34:53 -0300 Subject: [PATCH 1353/3440] Remove spate/vectormath (#2152) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 24cd47bd142..bd3f97f2843 100644 --- a/README.md +++ b/README.md @@ -1115,7 +1115,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [streamtools](https://github.com/nytlabs/streamtools) - general purpose, graphical tool for dealing with streams of data. * [TextRank](https://github.com/DavidBelicza/TextRank) - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. * [triangolatte](https://github.com/tchayen/triangolatte) - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. -* [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 From 09bd55618ea3389e1c93745a64b906b81a21f823 Mon Sep 17 00:00:00 2001 From: Lucas Gabriel Schneider Date: Sat, 13 Oct 2018 13:42:32 -0300 Subject: [PATCH 1354/3440] Fixed typos at readme (#2150) * Update README.md * Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bd3f97f2843..7160af19e96 100644 --- a/README.md +++ b/README.md @@ -1786,7 +1786,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). -* [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the reponse code and data between each call for specific server stress based on its previous response. +* [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the response code and data between each call for specific server stress based on its previous response. * [skm](https://github.com/TimothyYe/skm) - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! * [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. * [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. From 743297f8cdda72955a43cbf21d5a64a3056e25bb Mon Sep 17 00:00:00 2001 From: Grachev Mikhail Date: Tue, 16 Oct 2018 03:28:10 +0300 Subject: [PATCH 1355/3440] Fix typos (#2161) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7160af19e96..836ae30f143 100644 --- a/README.md +++ b/README.md @@ -905,7 +905,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. * [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. -* [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and ouput handling. +* [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and output 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. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber. @@ -1810,7 +1810,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. -* [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. +* [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. * [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. From 0f3a6a5aa603d011e58a84e0a5a1597214a7ad4a Mon Sep 17 00:00:00 2001 From: Adam Jones Date: Tue, 16 Oct 2018 13:28:42 +1300 Subject: [PATCH 1356/3440] Add APNs2 HTTP/2 Apple Push Notification library (#2149) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 836ae30f143..e342bc74ee3 100644 --- a/README.md +++ b/README.md @@ -811,6 +811,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement messaging systems.* +* [APNs2](https://github.com/sideshow/apns2) - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. * [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. From f08c0067d9880c2264dbd94b46b06910135bb66c Mon Sep 17 00:00:00 2001 From: Elliot Forbes Date: Wed, 17 Oct 2018 02:06:03 +0100 Subject: [PATCH 1357/3440] =?UTF-8?q?Adding=20TutorialEdge=20to=20the=20li?= =?UTF-8?q?st=20of=20Websites=20and=20WebAssembly=20tutorial=20=E2=80=A6?= =?UTF-8?q?=20(#2162)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Adding TutorialEdge to the list of Websites and WebAssembly tutorial to list of tutorials * Fixed alphabetical ordering * Fixing order... --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e342bc74ee3..75e11d8098c 100644 --- a/README.md +++ b/README.md @@ -1993,6 +1993,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). * [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. +* [TutorialEdge - Golang](https://tutorialedge.net/course/golang/) ### Tutorials @@ -2004,10 +2005,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +* [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. -* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's +* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's \ No newline at end of file From c2f3df3d4d4c50b1a7373f87c77cd6f4190d31c7 Mon Sep 17 00:00:00 2001 From: Scott Johnston Date: Tue, 16 Oct 2018 18:07:04 -0700 Subject: [PATCH 1358/3440] Update README.md (#2169) changing flowgraph package description to be flow-based --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 75e11d8098c..e65951a53ea 100644 --- a/README.md +++ b/README.md @@ -467,7 +467,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [digota](https://github.com/digota/digota) - grpc ecommerce microservice. * [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. * [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. -* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. +* [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package. * [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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. * [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service. From b62d3edcecf1f11821b662a0889e12c72a1c8b88 Mon Sep 17 00:00:00 2001 From: David Schneidhoffer Date: Wed, 17 Oct 2018 03:07:56 +0200 Subject: [PATCH 1359/3440] Remove tui-go, because it's no longer maintained (#2164) I am also added a replacement for it, check the another PR: https://github.com/avelino/awesome-go/pull/2163 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e65951a53ea..e6bcdb3ec9b 100644 --- a/README.md +++ b/README.md @@ -207,7 +207,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). -* [tui-go](https://github.com/marcusolsson/tui-go) - Go UI library for building rich terminal applications. * [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. * [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. * [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data. From 2029535b88ecb1ca03c6ed9c12abdd40292bb5b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E4=BD=B3=E5=86=9B?= Date: Wed, 17 Oct 2018 09:09:22 +0800 Subject: [PATCH 1360/3440] add https://github.com/xujiajun/gotokenizer library (#2160) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/xujiajun/gotokenizer - godoc.org: https://godoc.org/github.com/xujiajun/gotokenizer - goreportcard.com: https://goreportcard.com/report/github.com/xujiajun/gotokenizer - coverage service link: https://coveralls.io/github/xujiajun/gotokenizer?branch=master 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 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6bcdb3ec9b..509bd494568 100644 --- a/README.md +++ b/README.md @@ -926,6 +926,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [gotokenizer](https://github.com/xujiajun/gotokenizer) - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) * [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. * [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. * [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. From 773510fd0f6c1e8d5f3c27161314a34b7d2ac14f Mon Sep 17 00:00:00 2001 From: John Deng Date: Thu, 18 Oct 2018 10:46:45 +0800 Subject: [PATCH 1361/3440] =?UTF-8?q?added=20hiboot=20-=20a=20high=20perfo?= =?UTF-8?q?rmance=20web=20and=20cli=20application=20framework=20w=E2=80=A6?= =?UTF-8?q?=20(#2167)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hiboot - the cli/web framework with auto configuration and dependency injection Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/hidevopsio/hiboot - godoc.org: [![Documentation](https://godoc.org/github.com/golang/gddo?status.svg)](https://godoc.org/github.com/hidevopsio/hiboot) - goreportcard.com: [![Go Report Card](https://goreportcard.com/badge/github.com/hidevopsio/hiboot)](https://goreportcard.com/report/github.com/hidevopsio/hiboot) - coverage service link: [![codecov](https://codecov.io/gh/hidevopsio/hiboot/branch/master/graph/badge.svg)](https://codecov.io/gh/hidevopsio/hiboot) 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:** - [x ] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 509bd494568..0b392248964 100644 --- a/README.md +++ b/README.md @@ -169,6 +169,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. * [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. +* [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection. * [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. @@ -1578,6 +1579,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. * [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. From b5b06a468407c794466f31efdf23950818fcfe82 Mon Sep 17 00:00:00 2001 From: Andrey Yurchenkov Date: Thu, 18 Oct 2018 18:25:19 +0300 Subject: [PATCH 1362/3440] Remove blogcin/ToTo (#2177) --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 0b392248964..5e2065c9228 100644 --- a/README.md +++ b/README.md @@ -1845,7 +1845,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. * [term-quiz](https://github.com/crazcalm/term-quiz) - Quizzes for your terminal. -* [toto](https://github.com/blogcin/ToTo) - Simple proxy server written in Go language, can be used together with browser. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. * [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. @@ -2014,4 +2013,4 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. -* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's \ No newline at end of file +* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's From 9a6dda85604eebae0e1f24b1e5fa7b29243530f1 Mon Sep 17 00:00:00 2001 From: Inhere Date: Thu, 18 Oct 2018 23:30:50 +0800 Subject: [PATCH 1363/3440] add package filter (#2174) package: [filter](https://github.com/gookit/filter) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5e2065c9228..e95c95ed736 100644 --- a/README.md +++ b/README.md @@ -1418,6 +1418,7 @@ 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. +* [filter](https://github.com/gookit/filter) - provide filtering, sanitizing, and conversion of Go data. * [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang * [fzf](https://github.com/junegunn/fzf) - Command-line fuzzy finder written in Go. * [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. From 81a2cc01f114ba0b8976345fd8dec5a3cf884d95 Mon Sep 17 00:00:00 2001 From: Andrey Yurchenkov Date: Thu, 18 Oct 2018 18:31:22 +0300 Subject: [PATCH 1364/3440] remove websysd/websysd (#2171) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e95c95ed736..69a3ec37de1 100644 --- a/README.md +++ b/README.md @@ -1849,7 +1849,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. * [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. -* [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart). * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). # Resources From 183fbebfc6466d4314382d7a4b7106e5f498a86b Mon Sep 17 00:00:00 2001 From: Hugo Carreira Date: Thu, 18 Oct 2018 21:59:11 -0300 Subject: [PATCH 1365/3440] Adding Go-Decent-Copy (#2168) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/hugocarreira/go-decent-copy - godoc.org: [![GoDoc](https://godoc.org/github.com/hugocarreira/go-decent-copy?status.svg)](https://godoc.org/github.com/hugocarreira/go-decent-copy) - goreportcard.com: [![Go Report Card](https://goreportcard.com/badge/github.com/hugocarreira/go-decent-copy)](https://goreportcard.com/report/github.com/hugocarreira/go-decent-copy) - coverage service link: [![codecov](https://codecov.io/gh/hugocarreira/go-decent-copy/branch/master/graph/badge.svg)](https://codecov.io/gh/hugocarreira/go-decent-copy) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 69a3ec37de1..0e19c7d46a4 100644 --- a/README.md +++ b/README.md @@ -536,6 +536,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. +* [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [pdfcpu](https://github.com/hhrutter/pdfcpu) - PDF processor. From d2f00ca489213ca788a3f753c1eb2512018c449d Mon Sep 17 00:00:00 2001 From: Andrey Yurchenkov Date: Fri, 19 Oct 2018 03:59:59 +0300 Subject: [PATCH 1366/3440] Remove zachlatta/postman (#2179) Closes #2178 No tests, Latest commit 74f941f on Feb 27, 2017, issues abandoned --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0e19c7d46a4..32fac69d53a 100644 --- a/README.md +++ b/README.md @@ -1836,7 +1836,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. * [Pipe](https://github.com/b3log/pipe) - A small and beautiful blogging platform. -* [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [rkt](https://github.com/coreos/rkt) - App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. From c8bf84b2d0acfef88d2de779d380a3b8b42c3e1f Mon Sep 17 00:00:00 2001 From: Babiv Sergey Date: Fri, 19 Oct 2018 05:31:50 +0300 Subject: [PATCH 1367/3440] xml2map (#2173) XML to MAP converter written Golang https://github.com/sbabiv/xml2map --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 32fac69d53a..ace556665e3 100644 --- a/README.md +++ b/README.md @@ -1668,7 +1668,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [xmlwriter](https://github.com/shabbyrobe/xmlwriter) - Procedural XML generation API based on libxml2's xmlwriter module. * [xpath](https://github.com/antchfx/xpath) - XPath package for Go. * [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. - +* [xml2map](https://github.com/sbabiv/xml2map) - XML to MAP converter written Golang # Tools *Go software and plugins.* From fc477db3efc5e41aa462d3a6846b526032e70f9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Mon, 22 Oct 2018 12:06:38 -0300 Subject: [PATCH 1368/3440] remove gostat (#2156) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index ace556665e3..d197e121c5b 100644 --- a/README.md +++ b/README.md @@ -1106,7 +1106,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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). * [gosl](https://github.com/cpmech/gosl) - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. -* [gostat](https://github.com/ematvey/gostat) - Statistics library for the go language. * [GoStats](https://github.com/OGFris/GoStats) - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. * [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. From 9d2287512ce6fa10896188776decfbf12ab2d453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Mon, 22 Oct 2018 12:07:24 -0300 Subject: [PATCH 1369/3440] remove gofrac (#2155) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d197e121c5b..44feb06d878 100644 --- a/README.md +++ b/README.md @@ -1100,7 +1100,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures -* [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. * [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. From 4e34ff88c3d28b2a0006a9467976ef4ca412c625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Mon, 22 Oct 2018 12:07:37 -0300 Subject: [PATCH 1370/3440] remove go.matrix (#2154) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 44feb06d878..80b36170206 100644 --- a/README.md +++ b/README.md @@ -1097,7 +1097,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures * [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. From 48cff5108ace7961bb58f2bbdd1c60e3038272cf Mon Sep 17 00:00:00 2001 From: Inhere Date: Thu, 25 Oct 2018 03:40:41 +0800 Subject: [PATCH 1371/3440] add package validate (#2187) package https://github.com/gookit/validate --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 80b36170206..208692aaeb6 100644 --- a/README.md +++ b/README.md @@ -1529,6 +1529,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. * [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. * [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. +* [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. * [validate](https://github.com/markbates/validate) - This package provides a framework for writing validations for Go applications. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. From b039afc4b5e027a2372b70e18bf833d4ca9ee8aa Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Thu, 25 Oct 2018 03:40:58 +0800 Subject: [PATCH 1372/3440] add a new repository of goroutine pool (#2183) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 208692aaeb6..7d9da80273b 100644 --- a/README.md +++ b/README.md @@ -632,6 +632,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for managing and working with Goroutines.* +* [ants](https://github.com/panjf2000/ants) - A high-performance goroutine pool for golang. * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. From 0e421017225564a2344977857951dffcd1749b96 Mon Sep 17 00:00:00 2001 From: zRedShift Date: Wed, 24 Oct 2018 22:41:10 +0300 Subject: [PATCH 1373/3440] Add mimemagic to the list (#2181) * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7d9da80273b..b23f2e1e714 100644 --- a/README.md +++ b/README.md @@ -1476,6 +1476,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [mimemagic](https://github.com/zRedShift/mimemagic) - Pure Go ultra performant MIME sniffing library/utility. * [minify](https://github.com/tdewolff/minify) - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats. * [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). * [mmake](https://github.com/tj/mmake) - Modern Make. From cc663eb2a5ae4e8e1b7c40b401f165f6d34dbe60 Mon Sep 17 00:00:00 2001 From: rocketlaunchr-cto <38447948+rocketlaunchr-cto@users.noreply.github.com> Date: Thu, 25 Oct 2018 06:41:48 +1100 Subject: [PATCH 1374/3440] added dataframe-go (#2165) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b23f2e1e714..89a98e10f6f 100644 --- a/README.md +++ b/README.md @@ -1092,6 +1092,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for Go for machine-learning and statistics (similar to pandas). * [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. From fa6515044407f98ae89fada75f486f2a8b908b30 Mon Sep 17 00:00:00 2001 From: Nap Joseph Calub Date: Sat, 27 Oct 2018 17:55:39 +0800 Subject: [PATCH 1375/3440] Used shields.io for the slack badge in the README file. Fixes #1751. (#2190) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 89a98e10f6f..f89ea21a7d0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Awesome Go -[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://camo.githubusercontent.com/984828c0b020357921853f59eaaa65aaee755542/68747470733a2f2f73332e65752d63656e7472616c2d312e616d617a6f6e6177732e636f6d2f6e6774756e612f6a6f696e2d75732d6f6e2d736c61636b2e706e67)](http://gophers.slack.com/messages/awesome) +[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 4434a853250c131065f40386c8d8ed516d70a353 Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Sat, 27 Oct 2018 18:05:12 +0300 Subject: [PATCH 1376/3440] Add ctxutil (#2193) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f89ea21a7d0..23795dfba66 100644 --- a/README.md +++ b/README.md @@ -1408,6 +1408,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. * [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. +* [ctxutil](https://github.com/posener/ctxutil) - A collection of utility functions for contexts. * [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. From 343e324a2829266cec304d9aaf197c4cdf200134 Mon Sep 17 00:00:00 2001 From: Max Chechel Date: Sat, 27 Oct 2018 18:12:08 +0300 Subject: [PATCH 1377/3440] Added link to GoWrap code generation tool (#2192) * Added link to minimock generator * Add github.com/hexdigest/prep * changed the ordering * added links to gounit tool and gounit-vim plugin * added link to gowrap code generation tool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23795dfba66..9033d9d584b 100644 --- a/README.md +++ b/README.md @@ -603,6 +603,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. * [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. * [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. +* [GoWrap](https://github.com/hexdigest/gowrap) - Generate decorators for Go interfaces using simple templates. * [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. * [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection. From e304af093b4e7a0dba635c5e32c2be95d828bd08 Mon Sep 17 00:00:00 2001 From: Gabriel Vasile Date: Mon, 29 Oct 2018 15:00:23 +0200 Subject: [PATCH 1378/3440] Add mimetype package (#2197) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9033d9d584b..e1b3bebfaac 100644 --- a/README.md +++ b/README.md @@ -1480,6 +1480,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [mimemagic](https://github.com/zRedShift/mimemagic) - Pure Go ultra performant MIME sniffing library/utility. +* [mimetype](https://github.com/gabriel-vasile/mimetype) - Package for MIME type detection based on magic numbers. * [minify](https://github.com/tdewolff/minify) - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats. * [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). * [mmake](https://github.com/tj/mmake) - Modern Make. From 65af021337b409f4ab39fde6e3435e87267adb41 Mon Sep 17 00:00:00 2001 From: Sean Chen <40845434+two@users.noreply.github.com> Date: Mon, 29 Oct 2018 21:01:33 +0800 Subject: [PATCH 1379/3440] add tspool package (#2198) * add two/tcp library * change project order * add tspool package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1b3bebfaac..20dee806393 100644 --- a/README.md +++ b/README.md @@ -1002,6 +1002,7 @@ 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. * [stun](https://github.com/go-rtc/stun) - Go implementation of RFC 5389 STUN protocol. * [tcp_server](https://github.com/firstrow/tcp_server) - Go library for building tcp servers faster. +* [tspool](https://github.com/two/tspool) - A TCP Library use worker pool to improve performance and protect your server. * [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. From 7b09d7522181a6e9191d7206d3856514aa91f70f Mon Sep 17 00:00:00 2001 From: Sergey Grebenshchikov Date: Tue, 6 Nov 2018 02:02:07 +0100 Subject: [PATCH 1380/3440] Add piecewiselinear (#2208) > A tiny library for linear interpolation. O(log(N)) per evaluation for N control points. Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/sgreben/piecewiselinear - godoc.org: https://godoc.org/github.com/sgreben/piecewiselinear - goreportcard.com: https://goreportcard.com/report/github.com/sgreben/piecewiselinear - coverage service link [![cover.run](https://cover.run/go/github.com/sgreben/piecewiselinear/.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fsgreben%2Fpiecewiselinear%2F) **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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20dee806393..65a687fdd7d 100644 --- a/README.md +++ b/README.md @@ -1113,6 +1113,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ode](https://github.com/ChristopherRabotin/ode) - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions. * [orb](https://github.com/paulmach/orb) - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support. * [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go. +* [piecewiselinear](https://github.com/sgreben/piecewiselinear) - Tiny linear interpolation library. * [PiHex](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi. * [sparse](https://github.com/james-bowman/sparse) - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. * [stats](https://github.com/montanaflynn/stats) - Statistics package with common functions missing from the Golang standard library. From 1720821dbc4baa7984b0aaf54146e52354ea7e48 Mon Sep 17 00:00:00 2001 From: pj Date: Tue, 6 Nov 2018 12:02:42 +1100 Subject: [PATCH 1381/3440] Add article: Canceling MySQL in Go (#2196) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: N/A - godoc.org: N/A - goreportcard.com: N/A - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` 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:** - [ x] I have added my package in alphabetical order. - [x ] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 65a687fdd7d..f004dcaac61 100644 --- a/README.md +++ b/README.md @@ -2008,6 +2008,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. * [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. +* [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries * [Games With Go](http://gameswithgo.org/) - A video series teaching programming and game development. * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. From 8ed2f94d20c2e721af11e172279d77cd2af1a224 Mon Sep 17 00:00:00 2001 From: Radoslaw Wesolowski Date: Tue, 6 Nov 2018 02:03:47 +0100 Subject: [PATCH 1382/3440] Coinpaprika.com api client in go (#2191) Go client library for interacting with Coinpaprika's API #hactoberfest #coinpaprika **Building link**: https://travis-ci.org/coinpaprika/coinpaprika-api-go-client **Documentation**: https://godoc.org/github.com/coinpaprika/coinpaprika-api-go-client **Reportcard**: https://goreportcard.com/report/github.com/coinpaprika/coinpaprika-api-go-client Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: - godoc.org: - goreportcard.com: - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f004dcaac61..ca106b56e6c 100644 --- a/README.md +++ b/README.md @@ -1328,6 +1328,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [codeship-go](https://github.com/codeship/codeship-go) - Go client library for interacting with Codeship's API v2. +* [coinpaprika-go](https://github.com/coinpaprika/coinpaprika-api-go-client) - Go client library for interacting with Coinpaprika's API * [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API. * [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API. From 834b293d5de67d582d42cd022ee194737e5dbe5e Mon Sep 17 00:00:00 2001 From: Nicolas Embriz Date: Tue, 6 Nov 2018 02:04:11 +0100 Subject: [PATCH 1383/3440] moved violetear from frameworks to routers (#2209) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: - godoc.org: - goreportcard.com: - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [ ] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ca106b56e6c..a61b1149c5f 100644 --- a/README.md +++ b/README.md @@ -1602,7 +1602,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc). * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. @@ -1658,6 +1657,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [violetear](https://github.com/nbari/violetear) - Go HTTP router. * [xmux](https://github.com/rs/xmux) - High performance muxer based on `httprouter` with `net/context` support. * [xujiajun/gorouter](https://github.com/xujiajun/gorouter) - A simple and fast HTTP router for Go. * [zeus](https://github.com/daryl/zeus) - Very simple and fast HTTP router for Go. From a3e396a756aacf1ad99f4ff801f6ab6aa304d592 Mon Sep 17 00:00:00 2001 From: Hisham waleed karam Date: Tue, 6 Nov 2018 03:05:55 +0200 Subject: [PATCH 1384/3440] add gismanager (#2204) Publish Your GIS Data(Vector Data) to PostGIS and Geoserver **Please provide package links to:** - github.com repo:https://github.com/hishamkaram/gismanager - godoc.org: https://godoc.org/github.com/hishamkaram/gismanager - goreportcard.com: https://goreportcard.com/report/github.com/hishamkaram/gismanager - coverage service link: [![Coverage Status](https://coveralls.io/repos/github/hishamkaram/gismanager/badge.svg?branch=master&service=github)](https://coveralls.io/github/hishamkaram/gismanager?branch=master&service=github) 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:** - [X] I have added my package in alphabetical order. - [X] I have an appropriate description with correct grammar. - [X] I know that this package was not listed before. - [X] I have added godoc link to the repo and to my pull request. - [X] I have added coverage service link to the repo and to my pull request. - [X] I have added goreportcard link to the repo and to my pull request. - [X] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a61b1149c5f..1ce186ccafb 100644 --- a/README.md +++ b/README.md @@ -614,6 +614,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. * [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. +* [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver * [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. * [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. * [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. From afc210e61b176999c4f5f9f94c858e1bb7af1b98 Mon Sep 17 00:00:00 2001 From: Matthew Borders Date: Tue, 6 Nov 2018 17:03:52 -0600 Subject: [PATCH 1385/3440] Add artifex (#2212) - github.com repo: https://github.com/borderstech/artifex - godoc.org: http://godoc.org/github.com/borderstech/artifex - goreportcard.com: https://goreportcard.com/report/github.com/borderstech/artifex - coverage service link: https://codecov.io/gh/borderstech/artifex --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1ce186ccafb..e63b00cbdc2 100644 --- a/README.md +++ b/README.md @@ -635,6 +635,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for managing and working with Goroutines.* * [ants](https://github.com/panjf2000/ants) - A high-performance goroutine pool for golang. +* [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. From dc5414bae3b7100a031b2ebd13407df6cf16ed8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E4=B8=96=E6=88=90?= Date: Wed, 7 Nov 2018 07:04:27 +0800 Subject: [PATCH 1386/3440] Add image2ascii (#2202) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/qeesung/image2ascii - godoc.org: https://godoc.org/github.com/qeesung/image2ascii - goreportcard.com: https://goreportcard.com/report/github.com/qeesung/image2ascii - coverage service link: https://coveralls.io/github/qeesung/image2ascii?branch=master 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e63b00cbdc2..01c3015d91a 100644 --- a/README.md +++ b/README.md @@ -704,6 +704,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gocv](https://github.com/hybridgroup/gocv) - Go package for computer vision using OpenCV 3.3+. * [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. * [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. +* [image2ascii](https://github.com/qeesung/image2ascii) - Convert image to ASCII. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. * [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. * [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. From e829d7c7d7f78b9aa8a69d258b6e6d958a449518 Mon Sep 17 00:00:00 2001 From: Ethan Chiu <17chiue@gmail.com> Date: Wed, 7 Nov 2018 14:01:22 -0800 Subject: [PATCH 1387/3440] Added JSON-to-Go under Go Tools (#2199) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 01c3015d91a..3e4be287330 100644 --- a/README.md +++ b/README.md @@ -1748,6 +1748,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. +* [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. From f4807d0e50bd44ac93412f951a43bce67a0acaf6 Mon Sep 17 00:00:00 2001 From: Matthew Borders Date: Fri, 9 Nov 2018 10:07:53 -0600 Subject: [PATCH 1388/3440] Add logmatic (#2213) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3e4be287330..30c62e36ca4 100644 --- a/README.md +++ b/README.md @@ -761,6 +761,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [logmatic](https://github.com/borderstech/logmatic) - Colorized logger for Golang with dynamic log level configuration * [logo](https://github.com/mbndr/logo) - Golang logger to different configurable writers. * [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/). From 07578da0c25c8595f8e6b7d7b905e19cd264af43 Mon Sep 17 00:00:00 2001 From: ceriath Date: Fri, 9 Nov 2018 23:21:49 +0100 Subject: [PATCH 1389/3440] Require english documentation (#2218) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8294949f899..eb65a4a935a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -31,7 +31,7 @@ To be on the list, project repositories should adhere to these quality standards - Regular, recent commits - Or, for finished projects, issues and pull requests are responded to - Stable or progressing toward stable -- Thoroughly documented (README, godoc comments, etc.) +- Thoroughly documented (README, godoc comments, etc.) in english language, so everyone is able to understand the project's intention and how it works - Tests, where practical. If the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. **Notice**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results. From bd2f8ae9ffb7c02190adf4ffdca362079eec8037 Mon Sep 17 00:00:00 2001 From: ceriath Date: Fri, 9 Nov 2018 23:22:51 +0100 Subject: [PATCH 1390/3440] remove c6 (#2217) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 30c62e36ca4..8ddc904e0da 100644 --- a/README.md +++ b/README.md @@ -258,7 +258,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for preprocessing CSS files.* -* [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. From 69388783fe4cb45404b257244eb8675ada38ea3c Mon Sep 17 00:00:00 2001 From: An Long Date: Sun, 11 Nov 2018 18:18:09 +0800 Subject: [PATCH 1391/3440] Add vox (#2220) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ddc904e0da..d6d9fb246a5 100644 --- a/README.md +++ b/README.md @@ -1605,6 +1605,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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). +* [vox](https://github.com/aisk/vox) - A golang web framework for humans, inspired by Koa heavily. * [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc). * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. From f2174f7abf9c0fc6f0ee63644753f349a93fc4b7 Mon Sep 17 00:00:00 2001 From: Lex Sapkota Date: Mon, 12 Nov 2018 02:51:20 +1100 Subject: [PATCH 1392/3440] Add Go Playground for iOS (#2221) Go Playground for iPhone / iPad. It's free and comes with truckload of samples. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d6d9fb246a5..a8733d77791 100644 --- a/README.md +++ b/README.md @@ -2019,6 +2019,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +* [Go Playground for iOS](https://itunes.apple.com/us/app/go-playground/id1437518275?ls=1&mt=8) - Interactively edit & play Go snippets on your mobile device * [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. From 7e0db197621c82ab5622adc9972046206acd92f4 Mon Sep 17 00:00:00 2001 From: ceriath Date: Wed, 14 Nov 2018 10:56:54 +0100 Subject: [PATCH 1393/3440] Remove go.uuid (#2224) go.uuid is currently the most starred uuid repo for go. However, it is unmaintained and contains at least one critical security, which has been fixed by PR but took nearly half a year to be merged, since the owner is not really active (satori/go.uuid#75). There is an actively maintained fork at https://github.com/gofrs/uuid which is already listed here too. go.uuid should be removed. See satori/go.uuid#75 satori/go.uuid#73 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a8733d77791..6a1e9630431 100644 --- a/README.md +++ b/README.md @@ -882,7 +882,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-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. * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. * [gommit](https://github.com/antham/gommit) - Analyze git commit messages to ensure they follow defined patterns From 7ba663fee3039b0269f281b3390a1a6d106a07e2 Mon Sep 17 00:00:00 2001 From: ceriath Date: Wed, 14 Nov 2018 10:57:11 +0100 Subject: [PATCH 1394/3440] Remove blas (#2223) No docs, no examples, no tests as stated in #2043 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6a1e9630431..d6cd87cbf9a 100644 --- a/README.md +++ b/README.md @@ -1094,7 +1094,6 @@ 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). * [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. * [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for Go for machine-learning and statistics (similar to pandas). * [evaler](https://github.com/soniah/evaler) - Simple floating point arithmetic expression evaluator. From 00e42968b763e9abd499f89365f2b0f76b08543f Mon Sep 17 00:00:00 2001 From: ceriath Date: Wed, 14 Nov 2018 19:55:43 +0100 Subject: [PATCH 1395/3440] Remove hoisie/redis (#2225) No documentation https://godoc.org/github.com/hoisie/redis Bad goreportcard https://goreportcard.com/report/github.com/hoisie/redis Definitely not awesome. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d6cd87cbf9a..2a403284bb5 100644 --- a/README.md +++ b/README.md @@ -424,7 +424,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang. * [redigo](https://github.com/gomodule/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/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. From 7e11dbf07322e99c97fe4d2cf23ee1beb40b19a8 Mon Sep 17 00:00:00 2001 From: Miki Tebeka Date: Wed, 14 Nov 2018 22:24:45 +0000 Subject: [PATCH 1396/3440] GopherCon Israel (#2228) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2a403284bb5..ee38ae7612e 100644 --- a/README.md +++ b/README.md @@ -1894,6 +1894,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR * [GopherCon Europe](https://gophercon.is/) - Reykjavik, Iceland * [GopherCon India](https://www.gophercon.in/) - Pune, India +* [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel * [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia * [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore * [GothamGo](http://gothamgo.com/) - New York City, USA From 76aadfaf0e0ea04997b2c3f01d7499d4788d77e8 Mon Sep 17 00:00:00 2001 From: ceriath Date: Fri, 16 Nov 2018 13:17:41 +0100 Subject: [PATCH 1397/3440] Change osin URL (#2226) While searching an oauth framework, i found osin pointing to https://github.com/RangelReale/osin which has been archived. It is a fork of https://github.com/openshift/osin which is even with the fork, so the link should be changed. However, it does not seem very active at all. So maybe it should be removed entirely? I am interested in other opinions here. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee38ae7612e..8f26c306ac1 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. -* [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. +* [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. * [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO) * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [rbac](https://github.com/zpatrick/rbac) - Minimalistic RBAC package for Go applications. From e04252ab1b5860dc5650f0914758fd4e59329e32 Mon Sep 17 00:00:00 2001 From: Edwin Date: Fri, 16 Nov 2018 20:20:13 +0800 Subject: [PATCH 1398/3440] add doublejump (#2219) * add doublejump * adjust the order of doublejump --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8f26c306ac1..1b3acd1aec8 100644 --- a/README.md +++ b/README.md @@ -463,6 +463,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. * [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. * [digota](https://github.com/digota/digota) - grpc ecommerce microservice. +* [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash. * [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. * [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. * [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package. From 69201c6e2c9399e1c0ee81380e089a3afaccaefb Mon Sep 17 00:00:00 2001 From: Ryan Koesters Date: Fri, 16 Nov 2018 06:20:29 -0600 Subject: [PATCH 1399/3440] Add github.com/rkoesters/xdg (#2227) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1b3acd1aec8..dac1281882b 100644 --- a/README.md +++ b/README.md @@ -914,6 +914,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and output 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. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. +* [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go. * [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. From c846b3f4b3d5ce4b9ba77be60ba767ce4dddac3f Mon Sep 17 00:00:00 2001 From: Tan Quang Ngo Date: Fri, 16 Nov 2018 23:53:11 +0800 Subject: [PATCH 1400/3440] Add go-m3u8 (#2215) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dac1281882b..0031f0da029 100644 --- a/README.md +++ b/README.md @@ -1560,6 +1560,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. * [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). * [go-astits](https://github.com/asticode/go-astits) - Parse and demux MPEG Transport Streams (.ts) natively in GO. +* [go-m3u8](https://github.com/quangngotan95/go-m3u8) - Parser and generator library for Apple m3u8 playlists * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. From 2118bcf6e2a215a546d011649f403a52906d13d7 Mon Sep 17 00:00:00 2001 From: Strahinja Date: Fri, 16 Nov 2018 16:54:14 +0100 Subject: [PATCH 1401/3440] Add Leprechaun (#2206) Leprechaun is tool where you can schedule your recurring tasks to be performed over and over. It supports cron, webhooks and classic job scheduling **Please provide package links to:** - github.com repo: [here](https://github.com/kilgaloon/leprechaun) - godoc.org: [here](https://godoc.org/github.com/kilgaloon/leprechaun) - goreportcard.com: [here](https://goreportcard.com/report/github.com/Kilgaloon/Leprechaun) - coverage service link [![codecov](https://codecov.io/gh/Kilgaloon/Leprechaun/branch/master/graph/badge.svg)](https://codecov.io/gh/Kilgaloon/Leprechaun) **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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0031f0da029..a894407af80 100644 --- a/README.md +++ b/README.md @@ -1481,6 +1481,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. +* [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling * [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. From 9400cb9757b484f9177fd660052b63c2bfd69ff7 Mon Sep 17 00:00:00 2001 From: Navid Date: Sat, 17 Nov 2018 12:40:30 +0330 Subject: [PATCH 1402/3440] Add sslice package (#2232) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a894407af80..c9a19cb4dc5 100644 --- a/README.md +++ b/README.md @@ -1521,6 +1521,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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. +* [sslice](https://github.com/yaa110/sslice) - Create a slice which is always sorted. * [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. * [Task](https://github.com/go-task/task) - simple "Make" alternative. From b2b105497df135bfd0589cb7fc5b962ea44d01cb Mon Sep 17 00:00:00 2001 From: Seb C Date: Sat, 17 Nov 2018 17:09:48 +0000 Subject: [PATCH 1403/3440] [fuego] Added fuego (#2233) --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c9a19cb4dc5..7549609d743 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Files](#files) - [Financial](#financial) - [Forms](#forms) + - [Functional](#functional) - [Game Development](#game-development) - [Generation and Generics](#generation-and-generics) - [Geographic](#geographic) @@ -569,6 +570,14 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. * [nosurf](https://github.com/justinas/nosurf) - CSRF protection middleware for Go. +## Functional + +*Packages to support functional programming in Go.* + +* [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang +* [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go +* [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. + ## Game Development *Awesome game development libraries.* @@ -1426,7 +1435,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [filter](https://github.com/gookit/filter) - provide filtering, sanitizing, and conversion of Go data. -* [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang * [fzf](https://github.com/junegunn/fzf) - Command-line fuzzy finder written in Go. * [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. @@ -1446,7 +1454,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-torch](https://github.com/uber/go-torch) - Stochastic flame graph profiler for Go programs. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. -* [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. From 94a707553792c430524e84d7ddbe5e1d9a96c881 Mon Sep 17 00:00:00 2001 From: Joshua Wickings Date: Mon, 19 Nov 2018 03:44:03 -0500 Subject: [PATCH 1404/3440] Add gofuckyourself (#2234) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7549609d743..479a6cf8419 100644 --- a/README.md +++ b/README.md @@ -1319,6 +1319,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). * Utility + * [gofuckyourself](https://github.com/JoshuaDoes/gofuckyourself) - A sanitization-based swear filter for Go. * [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. From cb753262e9bc3931fa5c4856da71ca715d7468a4 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Wed, 21 Nov 2018 01:19:32 +0100 Subject: [PATCH 1405/3440] Add me to maintainers list (#2238) --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index e4ab3d21598..f0d97201dd9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8,3 +8,4 @@ Felipe Oliveira (@felipeweb) Bo-Yi Wu (@appleboy) Cássio Botaro (@cassiobotaro) Jessica Temporal (@jtemporal) +Ceriath (@ceriath) From 4b31c788d46049e8f63dac2bdca45fe55b00373a Mon Sep 17 00:00:00 2001 From: Ceriath Date: Wed, 21 Nov 2018 01:21:37 +0100 Subject: [PATCH 1406/3440] Http clients (#2237) * Remove gorequest This does not really meet the required quality https://goreportcard.com/report/github.com/parnurzeal/gorequest * Add HTTP-Clients category and sling * Add grequests * I suck at pressing ctrl+f --- README.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 479a6cf8419..ca859b82d83 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Miscellaneous](#miscellaneous) - [Natural Language Processing](#natural-language-processing) - [Networking](#networking) + - [HTTP Clients](#http-clients) - [OpenGL](#opengl) - [ORM](#orm) - [Package Management](#package-management) @@ -475,7 +476,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. -* [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. * [hprose](https://github.com/hprose/hprose-golang) - Very newbility RPC Library, support 25+ languages now. * [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. * [jsonrpc](https://github.com/osamingo/jsonrpc) - The jsonrpc package helps implement of JSON-RPC 2.0. @@ -1020,6 +1020,18 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +### HTTP Clients + +*Libraries for making HTTP requests* + +* [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. +* [goreq](https://github.com/smallnest/goreq) - Enhanced simplified HTTP client based on gorequest. +* [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library +* [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. +* [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. +* [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. +* [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. + ## OpenGL *Libraries for using OpenGL in Go.* @@ -1439,7 +1451,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fzf](https://github.com/junegunn/fzf) - Command-line fuzzy finder written in Go. * [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. * [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. * [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. @@ -1468,13 +1479,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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. * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. * [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. @@ -1508,7 +1516,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. * [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. @@ -1524,9 +1531,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. -* [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. -* [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [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. * [sslice](https://github.com/yaa110/sslice) - Create a slice which is always sorted. From c923f966c47b8d2403e148235c568d3c81f35d14 Mon Sep 17 00:00:00 2001 From: Tommy Situ Date: Wed, 21 Nov 2018 00:22:14 +0000 Subject: [PATCH 1407/3440] Add Hoverfly API simulation tool (#2214) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ca859b82d83..033a1b96b5d 100644 --- a/README.md +++ b/README.md @@ -1273,6 +1273,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [hoverfly](https://github.com/SpectoLabs/hoverfly) - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI. * [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. From 45bc14fcc3dae9cccc0cf68f7926b4876f6d3b9d Mon Sep 17 00:00:00 2001 From: Zaba505 Date: Tue, 20 Nov 2018 19:25:31 -0500 Subject: [PATCH 1408/3440] Update README.md (#2236) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 033a1b96b5d..795f04e3e7e 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. * [readline](https://github.com/chzyer/readline) - Pure golang implementation that provides most features in GNU-Readline under MIT license. +* [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more. * [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. * [strumt](https://github.com/antham/strumt) - Library to create prompt chain. * [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. From 75481bf4faafdb5c2b94e22d87e1b4b7efaa4a5b Mon Sep 17 00:00:00 2001 From: Mrinal Wadhwa Date: Tue, 20 Nov 2018 16:25:46 -0800 Subject: [PATCH 1409/3440] Add did (#2235) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 795f04e3e7e..4383dee2722 100644 --- a/README.md +++ b/README.md @@ -1302,6 +1302,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers * [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go * [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. + * [did](https://github.com/ockam-network/did) - DID (Decentralized Identifiers) Parser and Stringer in Go. * [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. * [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/). From a179518a517c52415bcd6bbcad07be0f52e2d762 Mon Sep 17 00:00:00 2001 From: Peter Ivanov Date: Wed, 21 Nov 2018 03:26:01 +0300 Subject: [PATCH 1410/3440] Add errorx (#2231) * Add errorx * fix errorx description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4383dee2722..5994067bc16 100644 --- a/README.md +++ b/README.md @@ -883,6 +883,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. +* [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [ghorg](https://github.com/gabrie30/ghorg) - Clone all repos from a GitHub org into a single directory. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. From 1ccbe9b7f5b713f34b5ea01a02c846adc2e51349 Mon Sep 17 00:00:00 2001 From: jie8357IOII Date: Thu, 22 Nov 2018 01:15:03 +0800 Subject: [PATCH 1411/3440] Remove Florest, no longer exist (#2239) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 5994067bc16..0a1d8e3c246 100644 --- a/README.md +++ b/README.md @@ -1598,7 +1598,6 @@ 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. * [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. From 5feb4b722c627ad8fb07d485844be42b95605de8 Mon Sep 17 00:00:00 2001 From: Nikola Trubitsyn Date: Mon, 26 Nov 2018 15:23:08 +0300 Subject: [PATCH 1412/3440] Add go-zero-width (#2242) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0a1d8e3c246..9c9dee9a90d 100644 --- a/README.md +++ b/README.md @@ -1316,6 +1316,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. * [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. From 080624eae8aab9f12f4a30b061067cccd9515ebc Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Wed, 28 Nov 2018 00:56:55 +0900 Subject: [PATCH 1413/3440] Deprecate Go-AWS-Auth (#2243) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9c9dee9a90d..1cd9a4d5ac3 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [branca](https://github.com/hako/branca) - Golang implementation of Branca Tokens. * [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. * [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. -* [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - Standalone, specification-compliant, OAuth2 server written in Golang. * [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. From d5d3b1de25382419b244f38dda33b52f0f90a331 Mon Sep 17 00:00:00 2001 From: Amir Mofasser Date: Tue, 27 Nov 2018 19:58:47 +0100 Subject: [PATCH 1414/3440] Add huego. Updated README (#2241) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1cd9a4d5ac3..1d6a4f1ac27 100644 --- a/README.md +++ b/README.md @@ -740,6 +740,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [flogo](https://github.com/tibcosoftware/flogo) - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. * [gatt](https://github.com/paypal/gatt) - Gatt is a Go package for building Bluetooth Low Energy peripherals. * [gobot](https://github.com/hybridgroup/gobot/) - Gobot is a framework for robotics, physical computing, and the Internet of Things. +* [huego](https://github.com/amimof/huego) - An extensive Philips Hue client library for Go. * [iot](https://github.com/vaelen/iot/) - IoT is a simple framework for implementing a Google IoT Core device. * [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. * [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. From b15c511d9511b8a26b059ed97075a0684b947095 Mon Sep 17 00:00:00 2001 From: Masaaki Goshima Date: Mon, 3 Dec 2018 18:16:43 +0900 Subject: [PATCH 1415/3440] Add Octillery (#2244) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1d6a4f1ac27..52e7e8797e4 100644 --- a/README.md +++ b/README.md @@ -363,6 +363,7 @@ 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. Supports statement and row based replication. +* [octillery](https://github.com/knocknote/octillery) - Go package for sharding databases ( Supports every ORM or raw SQL ). * [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer. * [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. * [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code. From c4da6013789829f2b904a3c13d2660b012baa7ef Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Mon, 3 Dec 2018 20:27:35 +0900 Subject: [PATCH 1416/3440] Remove github.com/GeertJohan/yubigo (#2247) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 52e7e8797e4..9b8498eca84 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. * [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. * [signedvalue](https://github.com/sashka/signedvalue) - Signed and timestamped strings compatible with [Tornado's](https://github.com/tornadoweb/tornado) `create_signed_value`, `decode_signed_value`, and therefore `set_secure_cookie` and `get_secure_cookie`. -* [yubigo](https://github.com/GeertJohan/yubigo) - Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. ## Command Line From 86ba34418c29c69773e3dc3211a8154f9ce9e240 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Mon, 3 Dec 2018 20:27:52 +0900 Subject: [PATCH 1417/3440] Remove github.com/rcrowley/go-metric (#2246) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9b8498eca84..632082b39e6 100644 --- a/README.md +++ b/README.md @@ -1795,7 +1795,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts * [gaia](https://github.com/gaia-pipeline/gaia) - Build powerful pipelines in any programming language. * [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. -* [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. From dc60dafdece4a1eb63649a4249290b9736a9a3ff Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Mon, 3 Dec 2018 16:28:18 +0300 Subject: [PATCH 1418/3440] Add a link to fastcache (#2249) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 632082b39e6..4378fd984ba 100644 --- a/README.md +++ b/README.md @@ -321,6 +321,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. +* [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. * [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. From f88e596666d82ab9aef2c7475971a3bd179ab3c7 Mon Sep 17 00:00:00 2001 From: Jason Kingsbury Date: Wed, 5 Dec 2018 01:54:50 +0000 Subject: [PATCH 1419/3440] Added iso601 (#2250) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4378fd984ba..32bcf9d2dc8 100644 --- a/README.md +++ b/README.md @@ -451,6 +451,7 @@ 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). * [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. * [goweek](https://github.com/grsmv/goweek) - Library for working with week entity in golang. +* [iso8601](https://github.com/relvacode/iso8601) - Efficiently parse ISO8601 date-times without regex. * [Kair](https://github.com/GuilhermeCaruso/Kair) - Date and Time - Golang Formatting Library. * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. * [NullTime](https://github.com/kirillDanshin/nulltime) - Nullable `time.Time`. From 3479cae32c0e0bb1dd371a2764c930d317e4d92c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E4=BD=B3=E5=86=9B?= Date: Wed, 5 Dec 2018 19:44:20 +0800 Subject: [PATCH 1420/3440] Remove mgutz/dat (#2251) * No PR reviews * last Commits on Mar 28, 2017 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 32bcf9d2dc8..3be4ce5d468 100644 --- a/README.md +++ b/README.md @@ -373,7 +373,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *SQL query builder, libraries for building and using SQL.* -* [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 them with ease. * [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder. * [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. From 3d9bfbd3fe76112f28aa59430a553c2c20e400b5 Mon Sep 17 00:00:00 2001 From: David Pinheiro Date: Thu, 6 Dec 2018 05:24:48 -0800 Subject: [PATCH 1421/3440] Add mole (#2210) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3be4ce5d468..c4e9c7d5b16 100644 --- a/README.md +++ b/README.md @@ -1513,6 +1513,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). * [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. +* [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. * [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. From e852c62b1daf344e4717b4bc431c7f0df4de6dd7 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:26:12 +0900 Subject: [PATCH 1422/3440] Deprecate github.com/FiloSottile/gvt (#2256) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c4e9c7d5b16..23b61f334d6 100644 --- a/README.md +++ b/README.md @@ -1086,7 +1086,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. From dca628a92ed4320a1cf746573afc8055185cf03e Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:26:46 +0900 Subject: [PATCH 1423/3440] Deprecate github.com/sevki/graphql (#2257) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 23b61f334d6..0e453a25dc9 100644 --- a/README.md +++ b/README.md @@ -1094,7 +1094,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. -* [graphql](https://github.com/sevki/graphql) - GraphQL implementation in go. * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. * [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. From 39b19a91343cddc2969854302d53965c9338ea63 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:27:15 +0900 Subject: [PATCH 1424/3440] Deprecate github.com/gonum/matrix (#2258) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0e453a25dc9..c77f160536b 100644 --- a/README.md +++ b/README.md @@ -1128,7 +1128,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gocomplex](https://github.com/varver/gocomplex) - Complex number library for the Go programming language. * [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures * [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). * [gosl](https://github.com/cpmech/gosl) - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. From 83b7ec95e17d3ffba61b4f394f061c7b74cf44d6 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:27:43 +0900 Subject: [PATCH 1425/3440] Deprecate github.com/fatih/structs (#2259) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c77f160536b..9852a90a250 100644 --- a/README.md +++ b/README.md @@ -1182,7 +1182,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. -* [structs](https://github.com/fatih/structs) - Library with support for converting structs to maps, struct keys/values to slices, and more. ## Server Applications From d14d3f8cae79ed0fef9cb9a473950ed4bba8af63 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:29:03 +0900 Subject: [PATCH 1426/3440] Deprecate github.com/toby3d/go-telegraph (#2260) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9852a90a250..5078fe1da8a 100644 --- a/README.md +++ b/README.md @@ -1373,7 +1373,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-myanimelist](https://github.com/nstratos/go-myanimelist) - Go client library for accessing the [MyAnimeList API](http://myanimelist.net/modules.php?go=api). * [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. * [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. -* [go-telegraph](https://github.com/toby3d/go-telegraph) - Telegraph publishing platform API client. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitch](https://github.com/knspriggs/go-twitch) - Go client for interacting with the Twitch v3 API. From b5d755b88b7442b3b229f554bace454de4c9f8d0 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:29:24 +0900 Subject: [PATCH 1427/3440] Deprecate github.com/mitchellh/goamz (#2261) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 5078fe1da8a..66d76f0f8fe 100644 --- a/README.md +++ b/README.md @@ -1379,7 +1379,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. -* [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. * [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - Go MusicBrainz WS2 client library. * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. From 72f588f14c728df0bf83379470770d8a8a508e89 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:29:50 +0900 Subject: [PATCH 1428/3440] Deprecate github.com/franela/goreq (#2262) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 66d76f0f8fe..861b8a3325f 100644 --- a/README.md +++ b/README.md @@ -1478,7 +1478,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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. * [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. From 579671cf936f2fc114d4b52fefd8b96614172be6 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:30:17 +0900 Subject: [PATCH 1429/3440] Deprecate github.com/facebookgo/httpcontrol (#2263) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 861b8a3325f..a96e02555ec 100644 --- a/README.md +++ b/README.md @@ -1485,7 +1485,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. * [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [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. From 2744c5d23bb5d1ab9dd1861a56989f238328f0e6 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:31:14 +0900 Subject: [PATCH 1430/3440] Deprecate github.com/markbates/validate (#2264) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a96e02555ec..ae2214cadc0 100644 --- a/README.md +++ b/README.md @@ -1555,7 +1555,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. * [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. * [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. -* [validate](https://github.com/markbates/validate) - This package provides a framework for writing validations for Go applications. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. ## Version Control From 12a54d41195378d7cbecb402f178e461ab7b8585 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:32:10 +0900 Subject: [PATCH 1431/3440] Deprecate github.com/codehack/go-relax (#2265) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index ae2214cadc0..b25befdf55f 100644 --- a/README.md +++ b/README.md @@ -1596,7 +1596,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [go-json-rest](https://github.com/ant0ine/go-json-rest) - Quick and easy way to setup a RESTful JSON API. -* [go-relax](https://github.com/codehack/go-relax) - Framework of pluggable components to build RESTful API's. * [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. * [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis. * [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. From bd5237bddbf13e213b5aa047c75a92762b4aef5b Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:32:43 +0900 Subject: [PATCH 1432/3440] Deprecate github.com/volatile/core (#2266) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b25befdf55f..dacdf94f23d 100644 --- a/README.md +++ b/README.md @@ -1648,7 +1648,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [renderer](https://github.com/thedevsaddam/renderer) - Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go. * [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 From baf22b97f98f77a5d3bfd354daa08c08a40ac290 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:34:52 +0900 Subject: [PATCH 1433/3440] Deprecate github.com/imdario/medeina (#2267) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index dacdf94f23d..93e04ebfad0 100644 --- a/README.md +++ b/README.md @@ -1664,7 +1664,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httprouter](https://github.com/julienschmidt/httprouter) - High performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. * [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. -* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. * [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. From 75165e69eef18d3981a2b621492e856315cd7b42 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:36:21 +0900 Subject: [PATCH 1434/3440] Deprecate github.com/daryl/zeus (#2268) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 93e04ebfad0..22493afcb29 100644 --- a/README.md +++ b/README.md @@ -1673,7 +1673,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [violetear](https://github.com/nbari/violetear) - Go HTTP router. * [xmux](https://github.com/rs/xmux) - High performance muxer based on `httprouter` with `net/context` support. * [xujiajun/gorouter](https://github.com/xujiajun/gorouter) - A simple and fast HTTP router for Go. -* [zeus](https://github.com/daryl/zeus) - Very simple and fast HTTP router for Go. ## Windows From 040bcde1c213803327277f005cd3e106d7ad0e84 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:40:03 +0900 Subject: [PATCH 1435/3440] Deprecate github.com/mvdan/interfacer (#2269) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 22493afcb29..acad666622d 100644 --- a/README.md +++ b/README.md @@ -1712,7 +1712,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [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. * [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. * [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#. From c833717a5f467c8d41e3640a534faa89008539e5 Mon Sep 17 00:00:00 2001 From: Horie Issei Date: Thu, 6 Dec 2018 22:40:45 +0900 Subject: [PATCH 1436/3440] Deprecate github.com/GoClipse/goclipse (#2270) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index acad666622d..47d60e05966 100644 --- a/README.md +++ b/README.md @@ -1726,7 +1726,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-language-server](https://github.com/theia-ide/go-language-server) - A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol. * [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. -* [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 3 providing code completion and other IDE-like features. * [gounit-vim](https://github.com/hexdigest/gounit-vim) - Vim plugin for generating Go tests based on the function's or method's signature. From 855bedb792af9a400abad318ac2fdca18d797d63 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Thu, 6 Dec 2018 15:05:06 +0100 Subject: [PATCH 1437/3440] Add gonum (#2273) * Add gonum * add period --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 47d60e05966..3134d242f48 100644 --- a/README.md +++ b/README.md @@ -1126,8 +1126,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [gocomplex](https://github.com/varver/gocomplex) - Complex number library for the Go programming language. -* [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures +* [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures. * [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. +* [gonum](https://github.com/gonum/gonum) - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. * [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). * [gosl](https://github.com/cpmech/gosl) - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. From f18e07d8e5b78fe32434248f82662cda2d0af83b Mon Sep 17 00:00:00 2001 From: Ceriath Date: Thu, 6 Dec 2018 15:05:32 +0100 Subject: [PATCH 1438/3440] Update validate (#2271) * Update validate package * accidentally removed a word, add it again --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3134d242f48..6ff8b243082 100644 --- a/README.md +++ b/README.md @@ -1556,6 +1556,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. * [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. * [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. +* [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. ## Version Control From 3cda5100d9230f77e1c23151ce94a3d38852ae9e Mon Sep 17 00:00:00 2001 From: Ceriath Date: Thu, 6 Dec 2018 15:05:44 +0100 Subject: [PATCH 1439/3440] Update go-telegraph (#2272) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6ff8b243082..053876a1064 100644 --- a/README.md +++ b/README.md @@ -1374,6 +1374,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-myanimelist](https://github.com/nstratos/go-myanimelist) - Go client library for accessing the [MyAnimeList API](http://myanimelist.net/modules.php?go=api). * [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. * [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. +* [go-telegraph](https://gitlab.com/toby3d/telegraph) - Telegraph publishing platform API client. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitch](https://github.com/knspriggs/go-twitch) - Go client for interacting with the Twitch v3 API. From e6730e3e142630aa39b2784c7213e20dc3803d02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E4=BD=B3=E5=86=9B?= Date: Thu, 6 Dec 2018 22:06:54 +0800 Subject: [PATCH 1440/3440] Remove https://github.com/bmizerany/pat (#2252) * Commits on Aug 15, 2017 * PR No reviews --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 053876a1064..804f8ef6a54 100644 --- a/README.md +++ b/README.md @@ -1669,7 +1669,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. * [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. * [vestigo](https://github.com/husobee/vestigo) - Performant, stand-alone, HTTP compliant URL Router for go web applications. From b8bd5e4e9497982065cc66de69392bd854006e41 Mon Sep 17 00:00:00 2001 From: Lonng Date: Tue, 11 Dec 2018 06:40:44 +0800 Subject: [PATCH 1441/3440] fix project link (#2278) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 804f8ef6a54..7cb5ce6f0c9 100644 --- a/README.md +++ b/README.md @@ -596,7 +596,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gonet](https://github.com/xtaci/gonet) - Game server skeleton implemented with golang. * [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping * [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. -* [nano](https://github.com/lonnng/nano) - Lightweight, facility, high performance golang based game server framework +* [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework * [Oak](https://github.com/oakmound/oak) - Pure Go game engine. * [Pitaya](https://github.com/topfreegames/pitaya) - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. * [Pixel](https://github.com/faiface/pixel) - Hand-crafted 2D game library in Go. From 0abfdeeaac0d63f57e02609e6e46191d240ca6b5 Mon Sep 17 00:00:00 2001 From: Robin Eklind Date: Tue, 11 Dec 2018 17:27:00 +0100 Subject: [PATCH 1442/3440] Add llir/llvm (#2279) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7cb5ce6f0c9..6370f9404f6 100644 --- a/README.md +++ b/README.md @@ -908,6 +908,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. * [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. * [lk](https://github.com/hyperboloide/lk) - A simple licensing library for golang. +* [llvm](https://github.com/llir/llvm) - Library for interacting with LLVM IR in pure Go. * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [morse](https://github.com/alwindoss/morse) - Library to convert to and from morse code. * [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. From 7c5eeda1de38265d1597ace7109c9fcc81993a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Corrales=20Solera?= Date: Fri, 14 Dec 2018 01:47:45 +0100 Subject: [PATCH 1443/3440] Koazee (#2248) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/wesovilabs/koazee - godoc.org: https://godoc.org/github.com/wesovilabs/koazee - goreportcard.com: https://goreportcard.com/report/github.com/wesovilabs/koazee - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` [![codecov](https://codecov.io/gh/wesovilabs/koazee/branch/master/graph/badge.svg)](https://codecov.io/gh/wesovilabs/koazee) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6370f9404f6..bdeb9620110 100644 --- a/README.md +++ b/README.md @@ -1498,6 +1498,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. +* [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. * [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling * [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. From de1aba4739889f5cd04b8fdccb0c81e587f3f549 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Fri, 14 Dec 2018 12:45:07 +0100 Subject: [PATCH 1444/3440] End description with dot (#2283) * End description with dot Make sure a description always ends with a dot. * update (#1) * Add me to maintainers list (#2238) * Http clients (#2237) * Remove gorequest This does not really meet the required quality https://goreportcard.com/report/github.com/parnurzeal/gorequest * Add HTTP-Clients category and sling * Add grequests * I suck at pressing ctrl+f * Add Hoverfly API simulation tool (#2214) * Update README.md (#2236) * Add did (#2235) * Add errorx (#2231) * Add errorx * fix errorx description * Remove Florest, no longer exist (#2239) * Add go-zero-width (#2242) * Deprecate Go-AWS-Auth (#2243) * Add huego. Updated README (#2241) * Add Octillery (#2244) * Remove github.com/GeertJohan/yubigo (#2247) * Remove github.com/rcrowley/go-metric (#2246) * Add a link to fastcache (#2249) * Added iso601 (#2250) * Remove mgutz/dat (#2251) * No PR reviews * last Commits on Mar 28, 2017 * Add mole (#2210) * Deprecate github.com/FiloSottile/gvt (#2256) * Deprecate github.com/sevki/graphql (#2257) * Deprecate github.com/gonum/matrix (#2258) * Deprecate github.com/fatih/structs (#2259) * Deprecate github.com/toby3d/go-telegraph (#2260) * Deprecate github.com/mitchellh/goamz (#2261) * Deprecate github.com/franela/goreq (#2262) * Deprecate github.com/facebookgo/httpcontrol (#2263) * Deprecate github.com/markbates/validate (#2264) * Deprecate github.com/codehack/go-relax (#2265) * Deprecate github.com/volatile/core (#2266) * Deprecate github.com/imdario/medeina (#2267) * Deprecate github.com/daryl/zeus (#2268) * Deprecate github.com/mvdan/interfacer (#2269) * Deprecate github.com/GoClipse/goclipse (#2270) * Add gonum (#2273) * Add gonum * add period * Update validate (#2271) * Update validate package * accidentally removed a word, add it again * Update go-telegraph (#2272) * Remove https://github.com/bmizerany/pat (#2252) * Commits on Aug 15, 2017 * PR No reviews * fix project link (#2278) * Add llir/llvm (#2279) * Koazee (#2248) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/wesovilabs/koazee - godoc.org: https://godoc.org/github.com/wesovilabs/koazee - goreportcard.com: https://goreportcard.com/report/github.com/wesovilabs/koazee - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` [![codecov](https://codecov.io/gh/wesovilabs/koazee/branch/master/graph/badge.svg)](https://codecov.io/gh/wesovilabs/koazee) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: * Allow exclamation mark * updated error message * add various dots * follow-up (#2) * Revert "update (#1)" (#3) This reverts commit 3e410e38c4e2e1c828aec65346a55379e79e0a0f. * Missed some dots --- README.md | 114 +++++++++++++++++++++++++-------------------------- repo_test.go | 4 +- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index bdeb9620110..c8f9e2177a5 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. -* [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO) +* [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [rbac](https://github.com/zpatrick/rbac) - Minimalistic RBAC package for Go applications. * [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. @@ -166,7 +166,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. * [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package. * [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go. -* [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow +* [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. * [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. * [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection. @@ -193,7 +193,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [ctc](https://github.com/wzshiming/ctc) - The non-invasive cross-platform terminal color library does not need to modify the Print method +* [ctc](https://github.com/wzshiming/ctc) - The non-invasive cross-platform terminal color library does not need to modify the Print method. * [go-ataman](https://github.com/workanator/go-ataman) - Go library for rendering ANSI colored text templates in terminals. * [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. * [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. @@ -399,7 +399,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). - * [goracle](https://github.com/go-goracle/goracle) - Oracle driver for Go, using the ODPI-C driver + * [goracle](https://github.com/go-goracle/goracle) - Oracle driver for Go, using the ODPI-C driver. * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. @@ -419,7 +419,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. - * [mgo](https://github.com/globalsign/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 + * [mgo](https://github.com/globalsign/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. * [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. * [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. @@ -435,7 +435,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go. * [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. * [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch. - * [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine + * [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine. * [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. ## Date and Time @@ -575,8 +575,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages to support functional programming in Go.* -* [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang -* [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go +* [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang. +* [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go. * [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. ## Game Development @@ -594,9 +594,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping +* [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping. * [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. -* [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework +* [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework. * [Oak](https://github.com/oakmound/oak) - Pure Go game engine. * [Pitaya](https://github.com/topfreegames/pitaya) - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. * [Pixel](https://github.com/faiface/pixel) - Hand-crafted 2D game library in Go. @@ -623,7 +623,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. * [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. -* [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver +* [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver. * [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. * [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. * [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. @@ -644,7 +644,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for managing and working with Goroutines.* * [ants](https://github.com/panjf2000/ants) - A high-performance goroutine pool for golang. -* [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching +* [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. @@ -771,7 +771,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [logmatic](https://github.com/borderstech/logmatic) - Colorized logger for Golang with dynamic log level configuration +* [logmatic](https://github.com/borderstech/logmatic) - Colorized logger for Golang with dynamic log level configuration. * [logo](https://github.com/mbndr/logo) - Golang logger to different configurable writers. * [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/). @@ -896,7 +896,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-unarr](https://github.com/gen2brain/go-unarr) - Decompression library for RAR, TAR, ZIP and 7z archives. * [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. -* [gommit](https://github.com/antham/gommit) - Analyze git commit messages to ensure they follow defined patterns +* [gommit](https://github.com/antham/gommit) - Analyze git commit messages to ensure they follow defined patterns. * [gopsutil](https://github.com/shirou/gopsutil) - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). * [gosh](https://github.com/osamingo/gosh) - Provide Go Statistics Handler, Struct, Measure Method. * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. @@ -919,7 +919,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [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... -* [strutil](https://github.com/ozgio/strutil) - String utilities +* [strutil](https://github.com/ozgio/strutil) - String utilities. * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. * [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. @@ -1008,7 +1008,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). * [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. -* [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast +* [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast. * [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). * [quic-go](https://github.com/lucas-clemente/quic-go) - An implementation of the QUIC protocol in pure Go. @@ -1030,7 +1030,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. * [goreq](https://github.com/smallnest/goreq) - Enhanced simplified HTTP client based on gorequest. -* [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library +* [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. * [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. @@ -1083,7 +1083,7 @@ 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. -* [gop](https://github.com/lunny/gop) - Build and manage your Go applications out of GOPATH +* [gop](https://github.com/lunny/gop) - Build and manage your Go applications out of GOPATH. * [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. @@ -1242,7 +1242,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests + * [go-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests. * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. * [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. * [go-vcr](https://github.com/dnaeon/go-vcr) - Record and replay your HTTP interactions for fast, deterministic and accurate tests. @@ -1299,8 +1299,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. - * [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers - * [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go + * [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. + * [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go. * [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. * [did](https://github.com/ockam-network/did) - DID (Decentralized Identifiers) Parser and Stringer in Go. * [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. @@ -1325,7 +1325,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goregen](https://github.com/zach-klippenstein/goregen) - Library for generating random strings from regular expressions. * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. - * [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression + * [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. * [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. * [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. @@ -1356,7 +1356,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [codeship-go](https://github.com/codeship/codeship-go) - Go client library for interacting with Codeship's API v2. -* [coinpaprika-go](https://github.com/coinpaprika/coinpaprika-api-go-client) - Go client library for interacting with Coinpaprika's API +* [coinpaprika-go](https://github.com/coinpaprika/coinpaprika-api-go-client) - Go client library for interacting with Coinpaprika's API. * [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API. * [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API. @@ -1420,7 +1420,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [uptimerobot](https://github.com/bitfield/uptimerobot) - Go wrapper and command-line client for the Uptime Robot v2 API. * [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. * [wit-go](https://github.com/wit-ai/wit-go) - Go client for wit.ai HTTP API. -* [ynab](https://github.com/brunomvsouza/ynab.go) - Go wrapper for the YNAB API +* [ynab](https://github.com/brunomvsouza/ynab.go) - Go wrapper for the YNAB API. * [zooz](https://github.com/gojuno/go-zooz) - Go client for the Zooz API. ## Utilities @@ -1499,7 +1499,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. -* [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling +* [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling. * [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. @@ -1509,7 +1509,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). * [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. -* [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels +* [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels. * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. * [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. @@ -1578,7 +1578,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. * [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). * [go-astits](https://github.com/asticode/go-astits) - Parse and demux MPEG Transport Streams (.ts) natively in GO. -* [go-m3u8](https://github.com/quangngotan95/go-m3u8) - Parser and generator library for Apple m3u8 playlists +* [go-m3u8](https://github.com/quangngotan95/go-m3u8) - Parser and generator library for Apple m3u8 playlists. * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. @@ -1691,7 +1691,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [xmlwriter](https://github.com/shabbyrobe/xmlwriter) - Procedural XML generation API based on libxml2's xmlwriter module. * [xpath](https://github.com/antchfx/xpath) - XPath package for Go. * [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. -* [xml2map](https://github.com/sbabiv/xml2map) - XML to MAP converter written Golang +* [xml2map](https://github.com/sbabiv/xml2map) - XML to MAP converter written Golang. # Tools *Go software and plugins.* @@ -1759,7 +1759,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. -* [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct +* [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. @@ -1783,7 +1783,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. * [Dropship](https://github.com/chrismckenzie/dropship) - Tool for deploying code via cdn. * [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. -* [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts +* [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts. * [gaia](https://github.com/gaia-pipeline/gaia) - Build powerful pipelines in any programming language. * [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. * [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. @@ -1895,22 +1895,22 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Conferences -* [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA -* [dotGo](http://www.dotgo.eu) - Paris, France -* [GoCon](http://gocon.connpass.com/) - Tokyo, Japan -* [GoDays](https://www.godays.io/) - Berlin, Germany -* [GoLab](http://golab.io/) - Florence, Italy -* [GolangUK](http://golanguk.com/) - London, UK -* [GopherChina](http://gopherchina.org) - Shanghai, China -* [GopherCon](http://www.gophercon.com/) - Denver, USA -* [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR -* [GopherCon Europe](https://gophercon.is/) - Reykjavik, Iceland -* [GopherCon India](https://www.gophercon.in/) - Pune, India -* [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel -* [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia -* [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore -* [GothamGo](http://gothamgo.com/) - New York City, USA -* [GoWayFest](https://goway.io/) - Minsk, Belarus +* [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA. +* [dotGo](http://www.dotgo.eu) - Paris, France. +* [GoCon](http://gocon.connpass.com/) - Tokyo, Japan. +* [GoDays](https://www.godays.io/) - Berlin, Germany. +* [GoLab](http://golab.io/) - Florence, Italy. +* [GolangUK](http://golanguk.com/) - London, UK. +* [GopherChina](http://gopherchina.org) - Shanghai, China. +* [GopherCon](http://www.gophercon.com/) - Denver, USA. +* [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR. +* [GopherCon Europe](https://gophercon.is/) - Reykjavik, Iceland. +* [GopherCon India](https://www.gophercon.in/) - Pune, India. +* [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel. +* [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia. +* [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore. +* [GothamGo](http://gothamgo.com/) - New York City, USA. +* [GoWayFest](https://goway.io/) - Minsk, Belarus. ## E-Books @@ -1918,7 +1918,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [An Introduction to Programming in Go](http://www.golang-book.com/) * [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 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details +* [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. * [Go Bootcamp](http://golangbootcamp.com) * [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. * [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) @@ -1930,16 +1930,16 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Gophers -* [Go-gopher-Vector](https://github.com/keygx/Go-gopher-Vector) - Go gopher Vector Data [.ai, .svg] -* [gopher-logos](https://github.com/GolangUA/gopher-logos) - adorable gopher logos +* [Go-gopher-Vector](https://github.com/keygx/Go-gopher-Vector) - Go gopher Vector Data [.ai, .svg]. +* [gopher-logos](https://github.com/GolangUA/gopher-logos) - adorable gopher logos. * [gopher-stickers](https://github.com/tenntenn/gopher-stickers) * [gopher-vector](https://github.com/golang-samples/gopher-vector) * [gophericons](https://github.com/shalakhin/gophericons) -* [gopherize.me](https://github.com/matryer/gopherize.me) - Gopherize yourself -* [gophers](https://github.com/ashleymcnamara/gophers) - Gopher artworks by Ashley McNamara -* [gophers](https://github.com/egonelbre/gophers) - Free gophers -* [gophers](https://github.com/rogeralsing/gophers) - random gopher graphics -* [gophers](https://github.com/sillecelik/go-gopher) - Gopher amigurumi toy pattern +* [gopherize.me](https://github.com/matryer/gopherize.me) - Gopherize yourself. +* [gophers](https://github.com/ashleymcnamara/gophers) - Gopher artworks by Ashley McNamara. +* [gophers](https://github.com/egonelbre/gophers) - Free gophers. +* [gophers](https://github.com/rogeralsing/gophers) - random gopher graphics. +* [gophers](https://github.com/sillecelik/go-gopher) - Gopher amigurumi toy pattern. ## Meetups @@ -2024,12 +2024,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. * [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. -* [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries +* [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. * [Games With Go](http://gameswithgo.org/) - A video series teaching programming and game development. * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. -* [Go Playground for iOS](https://itunes.apple.com/us/app/go-playground/id1437518275?ls=1&mt=8) - Interactively edit & play Go snippets on your mobile device +* [Go Playground for iOS](https://itunes.apple.com/us/app/go-playground/id1437518275?ls=1&mt=8) - Interactively edit & play Go snippets on your mobile device. * [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. @@ -2037,4 +2037,4 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. -* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's +* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. diff --git a/repo_test.go b/repo_test.go index 98bea17c202..8314ee4724d 100644 --- a/repo_test.go +++ b/repo_test.go @@ -43,7 +43,7 @@ func TestDuplicatedLinks(t *testing.T) { var ( reContainsLink = regexp.MustCompile(`\* \[.*\]\(.*\)`) reOnlyLink = regexp.MustCompile(`\* \[.*\]\(.*\)$`) - reLinkWithDescription = regexp.MustCompile(`\* \[.*\]\(.*\) - \S`) + reLinkWithDescription = regexp.MustCompile(`\* \[.*\]\(.*\) - \S.*[\.\!]`) ) // Test if an entry has description, it must be separated from link with ` - ` @@ -65,7 +65,7 @@ func TestSeparator(t *testing.T) { matched = reLinkWithDescription.MatchString(line) if !matched { - t.Errorf("expected entry to be in form of `* [link] - description`, got '%s'", line) + t.Errorf("expected entry to be in form of `* [link] - description.`, got '%s'", line) } } } From 4de45dffda9d588eb647e70383ecdff1b6131387 Mon Sep 17 00:00:00 2001 From: Jonas Franz Date: Fri, 14 Dec 2018 12:48:02 +0100 Subject: [PATCH 1445/3440] Fix alphabetical order (#2281) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c8f9e2177a5..cc3ebb1887d 100644 --- a/README.md +++ b/README.md @@ -1786,6 +1786,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts. * [gaia](https://github.com/gaia-pipeline/gaia) - Build powerful pipelines in any programming language. * [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. +* [gitea-github-migrator](https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator) - Migrate all your GitHub repositories, issues, milestones and labels to your Gitea instance. * [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. From f724cbe8a977af3cb0143a1539a270b226908cb0 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Fri, 14 Dec 2018 13:14:17 +0000 Subject: [PATCH 1446/3440] add another dot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cc3ebb1887d..56888afaa5e 100644 --- a/README.md +++ b/README.md @@ -1026,7 +1026,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### HTTP Clients -*Libraries for making HTTP requests* +*Libraries for making HTTP requests.* * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. * [goreq](https://github.com/smallnest/goreq) - Enhanced simplified HTTP client based on gorequest. From aa0e6168864b6e5f5278eb15c66590edcde445b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?And=C5=BEej=20Maciusovi=C4=8D?= Date: Tue, 18 Dec 2018 11:19:52 +0200 Subject: [PATCH 1447/3440] Update README.md (#2286) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 56888afaa5e..4f9c3ddbe5a 100644 --- a/README.md +++ b/README.md @@ -1612,6 +1612,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. +* [nio](https://github.com/go-nio/nio) - Modern, minimal and productive Go HTTP framework. * [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. * [REST Layer](http://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. From 55978beac7186a9d718f2ef0c77ef260415e7d21 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 18 Dec 2018 14:50:03 -0200 Subject: [PATCH 1448/3440] fixed install github_flavored_markdown package (#2290) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f58bfdeb1fc..62caad7160f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM golang:alpine RUN apk add --update -t build-deps curl go git libc-dev gcc libgcc -RUN go get github.com/russross/blackfriday github.com/gorilla/mux +RUN go get -u -v github.com/shurcooL/github_flavored_markdown/... github.com/gorilla/mux WORKDIR /srv From 46a58dd7395421e4f49a678661b607a44fc3441b Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 18 Dec 2018 16:01:59 -0200 Subject: [PATCH 1449/3440] build error github.com/shurcooL/highlight_go on go 1.10 alpine (#2291) ref #1903 ``` github.com/shurcooL/highlight_go (download) github.com/sourcegraph/annotate (download) github.com/sourcegraph/syntaxhighlight (download) github.com/shurcooL/highlight_go/internal/go/token src/github.com/shurcooL/highlight_go/internal/go/token/token.go:12: syntax error: unexpected = in type declaration github.com/sourcegraph/annotate github.com/sourcegraph/syntaxhighlight ERROR: Service 'webhook' failed to build: The command '/bin/sh -c go get -u -v github.com/shurcooL/highlight_go' returned a non-zero code: 2 ``` --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 62caad7160f..685dbe0010a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ -FROM golang:alpine +FROM golang:1.10-alpine RUN apk add --update -t build-deps curl go git libc-dev gcc libgcc -RUN go get -u -v github.com/shurcooL/github_flavored_markdown/... github.com/gorilla/mux +RUN go get -u -v github.com/shurcooL/github_flavored_markdown github.com/gorilla/mux WORKDIR /srv From 679e3b59bfe33f18bdb3186a655d35087052ad68 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Tue, 18 Dec 2018 20:22:12 +0100 Subject: [PATCH 1450/3440] Secdl remove (#2289) * update (#1) * Add me to maintainers list (#2238) * Http clients (#2237) * Remove gorequest This does not really meet the required quality https://goreportcard.com/report/github.com/parnurzeal/gorequest * Add HTTP-Clients category and sling * Add grequests * I suck at pressing ctrl+f * Add Hoverfly API simulation tool (#2214) * Update README.md (#2236) * Add did (#2235) * Add errorx (#2231) * Add errorx * fix errorx description * Remove Florest, no longer exist (#2239) * Add go-zero-width (#2242) * Deprecate Go-AWS-Auth (#2243) * Add huego. Updated README (#2241) * Add Octillery (#2244) * Remove github.com/GeertJohan/yubigo (#2247) * Remove github.com/rcrowley/go-metric (#2246) * Add a link to fastcache (#2249) * Added iso601 (#2250) * Remove mgutz/dat (#2251) * No PR reviews * last Commits on Mar 28, 2017 * Add mole (#2210) * Deprecate github.com/FiloSottile/gvt (#2256) * Deprecate github.com/sevki/graphql (#2257) * Deprecate github.com/gonum/matrix (#2258) * Deprecate github.com/fatih/structs (#2259) * Deprecate github.com/toby3d/go-telegraph (#2260) * Deprecate github.com/mitchellh/goamz (#2261) * Deprecate github.com/franela/goreq (#2262) * Deprecate github.com/facebookgo/httpcontrol (#2263) * Deprecate github.com/markbates/validate (#2264) * Deprecate github.com/codehack/go-relax (#2265) * Deprecate github.com/volatile/core (#2266) * Deprecate github.com/imdario/medeina (#2267) * Deprecate github.com/daryl/zeus (#2268) * Deprecate github.com/mvdan/interfacer (#2269) * Deprecate github.com/GoClipse/goclipse (#2270) * Add gonum (#2273) * Add gonum * add period * Update validate (#2271) * Update validate package * accidentally removed a word, add it again * Update go-telegraph (#2272) * Remove https://github.com/bmizerany/pat (#2252) * Commits on Aug 15, 2017 * PR No reviews * fix project link (#2278) * Add llir/llvm (#2279) * Koazee (#2248) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/wesovilabs/koazee - godoc.org: https://godoc.org/github.com/wesovilabs/koazee - goreportcard.com: https://goreportcard.com/report/github.com/wesovilabs/koazee - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` [![codecov](https://codecov.io/gh/wesovilabs/koazee/branch/master/graph/badge.svg)](https://codecov.io/gh/wesovilabs/koazee) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: * Revert "update (#1)" (#3) This reverts commit 3e410e38c4e2e1c828aec65346a55379e79e0a0f. * Fix #2287 Fix avelino/awesome-go#2287 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4f9c3ddbe5a..2e9f85023e9 100644 --- a/README.md +++ b/README.md @@ -914,7 +914,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. * [sandid](https://github.com/aofei/sandid) - Every grain of sand on earth has its own ID. -* [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. * [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. From da8d0b742f994108e67c9bccdea383d3140ee5b8 Mon Sep 17 00:00:00 2001 From: Zaba505 Date: Wed, 19 Dec 2018 05:54:18 -0500 Subject: [PATCH 1451/3440] Added gqlc "GraphQL Compiler" (#2288) * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e9f85023e9..7ee4aa4065d 100644 --- a/README.md +++ b/README.md @@ -1484,6 +1484,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [gqlc](https://github.com/Zaba505/gqlc) - Code generator which makes creating GraphQL applications a breeze. * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. * [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. From 22437e1341c5d34ca3aa66a6ff8ed6d337071817 Mon Sep 17 00:00:00 2001 From: DrmagicE <379342542@qq.com> Date: Wed, 19 Dec 2018 22:16:53 +0800 Subject: [PATCH 1452/3440] Add gmqtt (#2285) * Add gmqtt --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ee4aa4065d..68f9ef5db30 100644 --- a/README.md +++ b/README.md @@ -984,6 +984,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http. * [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. * [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. * [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). From aa7d8e443e1d24ad3794e15d55644c9709bf73bf Mon Sep 17 00:00:00 2001 From: Arthur Burkart Date: Fri, 21 Dec 2018 18:44:28 +0100 Subject: [PATCH 1453/3440] Google Drive client is not a cli parser library (#2294) * Google Drive client is not a cli parser library * Move `drive` to "Other Software" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 68f9ef5db30..d32a5524e38 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [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. * [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. * [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. @@ -1834,6 +1833,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. * [Docker](http://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. +* [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. * [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. * [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. From 6ea5861a03b7384c49c442adab3fc7b3f6bf5c9b Mon Sep 17 00:00:00 2001 From: Ceriath Date: Fri, 21 Dec 2018 18:47:25 +0100 Subject: [PATCH 1454/3440] Remove gqlc (#2297) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d32a5524e38..834aa3222aa 100644 --- a/README.md +++ b/README.md @@ -1484,7 +1484,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [gqlc](https://github.com/Zaba505/gqlc) - Code generator which makes creating GraphQL applications a breeze. * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. * [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. From 453c3b79baf22d18377637f79776ccbc0ad918ef Mon Sep 17 00:00:00 2001 From: Ceriath Date: Fri, 21 Dec 2018 19:54:31 +0100 Subject: [PATCH 1455/3440] Increase response time and add mentioned badge (#2295) * update (#1) * Add me to maintainers list (#2238) * Http clients (#2237) * Remove gorequest This does not really meet the required quality https://goreportcard.com/report/github.com/parnurzeal/gorequest * Add HTTP-Clients category and sling * Add grequests * I suck at pressing ctrl+f * Add Hoverfly API simulation tool (#2214) * Update README.md (#2236) * Add did (#2235) * Add errorx (#2231) * Add errorx * fix errorx description * Remove Florest, no longer exist (#2239) * Add go-zero-width (#2242) * Deprecate Go-AWS-Auth (#2243) * Add huego. Updated README (#2241) * Add Octillery (#2244) * Remove github.com/GeertJohan/yubigo (#2247) * Remove github.com/rcrowley/go-metric (#2246) * Add a link to fastcache (#2249) * Added iso601 (#2250) * Remove mgutz/dat (#2251) * No PR reviews * last Commits on Mar 28, 2017 * Add mole (#2210) * Deprecate github.com/FiloSottile/gvt (#2256) * Deprecate github.com/sevki/graphql (#2257) * Deprecate github.com/gonum/matrix (#2258) * Deprecate github.com/fatih/structs (#2259) * Deprecate github.com/toby3d/go-telegraph (#2260) * Deprecate github.com/mitchellh/goamz (#2261) * Deprecate github.com/franela/goreq (#2262) * Deprecate github.com/facebookgo/httpcontrol (#2263) * Deprecate github.com/markbates/validate (#2264) * Deprecate github.com/codehack/go-relax (#2265) * Deprecate github.com/volatile/core (#2266) * Deprecate github.com/imdario/medeina (#2267) * Deprecate github.com/daryl/zeus (#2268) * Deprecate github.com/mvdan/interfacer (#2269) * Deprecate github.com/GoClipse/goclipse (#2270) * Add gonum (#2273) * Add gonum * add period * Update validate (#2271) * Update validate package * accidentally removed a word, add it again * Update go-telegraph (#2272) * Remove https://github.com/bmizerany/pat (#2252) * Commits on Aug 15, 2017 * PR No reviews * fix project link (#2278) * Add llir/llvm (#2279) * Koazee (#2248) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/wesovilabs/koazee - godoc.org: https://godoc.org/github.com/wesovilabs/koazee - goreportcard.com: https://goreportcard.com/report/github.com/wesovilabs/koazee - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` [![codecov](https://codecov.io/gh/wesovilabs/koazee/branch/master/graph/badge.svg)](https://codecov.io/gh/wesovilabs/koazee) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: * Revert "update (#1)" (#3) This reverts commit 3e410e38c4e2e1c828aec65346a55379e79e0a0f. * Increase response time and add mentioned badge * Update CONTRIBUTING.md --- CONTRIBUTING.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eb65a4a935a..eeef7720427 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,13 +34,23 @@ To be on the list, project repositories should adhere to these quality standards - Thoroughly documented (README, godoc comments, etc.) in english language, so everyone is able to understand the project's intention and how it works - Tests, where practical. If the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. **Notice**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results. +## Congrats, your project got accepted - what now? +You are an awesome project now! Feel encouraged to tell others about it by adding one of these badges: +[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go) +[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go) + +```md +[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go) +[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go) +``` + ## Maintainers To make sure every PR is checked, we have [team maintainers](MAINTAINERS). Every PR MUST be reviewed by at least two maintainers before it can get merged. The maintainers will review your PR and notify you and tag it in case any -information is still missing. They will wait 8 days for your interaction, after +information is still missing. They will wait 30 days for your interaction, after that the PR will be closed. From 817d1ac9c783d2e857d86a4e90eb76e8a32e04f2 Mon Sep 17 00:00:00 2001 From: Igor Maznitsa Date: Fri, 21 Dec 2018 20:56:10 +0200 Subject: [PATCH 1456/3440] added mvn-golang into Package Management section (#2292) I have added mvn-golang into Package Management section because the tool provides way to load project dependencies automatically and tune them through external CVS tools (tune for branch, revision and tag) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 834aa3222aa..59106c160a7 100644 --- a/README.md +++ b/README.md @@ -1087,6 +1087,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git. +* [mvn-golang](https://github.com/raydac/mvn-golang) - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure. * [nut](https://github.com/jingweno/nut) - Vendor Go dependencies. * [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments. From 66e48495dcf3c1812f223635dcd831d1048e78ef Mon Sep 17 00:00:00 2001 From: Aofei Sheng Date: Sat, 22 Dec 2018 05:40:16 +0800 Subject: [PATCH 1457/3440] Add MIMESniffer (#2293) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59106c160a7..2089fdb2d84 100644 --- a/README.md +++ b/README.md @@ -1504,6 +1504,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [mimemagic](https://github.com/zRedShift/mimemagic) - Pure Go ultra performant MIME sniffing library/utility. +* [mimesniffer](https://github.com/aofei/mimesniffer) - A MIME type sniffer for Go. * [mimetype](https://github.com/gabriel-vasile/mimetype) - Package for MIME type detection based on magic numbers. * [minify](https://github.com/tdewolff/minify) - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats. * [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). From 1246902469715b7ed9e928f744659354b5bfc4f5 Mon Sep 17 00:00:00 2001 From: Guillaume Simonneau <2980507+khezen@users.noreply.github.com> Date: Sat, 5 Jan 2019 10:40:37 +0100 Subject: [PATCH 1458/3440] add khezen/jwc (#2305) * add khezen/jwc * jwc - fix alphabetic order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2089fdb2d84..71369784fbc 100644 --- a/README.md +++ b/README.md @@ -1159,6 +1159,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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)". * [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. +* [jwc](https://github.com/khezen/jwc) - JSON Web Cryptography library. * [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. * [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. From 72d4fe1a7ac54f8ce54a84f081f3446740dd4a08 Mon Sep 17 00:00:00 2001 From: Guillaume Simonneau <2980507+khezen@users.noreply.github.com> Date: Sat, 5 Jan 2019 10:40:51 +0100 Subject: [PATCH 1459/3440] khezen/evoli (#2303) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 71369784fbc..8c86fa38d90 100644 --- a/README.md +++ b/README.md @@ -796,6 +796,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. * [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. * [eaopt](https://github.com/MaxHalford/eaopt) - An evolutionary optimization library. +* [evoli](https://github.com/khezen/evoli) - Genetic Algorithm and Particle Swarm Optimization library. * [fonet](https://github.com/Fontinalis/fonet) - A Deep Neural Network library written in Go. * [go-cluster](https://github.com/e-XpertSolutions/go-cluster) - Go implementation of the k-modes and k-prototypes clustering algorithms. * [go-deep](https://github.com/patrikeh/go-deep) - A feature-rich neural network library in Go. From 29542d7584212250e3d8f2c78f5406314a39ebbc Mon Sep 17 00:00:00 2001 From: Rohan Verma Date: Sat, 5 Jan 2019 15:11:22 +0530 Subject: [PATCH 1460/3440] Update README.md (#2300) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8c86fa38d90..c06f60d4310 100644 --- a/README.md +++ b/README.md @@ -1406,6 +1406,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [simples3](https://github.com/rhnvrm/simples3) - Simple no frills AWS S3 Library using REST with V4 Signing written in Go. * [slack](https://github.com/nlopes/slack) - Slack API in Go. * [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. From b127cdaf688e0204866fa80c06c767b30d31ddb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20J=C3=BCrgensmeyer?= Date: Sat, 5 Jan 2019 10:41:47 +0100 Subject: [PATCH 1461/3440] Add dbbench (#2299) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c06f60d4310..8a42c143151 100644 --- a/README.md +++ b/README.md @@ -358,6 +358,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. * [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small insterts and sends big requests to ClickHouse servers. +* [dbbench](https://github.com/sj14/dbbench) - Database benchmarking tool with support for several databases and scripts. * [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. * [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. From 0974639810febea94f5657727f12ca18aba9b2a9 Mon Sep 17 00:00:00 2001 From: Guillaume Simonneau <2980507+khezen@users.noreply.github.com> Date: Sun, 6 Jan 2019 18:07:58 +0100 Subject: [PATCH 1462/3440] khezen/rootfinding (#2304) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a42c143151..f132f6308e8 100644 --- a/README.md +++ b/README.md @@ -1142,6 +1142,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go. * [piecewiselinear](https://github.com/sgreben/piecewiselinear) - Tiny linear interpolation library. * [PiHex](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi. +* [rootfinding](https://github.com/khezen/rootfinding) - root-finding algorithms library for finding roots of quadratic functions. * [sparse](https://github.com/james-bowman/sparse) - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. * [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. From d01eb654f2b3450a43d0ae7db13412aec26ed60e Mon Sep 17 00:00:00 2001 From: Ido Kanner <73091+ik5@users.noreply.github.com> Date: Sun, 6 Jan 2019 19:08:34 +0200 Subject: [PATCH 1463/3440] added my gostrutils collection (#2311) * added my gostrutils collection * fixed entry location --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f132f6308e8..cca04819acf 100644 --- a/README.md +++ b/README.md @@ -1487,6 +1487,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [goseaweedfs](https://github.com/linxGnu/goseaweedfs) - SeaweedFS client library with almost full features. +* [gostrutils](https://github.com/ik5/gostrutils) - Collections of string manipulation and conversion functions. * [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. From be8915891f04ddbac844c4201c364adda5e7780d Mon Sep 17 00:00:00 2001 From: uADMIN <43869291+uadmin@users.noreply.github.com> Date: Tue, 8 Jan 2019 06:31:23 +0800 Subject: [PATCH 1464/3440] Add uAdmin to web frameworks (#2298) I have all the required links for doc, coverage, Golang report, ... etc in the top of README.md as badges with links to their sources. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cca04819acf..688ff1d839d 100644 --- a/README.md +++ b/README.md @@ -1628,6 +1628,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. +* [uAdmin](https://github.com/uadmin/uadmin) - Fully featured web framework for Golang, inspired by Django. * [utron](https://github.com/gernest/utron) - Lightweight MVC framework for Go(Golang). * [vox](https://github.com/aisk/vox) - A golang web framework for humans, inspired by Koa heavily. * [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc). From 38edaeaff5c8273383ca30b3e428733da1258d0a Mon Sep 17 00:00:00 2001 From: Sean DuBois Date: Mon, 7 Jan 2019 14:34:51 -0800 Subject: [PATCH 1465/3440] Add pion-WebRTC (#2301) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 688ff1d839d..cfd46e60247 100644 --- a/README.md +++ b/README.md @@ -1022,6 +1022,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tspool](https://github.com/two/tspool) - A TCP Library use worker pool to improve performance and protect your server. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. * [water](https://github.com/songgao/water) - Simple TUN/TAP library. +* [webrtc](https://github.com/pions/webrtc) - A pure Go implementation of the WebRTC API. * [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. From 6490cb72ddfaf1b93afabcd1811ec36e990cb10e Mon Sep 17 00:00:00 2001 From: Hunter Werlla Date: Mon, 7 Jan 2019 23:47:53 -0800 Subject: [PATCH 1466/3440] Disambiguate listed flac libraries (#2313) * disambiguate flac libs * disambiguate flac libs * just update description instead * Update README.md Fix embarrassingly bad spelling mistake --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cfd46e60247..f994bac8309 100644 --- a/README.md +++ b/README.md @@ -96,8 +96,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* * [EasyMIDI](https://github.com/algoGuy/EasyMIDI) - EasyMidi is a simple and reliable library for working with standard midi file (SMF). -* [flac](https://github.com/eaburns/flac) - Native Go FLAC decoder. -* [flac](https://github.com/mewkiz/flac) - Native Go FLAC decoder. +* [flac](https://github.com/eaburns/flac) - No-frills native Go FLAC decoder that decodes FLAC files into byte slices. +* [flac](https://github.com/mewkiz/flac) - Native Go FLAC encoder/decoder with support for FLAC streams. * [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. From 2cf71ee7df9897eef66c60b89a1569f69bfe86fb Mon Sep 17 00:00:00 2001 From: U Cirello Date: Tue, 8 Jan 2019 12:37:02 +0100 Subject: [PATCH 1467/3440] Add cirello.io/pglock (#2302) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f994bac8309..113df3bf34e 100644 --- a/README.md +++ b/README.md @@ -484,6 +484,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. * [redis-lock](https://github.com/bsm/redis-lock) - Simplified distributed locking implementation using Redis. From f79b3b361ef4565ee18e864cbbc8bb298547ea72 Mon Sep 17 00:00:00 2001 From: wzshiming Date: Tue, 8 Jan 2019 19:37:35 +0800 Subject: [PATCH 1468/3440] Add wzshiming/gotype (#2312) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 113df3bf34e..a6e16f26616 100644 --- a/README.md +++ b/README.md @@ -613,6 +613,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. * [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. * [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. +* [gotype](https://github.com/wzshiming/gotype) - Golang source code parsing, usage like reflect package. * [GoWrap](https://github.com/hexdigest/gowrap) - Generate decorators for Go interfaces using simple templates. * [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. * [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. From eca094ac2b0385b081769d06732f56e5312769e4 Mon Sep 17 00:00:00 2001 From: Chris Raborg Date: Tue, 8 Jan 2019 06:38:26 -0500 Subject: [PATCH 1469/3440] Add Baltimore Metro Area meetup to list (#2308) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a6e16f26616..3357d016358 100644 --- a/README.md +++ b/README.md @@ -1965,6 +1965,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoJakarta](https://www.meetup.com/GoJakarta/) * [Golang Amsterdam](https://www.meetup.com/golang-amsterdam/) * [Golang Argentina](https://www.meetup.com/Golang-Argentina/) +* [Golang Baltimore, MD](https://www.meetup.com/BaltimoreGolang/) * [Golang Bangalore](https://www.meetup.com/Golang-Bangalore/) * [Golang Belo Horizonte - Brazil](https://www.meetup.com/go-belo-horizonte/) * [Golang Boston](https://www.meetup.com/bostongo/) From 3f64619e78daae33fc54a66dc5288d6bb62ac839 Mon Sep 17 00:00:00 2001 From: Thanh Ba Nguyen Date: Tue, 8 Jan 2019 18:39:00 +0700 Subject: [PATCH 1470/3440] Add package btnguyen2k/olaf (#2309) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3357d016358..193b3d5155f 100644 --- a/README.md +++ b/README.md @@ -1526,6 +1526,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. * [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. * [okrun](https://github.com/xta/okrun) - go run error steamroller. +* [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. * [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. From 109ddd66aee63e143c67b8c25de1369c65736334 Mon Sep 17 00:00:00 2001 From: Alessandro Sanino Date: Tue, 8 Jan 2019 12:39:56 +0100 Subject: [PATCH 1471/3440] Added Golang Crypto Trading Bot to "other software section" (#2306) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 193b3d5155f..40fa2d25857 100644 --- a/README.md +++ b/README.md @@ -1853,6 +1853,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. * [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. +* [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. * [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. From d43f92d0901861b497085bfe309d4b21b907a8ff Mon Sep 17 00:00:00 2001 From: Nitish Malhotra Date: Wed, 9 Jan 2019 06:16:10 -0500 Subject: [PATCH 1472/3440] Add go-rejson to the list (#2314) * Add go-rejson to the list Add go-rejson to go-awesome list under the NoSQL Databases, as an alternate way to use redis to store and manipulate Go structs as JSON objects using Redislab Rejson module. * Fix alphabetical ordering * Fix alphabetical ordering --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 40fa2d25857..02d4e8ce2b2 100644 --- a/README.md +++ b/README.md @@ -413,6 +413,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. + * [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. * [gocql](http://gocql.github.io) - Go language driver for Apache Cassandra. * [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. From 1704e5a8270b198bb2465964fb0b2eb9b3b78f45 Mon Sep 17 00:00:00 2001 From: Sherif Abdel-Naby Date: Thu, 10 Jan 2019 10:38:50 +0200 Subject: [PATCH 1473/3440] Add gpool (#2315) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 02d4e8ce2b2..0f717529d18 100644 --- a/README.md +++ b/README.md @@ -655,6 +655,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. +* [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. * [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. * [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. From f3ae796b424d52e63e4a7e1ce1b8ef4a2d138ccb Mon Sep 17 00:00:00 2001 From: Ceriath Date: Mon, 14 Jan 2019 12:11:20 +0100 Subject: [PATCH 1474/3440] Database driver cleanup (#2324) * update (#1) * Add me to maintainers list (#2238) * Http clients (#2237) * Remove gorequest This does not really meet the required quality https://goreportcard.com/report/github.com/parnurzeal/gorequest * Add HTTP-Clients category and sling * Add grequests * I suck at pressing ctrl+f * Add Hoverfly API simulation tool (#2214) * Update README.md (#2236) * Add did (#2235) * Add errorx (#2231) * Add errorx * fix errorx description * Remove Florest, no longer exist (#2239) * Add go-zero-width (#2242) * Deprecate Go-AWS-Auth (#2243) * Add huego. Updated README (#2241) * Add Octillery (#2244) * Remove github.com/GeertJohan/yubigo (#2247) * Remove github.com/rcrowley/go-metric (#2246) * Add a link to fastcache (#2249) * Added iso601 (#2250) * Remove mgutz/dat (#2251) * No PR reviews * last Commits on Mar 28, 2017 * Add mole (#2210) * Deprecate github.com/FiloSottile/gvt (#2256) * Deprecate github.com/sevki/graphql (#2257) * Deprecate github.com/gonum/matrix (#2258) * Deprecate github.com/fatih/structs (#2259) * Deprecate github.com/toby3d/go-telegraph (#2260) * Deprecate github.com/mitchellh/goamz (#2261) * Deprecate github.com/franela/goreq (#2262) * Deprecate github.com/facebookgo/httpcontrol (#2263) * Deprecate github.com/markbates/validate (#2264) * Deprecate github.com/codehack/go-relax (#2265) * Deprecate github.com/volatile/core (#2266) * Deprecate github.com/imdario/medeina (#2267) * Deprecate github.com/daryl/zeus (#2268) * Deprecate github.com/mvdan/interfacer (#2269) * Deprecate github.com/GoClipse/goclipse (#2270) * Add gonum (#2273) * Add gonum * add period * Update validate (#2271) * Update validate package * accidentally removed a word, add it again * Update go-telegraph (#2272) * Remove https://github.com/bmizerany/pat (#2252) * Commits on Aug 15, 2017 * PR No reviews * fix project link (#2278) * Add llir/llvm (#2279) * Koazee (#2248) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/wesovilabs/koazee - godoc.org: https://godoc.org/github.com/wesovilabs/koazee - goreportcard.com: https://goreportcard.com/report/github.com/wesovilabs/koazee - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` [![codecov](https://codecov.io/gh/wesovilabs/koazee/branch/master/graph/badge.svg)](https://codecov.io/gh/wesovilabs/koazee) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: * Revert "update (#1)" (#3) This reverts commit 3e410e38c4e2e1c828aec65346a55379e79e0a0f. * Add new database driver category Some of the listed database drivers support multiple backeneds, SQL and NoSQL. They were listed under only one of the categories, so i think it makes sense to add a new category for those supporting multiple backends. * Bindings are not an implementation --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0f717529d18..1681a6d1974 100644 --- a/README.md +++ b/README.md @@ -321,7 +321,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [diskv](https://github.com/peterbourgon/diskv) - Home-grown disk-backed key-value store. * [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. * [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. -* [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. * [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 Go. @@ -407,10 +406,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. - * [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. - * [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. + * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [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. * [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. @@ -438,6 +435,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch. * [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine. * [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. + +* Multiple Backends. + * [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. + * [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. ## Date and Time From 5c0490e266b5b5fdfc18cd9283528bc3918bda9e Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Mon, 14 Jan 2019 22:12:27 +1100 Subject: [PATCH 1475/3440] Add Slicer (#2323) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1681a6d1974..e53df7cb7db 100644 --- a/README.md +++ b/README.md @@ -1550,6 +1550,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. +* [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. * [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. * [sslice](https://github.com/yaa110/sslice) - Create a slice which is always sorted. From 516b61619808c79bcd46f01ae136a7eb8ea84218 Mon Sep 17 00:00:00 2001 From: U Cirello Date: Mon, 14 Jan 2019 12:14:00 +0100 Subject: [PATCH 1476/3440] Add cirello.io/oversight (#2322) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e53df7cb7db..fd8cc1c7772 100644 --- a/README.md +++ b/README.md @@ -659,6 +659,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. * [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. +* [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. * [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. * [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. From ef6a2e81132702804bece0a0a47f3dee5477ccad Mon Sep 17 00:00:00 2001 From: Muhammad Surya Date: Mon, 14 Jan 2019 18:16:11 +0700 Subject: [PATCH 1477/3440] add https://github.com/Fs02/wire (#2317) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fd8cc1c7772..2192ff527e4 100644 --- a/README.md +++ b/README.md @@ -933,6 +933,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. * [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and output 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. +* [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. * [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go. * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber. From cf28454d6e9627c3a72f6c53d8b6b07b4e245819 Mon Sep 17 00:00:00 2001 From: Vadim Kulibaba Date: Mon, 14 Jan 2019 14:17:26 +0300 Subject: [PATCH 1478/3440] pudge (#2316) * slowpoke - Key-value store with persistence * slowpoke - Key-value store with persistence * pudge - Fast and simple key/value store written using Go's standard library * i will always fetch upstream before PR --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2192ff527e4..3894efba612 100644 --- a/README.md +++ b/README.md @@ -332,6 +332,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. * [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. +* [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. * [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. * [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. * [slowpoke](https://github.com/recoilme/slowpoke) - Key-value store with persistence. From 1f4c72dc800b34fa063c06b03663c4a02d875230 Mon Sep 17 00:00:00 2001 From: Dimitar Petrov Date: Mon, 14 Jan 2019 21:56:50 +0200 Subject: [PATCH 1479/3440] Add stegify (https://github.com/DimitarPetrov/stegify) (#2320) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3894efba612..97f3378279b 100644 --- a/README.md +++ b/README.md @@ -736,6 +736,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. * [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. * [steganography](https://github.com/auyer/steganography) - Pure Go Library for LSB steganography. +* [stegify](https://github.com/DimitarPetrov/stegify) - Go tool for LSB steganography, capable of hiding any file within an image. * [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. * [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. From 589a66e2140c656e2e5ea37625981da16141f538 Mon Sep 17 00:00:00 2001 From: Ben Boyter Date: Tue, 15 Jan 2019 23:12:00 +1100 Subject: [PATCH 1480/3440] Add Sloc Cloc and Code to other software section of Awesome Go (#2328) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 97f3378279b..5f5218f66e4 100644 --- a/README.md +++ b/README.md @@ -1884,6 +1884,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Pipe](https://github.com/b3log/pipe) - A small and beautiful blogging platform. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [rkt](https://github.com/coreos/rkt) - App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. +* [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). * [snap](https://github.com/intelsdi-x/snap) - Powerful telemetry framework. From 2fcbf52f0eae734ecc2c812d339ca78271028b26 Mon Sep 17 00:00:00 2001 From: Daniel Kang Date: Wed, 16 Jan 2019 03:12:09 -0800 Subject: [PATCH 1481/3440] Update README.md (#2326) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f5218f66e4..71c7259e131 100644 --- a/README.md +++ b/README.md @@ -535,6 +535,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. ## Files From 34936c01620e4f3697b0976140520a9317e2509b Mon Sep 17 00:00:00 2001 From: Chase Hutchins Date: Wed, 16 Jan 2019 04:12:49 -0700 Subject: [PATCH 1482/3440] add serve (#2327) --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 71c7259e131..4d36df4d389 100644 --- a/README.md +++ b/README.md @@ -436,7 +436,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch. * [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine. * [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. - + * Multiple Backends. * [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. * [cayley](https://github.com/google/cayley) - Graph database with support for multiple backends. @@ -1030,7 +1030,7 @@ 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. * [stun](https://github.com/go-rtc/stun) - Go implementation of RFC 5389 STUN protocol. * [tcp_server](https://github.com/firstrow/tcp_server) - Go library for building tcp servers faster. -* [tspool](https://github.com/two/tspool) - A TCP Library use worker pool to improve performance and protect your server. +* [tspool](https://github.com/two/tspool) - A TCP Library use worker pool to improve performance and protect your server. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. * [water](https://github.com/songgao/water) - Simple TUN/TAP library. * [webrtc](https://github.com/pions/webrtc) - A pure Go implementation of the WebRTC API. @@ -1290,7 +1290,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. - * [hoverfly](https://github.com/SpectoLabs/hoverfly) - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI. + * [hoverfly](https://github.com/SpectoLabs/hoverfly) - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI. * [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. @@ -1555,6 +1555,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. +* [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. * [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. From e6e116c8a6ae77848813370ccebe074e2d2752da Mon Sep 17 00:00:00 2001 From: Ceriath Date: Wed, 16 Jan 2019 12:13:29 +0100 Subject: [PATCH 1483/3440] Add clockwork (#2325) * update (#1) * Add me to maintainers list (#2238) * Http clients (#2237) * Remove gorequest This does not really meet the required quality https://goreportcard.com/report/github.com/parnurzeal/gorequest * Add HTTP-Clients category and sling * Add grequests * I suck at pressing ctrl+f * Add Hoverfly API simulation tool (#2214) * Update README.md (#2236) * Add did (#2235) * Add errorx (#2231) * Add errorx * fix errorx description * Remove Florest, no longer exist (#2239) * Add go-zero-width (#2242) * Deprecate Go-AWS-Auth (#2243) * Add huego. Updated README (#2241) * Add Octillery (#2244) * Remove github.com/GeertJohan/yubigo (#2247) * Remove github.com/rcrowley/go-metric (#2246) * Add a link to fastcache (#2249) * Added iso601 (#2250) * Remove mgutz/dat (#2251) * No PR reviews * last Commits on Mar 28, 2017 * Add mole (#2210) * Deprecate github.com/FiloSottile/gvt (#2256) * Deprecate github.com/sevki/graphql (#2257) * Deprecate github.com/gonum/matrix (#2258) * Deprecate github.com/fatih/structs (#2259) * Deprecate github.com/toby3d/go-telegraph (#2260) * Deprecate github.com/mitchellh/goamz (#2261) * Deprecate github.com/franela/goreq (#2262) * Deprecate github.com/facebookgo/httpcontrol (#2263) * Deprecate github.com/markbates/validate (#2264) * Deprecate github.com/codehack/go-relax (#2265) * Deprecate github.com/volatile/core (#2266) * Deprecate github.com/imdario/medeina (#2267) * Deprecate github.com/daryl/zeus (#2268) * Deprecate github.com/mvdan/interfacer (#2269) * Deprecate github.com/GoClipse/goclipse (#2270) * Add gonum (#2273) * Add gonum * add period * Update validate (#2271) * Update validate package * accidentally removed a word, add it again * Update go-telegraph (#2272) * Remove https://github.com/bmizerany/pat (#2252) * Commits on Aug 15, 2017 * PR No reviews * fix project link (#2278) * Add llir/llvm (#2279) * Koazee (#2248) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/wesovilabs/koazee - godoc.org: https://godoc.org/github.com/wesovilabs/koazee - goreportcard.com: https://goreportcard.com/report/github.com/wesovilabs/koazee - coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` [![codecov](https://codecov.io/gh/wesovilabs/koazee/branch/master/graph/badge.svg)](https://codecov.io/gh/wesovilabs/koazee) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: * Revert "update (#1)" (#3) This reverts commit 3e410e38c4e2e1c828aec65346a55379e79e0a0f. * Add clockwork --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d36df4d389..61a546e4390 100644 --- a/README.md +++ b/README.md @@ -1452,6 +1452,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. * [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. +* [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. * [clockwork](https://github.com/whiteShtef/clockwork) - Simple and intuitive job scheduling library in Go. * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. From 4fc294fb33b5478ab35b19e9995ada0e2bd623f0 Mon Sep 17 00:00:00 2001 From: Norris Oduro Date: Thu, 24 Jan 2019 15:32:55 +0000 Subject: [PATCH 1484/3440] break misc and utilities into other categories (#2329) --- README.md | 147 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 97 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 61a546e4390..adef23856e5 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Awesome Go](#awesome-go) - [Audio and Music](#audio-and-music) - [Authentication and OAuth](#authentication-and-oauth) + - [Bot Building](#bot-building) - [Command Line](#command-line) - [Configuration](#configuration) - [Continuous Integration](#continuous-integration) @@ -26,6 +27,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Distributed Systems](#distributed-systems) - [Email](#email) - [Embeddable Scripting Languages](#embeddable-scripting-languages) + - [Error Handling](#error-handling) - [Files](#files) - [Financial](#financial) - [Forms](#forms) @@ -39,10 +41,16 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Hardware](#hardware) - [Images](#images) - [IoT](#iot-internet-of-things) + - [Job Scheduler](#job-scheduler) + - [JSON](#json) - [Logging](#logging) - [Machine Learning](#machine-learning) - [Messaging](#messaging) + - [Microsoft Office](#microsoft-office) + - [Microsoft Excel](#microsoft-excel) - [Miscellaneous](#miscellaneous) + - [Dependency Injection](#dependency-injection) + - [Strings](#strings) - [Natural Language Processing](#natural-language-processing) - [Networking](#networking) - [HTTP Clients](#http-clients) @@ -59,6 +67,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Text Processing](#text-processing) - [Third-party APIs](#third-party-apis) - [Utilities](#utilities) + - [UUID](#uuid) - [Validation](#validation) - [Version Control](#version-control) - [Video](#video) @@ -144,6 +153,24 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. * [signedvalue](https://github.com/sashka/signedvalue) - Signed and timestamped strings compatible with [Tornado's](https://github.com/tornadoweb/tornado) `create_signed_value`, `decode_signed_value`, and therefore `set_secure_cookie` and `get_secure_cookie`. +## Bot Building + +*Libraries for building and working with bots.* + +* [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. +* [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. +* [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. +* [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. +* [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. +* [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. +* [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. +* [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. +* [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. +* [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. +* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. + ## Command Line ### Standard CLI @@ -537,6 +564,15 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go. * [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. +## Error Handling + +*Libraries for handling errors.* + +* [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. +* [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. +* [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. +* [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. + ## Files *Libraries for handling files and file systems.* @@ -757,6 +793,36 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. * [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. +## Job Scheduler + +*Libraries for scheduling jobs.* + +* [clockwerk](http://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. +* [clockwork](https://github.com/whiteShtef/clockwork) - Simple and intuitive job scheduling library in Go. +* [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. +* [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. +* [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. +* [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. +* [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling. +* [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. + +## JSON + +*Libraries for working with JSON.* + +* [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. +* [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. +* [gojq](https://github.com/elgs/gojq) - JSON query in Golang. +* [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. +* [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. +* [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. +* [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. +* [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. +* [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. +* [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. + ## Logging *Libraries for generating and working with log files.* @@ -876,11 +942,32 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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). +## Microsoft Office + +### Microsoft Excel +*Libraries for working with Microsoft Excel.* + +* [excelize](https://github.com/360EntSecGroup-Skylar/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. +* [go-excel](https://github.com/szyhf/go-excel) - A simple and light reader to read a relate-db-like excel as a table. +* [goxlsxwriter](https://github.com/fterrag/goxlsxwriter) - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files. +* [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. +* [xlsx](https://github.com/plandem/xlsx) - Fast and safe way to read/update your existing Microsoft Excel files in Go programs. + ## Miscellaneous -*These libraries were placed here because none of the other categories seemed to fit.* +### Dependency Injection +*Libraries for working with dependency injection.* * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. +* [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. + +### Strings +*Libraries for working with strings.* +* [strutil](https://github.com/ozgio/strutil) - String utilities. +* [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. + +*These libraries were placed here because none of the other categories seemed to fit.* + * [anagent](https://github.com/mudler/anagent) - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection. * [antch](https://github.com/antchfx/antch) - A fast, powerful and extensible web crawling & scraping framework. * [archiver](https://github.com/mholt/archiver) - Library and command for making and extracting .zip and .tar.gz archives. @@ -894,53 +981,36 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [captcha](https://github.com/steambap/captcha) - Package captcha provides an easy to use, unopinionated API for captcha generation. * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. -* [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. -* [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [ghorg](https://github.com/gabrie30/ghorg) - Clone all repos from a GitHub org into a single directory. -* [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-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. * [go-unarr](https://github.com/gen2brain/go-unarr) - Decompression library for RAR, TAR, ZIP and 7z archives. * [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. * [gommit](https://github.com/antham/gommit) - Analyze git commit messages to ensure they follow defined patterns. * [gopsutil](https://github.com/shirou/gopsutil) - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). * [gosh](https://github.com/osamingo/gosh) - Provide Go Statistics Handler, Struct, Measure Method. * [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. * [healthcheck](https://github.com/etherlabsio/healthcheck) - An opinionated and concurrent health-check HTTP handler for RESTful services. * [hostutils](https://github.com/Wing924/hostutils) - A golang library for packing and unpacking FQDNs list. * [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. -* [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. * [lk](https://github.com/hyperboloide/lk) - A simple licensing library for golang. * [llvm](https://github.com/llir/llvm) - Library for interacting with LLVM IR in pure Go. -* [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [morse](https://github.com/alwindoss/morse) - Library to convert to and from morse code. * [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. * [sandid](https://github.com/aofei/sandid) - Every grain of sand on earth has its own ID. * [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. * [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. -* [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... -* [strutil](https://github.com/ozgio/strutil) - String utilities. * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. * [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. -* [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. -* [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. * [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and output 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. -* [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. -* [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. * [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go. * [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 @@ -1392,7 +1462,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. * [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. * [go-telegraph](https://gitlab.com/toby3d/telegraph) - Telegraph publishing platform API client. -* [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitch](https://github.com/knspriggs/go-twitch) - Go client for interacting with the Twitch v3 API. * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. @@ -1405,13 +1474,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. * [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. -* [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. * [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. * [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). * [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. -* [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. @@ -1426,9 +1493,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [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). * [translate](https://github.com/poorny/translate) - Go online translation package. @@ -1451,9 +1515,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. * [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. * [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. * [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. -* [clockwork](https://github.com/whiteShtef/clockwork) - Simple and intuitive job scheduling library in Go. * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. * [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. @@ -1464,7 +1526,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. * [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. * [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. -* [excelize](https://github.com/360EntSecGroup-Skylar/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. * [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. @@ -1473,17 +1534,13 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. * [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-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-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. -* [go-excel](https://github.com/szyhf/go-excel) - A simple and light reader to read a relate-db-like excel as a table. * [go-funk](https://github.com/thoas/go-funk) - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...). * [go-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. * [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. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-torch](https://github.com/uber/go-torch) - Stochastic flame graph profiler for Go programs. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. @@ -1491,8 +1548,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. -* [gojq](https://github.com/elgs/gojq) - JSON query in Golang. -* [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. * [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. * [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. @@ -1502,23 +1557,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goseaweedfs](https://github.com/linxGnu/goseaweedfs) - SeaweedFS client library with almost full features. * [gostrutils](https://github.com/ik5/gostrutils) - Collections of string manipulation and conversion functions. * [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. -* [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. * [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. * [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. * [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. -* [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. -* [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. * [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. -* [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling. * [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. @@ -1530,7 +1576,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. * [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels. -* [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. * [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. @@ -1555,7 +1600,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. -* [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. @@ -1571,8 +1615,15 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. -* [xlsx](https://github.com/plandem/xlsx) - Fast and safe way to read/update your existing Microsoft Excel files in Go programs. + +## UUID + +*Libraries for working with UUIDs.* + +* [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. +* [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. +* [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. +* [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. ## Validation @@ -1784,7 +1835,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. -* [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. @@ -1865,12 +1915,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. * [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. -* [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. * [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. * [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. -* [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. * [joincap](https://github.com/assafmo/joincap) - Command-line utility for merging multiple pcap files together. * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms. @@ -1894,7 +1942,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. -* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. * [term-quiz](https://github.com/crazcalm/term-quiz) - Quizzes for your terminal. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. From 080206b6fbc3dedfe88e687032c6639e3e09ecb5 Mon Sep 17 00:00:00 2001 From: Jakub Sobon Date: Thu, 24 Jan 2019 10:37:46 -0500 Subject: [PATCH 1485/3440] Adding termdash to Advanced Console UIs. (#2334) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index adef23856e5..c7ffbebeca8 100644 --- a/README.md +++ b/README.md @@ -233,6 +233,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. * [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. +* [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). * [termtables](https://github.com/apcera/termtables) - Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). * [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. From 737ca98d335e6866ff3cb6731c739e483efae545 Mon Sep 17 00:00:00 2001 From: generikvault <31845534+generikvault@users.noreply.github.com> Date: Thu, 24 Jan 2019 16:38:37 +0100 Subject: [PATCH 1486/3440] Added gval to Embeddable Scripting Languages (#2335) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c7ffbebeca8..b6de4c142d9 100644 --- a/README.md +++ b/README.md @@ -560,6 +560,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [gval](https://github.com/PaesslerAG/gval) - A highly customizable expression language 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. From f222c7f0536c7bfcc4e0aac854bb313fc6795944 Mon Sep 17 00:00:00 2001 From: Lajos Bencz Date: Thu, 24 Jan 2019 16:39:05 +0100 Subject: [PATCH 1487/3440] Add glo to Loggers (#2338) * logging > glo * missing punctuation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b6de4c142d9..ec79a8145c3 100644 --- a/README.md +++ b/README.md @@ -831,6 +831,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [distillog](https://github.com/amoghe/distillog) - distilled levelled logging (think of it as stdlib + log levels). * [glg](https://github.com/kpango/glg) - glg is simple and fast leveled logging library for Go. +* [glo](https://github.com/lajosbencz/glo) - PHP Monolog inspired logging facility with identical severity levels. * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. * [go-cronowriter](https://github.com/utahta/go-cronowriter) - Simple writer that rotate log files automatically based on current date and time, like cronolog. * [go-log](https://github.com/subchen/go-log) - Simple and configurable Logging in Go, with level, formatters and writers. From 8df8d62ad0e32f4d3d8ef0b797ef95fa2e4b6a57 Mon Sep 17 00:00:00 2001 From: Enrique Bris Date: Thu, 24 Jan 2019 10:40:22 -0500 Subject: [PATCH 1488/3440] Add goconcurrentqueue to Data Structures (#2340) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ec79a8145c3..5d74ac559a5 100644 --- a/README.md +++ b/README.md @@ -311,6 +311,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. * [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. * [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. +* [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. * [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. From 70cf28cc2b066618ceea034a6dedb94037ce0b13 Mon Sep 17 00:00:00 2001 From: Miguel Mota Date: Thu, 24 Jan 2019 07:41:06 -0800 Subject: [PATCH 1489/3440] add tutorials (#2341) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5d74ac559a5..9fe9de0786b 100644 --- a/README.md +++ b/README.md @@ -2106,12 +2106,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. * [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. +* [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. * [Games With Go](http://gameswithgo.org/) - A video series teaching programming and game development. * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. * [Go Playground for iOS](https://itunes.apple.com/us/app/go-playground/id1437518275?ls=1&mt=8) - Interactively edit & play Go snippets on your mobile device. * [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) +* [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. From 2682aa847000a1af746cfbbbeced6ee798131006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Gill=C3=A9?= Date: Wed, 30 Jan 2019 23:54:56 +0100 Subject: [PATCH 1490/3440] Add gokv to database drivers (#2333) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9fe9de0786b..ccb28dcefeb 100644 --- a/README.md +++ b/README.md @@ -470,6 +470,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. * [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. + * [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more) ## Date and Time From ff9b93bedab6dc9d470506039e9dc282fc7f941c Mon Sep 17 00:00:00 2001 From: U Cirello Date: Wed, 30 Jan 2019 23:56:20 +0100 Subject: [PATCH 1491/3440] Add cirello.io/dynamolock (#2348) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ccb28dcefeb..922d5c34b85 100644 --- a/README.md +++ b/README.md @@ -502,6 +502,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [digota](https://github.com/digota/digota) - grpc ecommerce microservice. * [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash. * [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. +* [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation. * [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. * [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package. * [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. From d38aaa0c70e637a39fd463a0264f35f270962f5f Mon Sep 17 00:00:00 2001 From: Tanner Ryan Date: Wed, 30 Jan 2019 17:58:43 -0500 Subject: [PATCH 1492/3440] Add package ring (#2349) Package ring provides a high performance and thread safe Go implementation of a bloom filter. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 922d5c34b85..778a9c6e1de 100644 --- a/README.md +++ b/README.md @@ -325,6 +325,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. +* [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. * [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. * [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. From a34eed78776da64a77e0252e13c184caec480a9b Mon Sep 17 00:00:00 2001 From: Martin Olsansky Date: Wed, 30 Jan 2019 23:59:48 +0100 Subject: [PATCH 1493/3440] =?UTF-8?q?Add=20'The=20world=E2=80=99s=20easies?= =?UTF-8?q?t=20introduction=20to=20WebAssembly=20with=20Golang'=20tutorial?= =?UTF-8?q?/article=20(#2351)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 778a9c6e1de..c6195d55bca 100644 --- a/README.md +++ b/README.md @@ -2122,5 +2122,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. +* [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. From 0aa2d4e428cd1d7a0eec54303bf84bda88fe8965 Mon Sep 17 00:00:00 2001 From: Genadi Samokovarov Date: Thu, 31 Jan 2019 01:01:19 +0200 Subject: [PATCH 1494/3440] Add jump to Utilities (#2346) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c6195d55bca..ee3068f5a9c 100644 --- a/README.md +++ b/README.md @@ -1571,6 +1571,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [intrinsic](https://github.com/mengzhuo/intrinsic) - Use x86 SIMD without writing any assembly code. +* [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. * [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. * [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. From ec1b9828eb63c46c0df7c2d0ec908426ebfb9d2b Mon Sep 17 00:00:00 2001 From: Zhenghao Zhang Date: Thu, 31 Jan 2019 09:30:52 +0800 Subject: [PATCH 1495/3440] Add zhenghaoz/gorse (#2345) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: [zhenghaoz/gorse](https://github.com/zhenghaoz/gorse) - godoc.org: [![GoDoc](https://godoc.org/github.com/zhenghaoz/gorse?status.svg)](https://godoc.org/github.com/zhenghaoz/gorse) - goreportcard.com: [![Go Report Card](https://goreportcard.com/badge/github.com/zhenghaoz/gorse)](https://goreportcard.com/report/github.com/zhenghaoz/gorse) - coverage service link: [![codecov](https://codecov.io/gh/zhenghaoz/gorse/branch/master/graph/badge.svg)](https://codecov.io/gh/zhenghaoz/gorse) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ee3068f5a9c..ccf50e755fc 100644 --- a/README.md +++ b/README.md @@ -896,6 +896,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [gorse](https://github.com/zhenghaoz/gorse) - A High Performance Recommender System Package based on Collaborative Filtering for Go. * [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. * [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. From b3590a94c19d9c985d74ef58d519500815b0f2c2 Mon Sep 17 00:00:00 2001 From: Igor Novgorodov Date: Thu, 31 Jan 2019 02:31:41 +0100 Subject: [PATCH 1496/3440] Add nginx-prometheus to Server Applications (#2337) github.com repo: https://github.com/blind-oracle/nginx-prometheus godoc.org: https://godoc.org/github.com/blind-oracle/nginx-prometheus goreportcard.com:https://goreportcard.com/report/github.com/blind-oracle/nginx-prometheus coverage service link: https://cover.run/go?repo=github.com%2Fblind-oracle%2Fnginx-prometheus&tag=golang-1.10 - [*] 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). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ccf50e755fc..9b798ebdd4a 100644 --- a/README.md +++ b/README.md @@ -1291,6 +1291,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. +* [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. From 74a47d4efac34071b66b2817cb1f4dfe7bd267ad Mon Sep 17 00:00:00 2001 From: Edwin Date: Mon, 4 Feb 2019 17:32:34 +0800 Subject: [PATCH 1497/3440] add github.com/edwingeng/deque (#2354) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9b798ebdd4a..f19d26329c2 100644 --- a/README.md +++ b/README.md @@ -303,6 +303,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. * [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. +* [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. * [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). * [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. From 17d448db90243c6b20ca2f5ce266957cf31bd9a5 Mon Sep 17 00:00:00 2001 From: Milica Date: Mon, 4 Feb 2019 12:43:34 +0100 Subject: [PATCH 1498/3440] Adding a new Go community to the list of websites (#2355) * Adding a new Go community to the list of websites * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f19d26329c2..153f080de0b 100644 --- a/README.md +++ b/README.md @@ -2088,6 +2088,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. * [Go Blog](http://blog.golang.org) - The official Go blog. * [Go Challenge](http://golang-challenge.org/) - Learn Go by solving problems and getting feedback from Go experts. +* [Go Community on Hashnode](https://hashnode.com/n/go) - Community of Gophers on Hashnode. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. * [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. From 7bc4e61c5d8b8a33d63c2b18de2b59796ad55e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Klete=C4=8Dka?= Date: Tue, 5 Feb 2019 17:40:17 +0100 Subject: [PATCH 1499/3440] Added jazz - simple RabbitMQ abstraction layer (#2356) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 153f080de0b..41506b152a7 100644 --- a/README.md +++ b/README.md @@ -935,6 +935,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [hub](https://github.com/leandro-lugaresi/hub) - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. +* [jazz](https://github.com/socifi/jazz) - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. * [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. * [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. * [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. From 29263da5ec797cbd2c3f9202d4fafd744cb487a1 Mon Sep 17 00:00:00 2001 From: Chris Passas Date: Tue, 5 Feb 2019 11:41:04 -0500 Subject: [PATCH 1500/3440] added silk to utilities (#2319) * added silk to utilities Added library to read silk files. Silk project website: https://tools.netsa.cert.org/silk/docs.html Normally you need to use their C code to read silk files but this package allows reading them with native Go code. * remove duplicate link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 41506b152a7..92fdaf859ed 100644 --- a/README.md +++ b/README.md @@ -1613,6 +1613,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. +* [silk] (https://github.com/chrispassas/silk) - Read silk netflow files * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. * [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. From 8cb1c4fb0bc1260c27e39296891311bd130c54e4 Mon Sep 17 00:00:00 2001 From: Anthony HAMON Date: Wed, 6 Feb 2019 15:29:00 +0100 Subject: [PATCH 1501/3440] Add ghokin (#2358) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92fdaf859ed..f861dc1a467 100644 --- a/README.md +++ b/README.md @@ -1544,6 +1544,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fzf](https://github.com/junegunn/fzf) - Command-line fuzzy finder written in Go. * [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. +* [ghokin](https://github.com/antham/ghokin) - Parallelized formatter with no external dependencies for gherkin (cucumber, behat...). * [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git. * [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). From fbbfac9335195413da2aea2f8ee273b0fdbc4f5d Mon Sep 17 00:00:00 2001 From: Roger Guldbrandsen <8797880+kinbiko@users.noreply.github.com> Date: Fri, 8 Feb 2019 09:35:07 +0000 Subject: [PATCH 1502/3440] Add jsonassert testing package (#2362) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f861dc1a467..84352e71af0 100644 --- a/README.md +++ b/README.md @@ -1357,6 +1357,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gotest.tools](https://github.com/gotestyourself/gotest.tools) - A collection of packages to augment the go testing package and support common patterns. * [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. + * [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. * [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. From 6cac974b6e394de5378cf38ba3e42320ecc31e7e Mon Sep 17 00:00:00 2001 From: jfilipczyk Date: Fri, 8 Feb 2019 10:36:29 +0100 Subject: [PATCH 1503/3440] Add jfilipczyk/gomatch (#2360) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84352e71af0..2b5a0d81603 100644 --- a/README.md +++ b/README.md @@ -1350,6 +1350,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [gogiven](https://github.com/corbym/gogiven) - YATSPEC-like BDD testing framework for Go. + * [gomatch](https://github.com/jfilipczyk/gomatch) - library created for testing JSON against patterns. * [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. From 177b9bb7aa5f41148073d29914e352524db54e2c Mon Sep 17 00:00:00 2001 From: Ceriath Date: Fri, 8 Feb 2019 13:51:08 +0100 Subject: [PATCH 1504/3440] Update README.md (#2363) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 2b5a0d81603..87a57a345a3 100644 --- a/README.md +++ b/README.md @@ -1974,7 +1974,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-benchmark-app](https://github.com/mrLSD/go-benchmark-app) - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results. * [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. * [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. -* [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. * [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. * [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. * [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. From 23aebf607de129317696583a0467490e3a4111b3 Mon Sep 17 00:00:00 2001 From: Kaming Chan Date: Wed, 13 Feb 2019 03:13:55 +0800 Subject: [PATCH 1505/3440] remove extra space (#2371) * remove extra space * add missing dot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 87a57a345a3..25ce626d462 100644 --- a/README.md +++ b/README.md @@ -1616,7 +1616,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. -* [silk] (https://github.com/chrispassas/silk) - Read silk netflow files +* [silk](https://github.com/chrispassas/silk) - Read silk netflow files. * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. * [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. From 0b8b5ff61b7822dcfea76521a197c5ec93987816 Mon Sep 17 00:00:00 2001 From: Andy Date: Tue, 12 Feb 2019 19:23:42 +0000 Subject: [PATCH 1506/3440] Fix broken link for conflate (#2366) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 25ce626d462..5ba374f4de8 100644 --- a/README.md +++ b/README.md @@ -247,7 +247,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. * [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. * [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. -* [conflate](https://github.com/miracl/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. +* [conflate](https://github.com/the4thamigo-uk/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. * [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. From 6a23faaa6b8f9247fef5fed36a85f9d271d76de4 Mon Sep 17 00:00:00 2001 From: Bobby DeSimone Date: Wed, 20 Feb 2019 06:01:12 -0800 Subject: [PATCH 1507/3440] Add pomerium (#2373) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5ba374f4de8..e28f1da7c66 100644 --- a/README.md +++ b/README.md @@ -1901,6 +1901,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [Pewpew](https://github.com/bengadbois/pewpew) - Flexible HTTP command line stress tester. +* [Pomerium](https://github.com/pomerium/pomerium) - Pomerium is an identity-aware access proxy. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). From 25ca7a258b4dbdd0b6bfec8315b3bea1828a6bc3 Mon Sep 17 00:00:00 2001 From: ztrue Date: Wed, 20 Feb 2019 16:01:53 +0200 Subject: [PATCH 1508/3440] Update README.md (#2369) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e28f1da7c66..170335ee248 100644 --- a/README.md +++ b/README.md @@ -578,6 +578,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. * [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. +* [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. * [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. ## Files From 8164b3ae2587fe06856a2d0eb0e47b033234b9d1 Mon Sep 17 00:00:00 2001 From: zekro Date: Wed, 20 Feb 2019 15:02:45 +0100 Subject: [PATCH 1509/3440] Update README.md (#2374) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 170335ee248..a40eaccc1b4 100644 --- a/README.md +++ b/README.md @@ -331,6 +331,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. * [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. +* [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. * [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. From bb3bb26db40c727f5cb79b43b527ff0a370a659a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Dtalo=20Vietro?= Date: Wed, 20 Feb 2019 15:04:03 +0100 Subject: [PATCH 1510/3440] Added outboxer (#2375) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a40eaccc1b4..8ab7ebeda67 100644 --- a/README.md +++ b/README.md @@ -522,6 +522,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. * [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. From ac2cef174ab26a0692d3b653b0318924b129cb18 Mon Sep 17 00:00:00 2001 From: Kamil Samigullin Date: Wed, 20 Feb 2019 17:06:25 +0300 Subject: [PATCH 1511/3440] add github.com/kamilsk/breaker (#2376) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ab7ebeda67..1c64bd310e5 100644 --- a/README.md +++ b/README.md @@ -699,6 +699,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ants](https://github.com/panjf2000/ants) - A high-performance goroutine pool for golang. * [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. +* [breaker](https://github.com/kamilsk/breaker) - 🚧 Flexible mechanism to make your code breakable. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. From 1420c26568e23d98b9d08ebd23c9e892d0e2acc0 Mon Sep 17 00:00:00 2001 From: Tyler Finethy Date: Wed, 20 Feb 2019 09:13:45 -0500 Subject: [PATCH 1512/3440] Added dynatomic (#2380) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1c64bd310e5..4ce86147b72 100644 --- a/README.md +++ b/README.md @@ -506,6 +506,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash. * [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. * [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation. +* [dynatomic](https://github.com/tylfin/dynatomic) - A library for using DynamoDB as an atomic counter. * [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. * [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package. * [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. From 15a42a285866fdaf95422542044e0d88c0829edc Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Wed, 20 Feb 2019 19:44:19 +0530 Subject: [PATCH 1513/3440] Add asciigraph (#2381) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4ce86147b72..0edf936204d 100644 --- a/README.md +++ b/README.md @@ -214,6 +214,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building Console Applications and Console User Interfaces.* +* [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. * [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that supports fmt.Printf/Sprintf. * [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. * [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. From 452d220b93e28236e7b6d8e74675831167b70ad0 Mon Sep 17 00:00:00 2001 From: David Gamba Date: Wed, 20 Feb 2019 07:14:57 -0700 Subject: [PATCH 1514/3440] Add DavidGamba/go-getoptions (#2382) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0edf936204d..f5409799218 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go. * [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. +* [go-getoptions](https://github.com/DavidGamba/go-getoptions) - Go option parser inspired on the flexibility of Perl’s GetOpt::Long. * [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. * [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection. * [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands. From 3e1ef033007e636283b3f00c56b40f2904fff292 Mon Sep 17 00:00:00 2001 From: Marvin Blum <6115423+Kugelschieber@users.noreply.github.com> Date: Wed, 20 Feb 2019 15:16:33 +0100 Subject: [PATCH 1515/3440] Removed gondolier, added 'hide' and 'null'. (#2377) * Removed gondolier, added 'hide' and 'null'. * Alphabetical order. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f5409799218..c1027f593f8 100644 --- a/README.md +++ b/README.md @@ -320,6 +320,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. * [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. +* [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. * [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. @@ -327,6 +328,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. +* [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. * [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. @@ -380,7 +382,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. -* [gondolier](https://github.com/emvicom/gondolier) - Gondolier is a library to auto migrate database schemas using structs. * [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/golang-migrate/migrate) - Database migrations. CLI and Golang library. From 9175d5ce931887f2b0f1f9c721ebf91c3d472b1d Mon Sep 17 00:00:00 2001 From: Arthur Kushman Date: Wed, 20 Feb 2019 17:30:49 +0300 Subject: [PATCH 1516/3440] readme. Go library for PHP community with convenient functions (#2378) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c1027f593f8..46d378074d4 100644 --- a/README.md +++ b/README.md @@ -1608,6 +1608,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. * [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. From 34d9fe93daa8870693ebc32ad5a6dbc3a0ac444e Mon Sep 17 00:00:00 2001 From: Bakhtiyor Ruziev <32102033+bruziev@users.noreply.github.com> Date: Thu, 21 Feb 2019 11:51:18 +0300 Subject: [PATCH 1517/3440] Add Golang Kazan meetup group (#2383) * Add Golang Kazan group * Fix alphabetical --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46d378074d4..f4b3a79727e 100644 --- a/README.md +++ b/README.md @@ -2076,6 +2076,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Sydney, AU](https://www.meetup.com/golang-syd/) * [Golang São Paulo - Brazil](https://www.meetup.com/golangbr/) * [Golang Vancouver, BC](https://www.meetup.com/golangvan/) +* [Golang Казань](https://www.meetup.com/GolangKazan/) * [Golang Москва](https://www.meetup.com/Golang-Moscow/) * [Golang Питер](https://www.meetup.com/Golang-Peter/) * [Istanbul Golang](https://www.meetup.com/Istanbul-Golang/) From 466e1d77762f20efcd8104342d22021316a54273 Mon Sep 17 00:00:00 2001 From: Guilherme Caruso Date: Sun, 24 Feb 2019 20:25:05 -0300 Subject: [PATCH 1518/3440] Update project url (#2386) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f4b3a79727e..e2543a2c0a3 100644 --- a/README.md +++ b/README.md @@ -491,7 +491,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. * [goweek](https://github.com/grsmv/goweek) - Library for working with week entity in golang. * [iso8601](https://github.com/relvacode/iso8601) - Efficiently parse ISO8601 date-times without regex. -* [Kair](https://github.com/GuilhermeCaruso/Kair) - Date and Time - Golang Formatting Library. +* [kair](https://github.com/GuilhermeCaruso/kair) - Date and Time - Golang Formatting Library. * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. * [NullTime](https://github.com/kirillDanshin/nulltime) - Nullable `time.Time`. * [strftime](https://github.com/awoodbeck/strftime) - C99-compatible strftime formatter. From a47321403c538098124c16dd950820c06dbf83dd Mon Sep 17 00:00:00 2001 From: Stefano Gabryel Date: Mon, 25 Feb 2019 10:21:59 +0100 Subject: [PATCH 1519/3440] Adding uber/dig (#2388) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e2543a2c0a3..860322482f4 100644 --- a/README.md +++ b/README.md @@ -977,6 +977,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with dependency injection.* * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. +* [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. ### Strings From e27f6ac3aa0dd03a7397a1d1daccc706598a6ebd Mon Sep 17 00:00:00 2001 From: Miguel Pragier Date: Mon, 25 Feb 2019 08:35:24 -0300 Subject: [PATCH 1520/3440] Proposing miguelpragier/handy (#2379) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 860322482f4..f69f6d22884 100644 --- a/README.md +++ b/README.md @@ -1582,6 +1582,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. * [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. It's like lodash, but for golang. +* [handy](https://github.com/miguelpragier/handy) - Many utilities and helpers like string handlers/formatters and validators. * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. * [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. From 2058e9eb81f7a790f9d72f4c76878e204b7c804d Mon Sep 17 00:00:00 2001 From: Quim Muntal Date: Mon, 25 Feb 2019 12:36:33 +0100 Subject: [PATCH 1521/3440] add opc to readme (#2357) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f69f6d22884..361676ac032 100644 --- a/README.md +++ b/README.md @@ -596,6 +596,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. * [pdfcpu](https://github.com/hhrutter/pdfcpu) - PDF processor. * [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. * [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. From 70a055783f3c745a1c58bbca65ed05fd32d91bdf Mon Sep 17 00:00:00 2001 From: Tyler Wince Date: Mon, 25 Feb 2019 06:42:49 -0500 Subject: [PATCH 1522/3440] Add tylerwince/godbg (#2343) * Add godbg to README * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 361676ac032..fd72bff422b 100644 --- a/README.md +++ b/README.md @@ -1863,6 +1863,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. +* [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. From 06673990ae2444f9e1785d5d019467c4fc5f8c53 Mon Sep 17 00:00:00 2001 From: Karlson Lee Date: Tue, 26 Feb 2019 08:58:53 +0000 Subject: [PATCH 1523/3440] update orderbook (#2390) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fd72bff422b..7e7c3fbe95f 100644 --- a/README.md +++ b/README.md @@ -611,6 +611,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. * [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). +* [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. * [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies. * [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. From 408cc7a870135906dc4819bca08acc15cb54f460 Mon Sep 17 00:00:00 2001 From: Christian Weichel Date: Tue, 26 Feb 2019 14:41:34 +0100 Subject: [PATCH 1524/3440] Adding 32leaves/bel (#2389) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7e7c3fbe95f..3f55000dc93 100644 --- a/README.md +++ b/README.md @@ -1280,6 +1280,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang. * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. +* [bel](https://github.com/32leaves/bel) - Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC. * [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. * [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. * [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. From bf16dd1d784a360a0d8ae34bcfa61aeb71c0d3a6 Mon Sep 17 00:00:00 2001 From: Yuce Tekol Date: Tue, 26 Feb 2019 16:42:56 +0300 Subject: [PATCH 1525/3440] Added go-pilosa (#2384) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f55000dc93..5d9fa3a207b 100644 --- a/README.md +++ b/README.md @@ -446,6 +446,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [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. + * [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa. * [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. * [gocql](http://gocql.github.io) - Go language driver for Apache Cassandra. From 7a4aae73c74c9592938571991fa48743cce18eca Mon Sep 17 00:00:00 2001 From: olivierperes Date: Tue, 26 Feb 2019 17:05:21 +0100 Subject: [PATCH 1526/3440] Add Squalus (#2392) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5d9fa3a207b..ea1744e2b84 100644 --- a/README.md +++ b/README.md @@ -417,6 +417,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. +* [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries. * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. * [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. From 6e899ca1ddcca1d21371d7bda61112a58679100b Mon Sep 17 00:00:00 2001 From: Dang Nguyen Date: Wed, 6 Mar 2019 20:23:15 +0700 Subject: [PATCH 1527/3440] Add gophercon Vietnam (#2399) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ea1744e2b84..ed8548a9efd 100644 --- a/README.md +++ b/README.md @@ -2018,6 +2018,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel. * [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia. * [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore. +* [GopherCon Vietnam](https://gophercon.vn/) - Ho Chi Minh City, Vietnam. * [GothamGo](http://gothamgo.com/) - New York City, USA. * [GoWayFest](https://goway.io/) - Minsk, Belarus. From a4ebb715ebdbbab6ac87cc5e61a6dd334c396dd7 Mon Sep 17 00:00:00 2001 From: Mark Phelps Date: Wed, 6 Mar 2019 08:32:28 -0500 Subject: [PATCH 1528/3440] Add markphelps/flipt (#2397) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed8548a9efd..c09e219ab7e 100644 --- a/README.md +++ b/README.md @@ -1305,6 +1305,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. +* [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. From 5a41f89d46c30f1e42b619ba62ff0d3929dca121 Mon Sep 17 00:00:00 2001 From: skanehira Date: Thu, 7 Mar 2019 10:45:46 +0900 Subject: [PATCH 1529/3440] Add gjo (#2406) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo:https://github.com/skanehira/gjo - godoc.org:https://godoc.org/github.com/skanehira/gjo - goreportcard.com:https://goreportcard.com/report/github.com/skanehira/gjo - coverage service link [gocover](https://gocover.io/github.com/skanehira/gjo) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c09e219ab7e..7df3fc98bc4 100644 --- a/README.md +++ b/README.md @@ -829,6 +829,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with JSON.* +* [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. * [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. * [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. * [gojq](https://github.com/elgs/gojq) - JSON query in Golang. From 4d3b979e5b7e2e1a41b890d74d58fe47b1a96442 Mon Sep 17 00:00:00 2001 From: John Judd Date: Wed, 6 Mar 2019 19:46:37 -0600 Subject: [PATCH 1530/3440] Add C2FO/vfs to Files section. (#2396) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/C2FO/vfs - godoc.org: [![GoDoc](https://godoc.org/github.com/c2fo/vfs?status.png)](http://godoc.org/github.com/c2fo/vfs) - goreportcard.com: [![Go Report Card](https://goreportcard.com/badge/github.com/c2fo/vfs)](https://goreportcard.com/report/github.com/c2fo/vfs) - coverage service link: [![codecov](https://codecov.io/gh/c2fo/vfs/branch/master/graph/badge.svg)](https://codecov.io/gh/c2fo/vfs) 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7df3fc98bc4..672ebd7ba2d 100644 --- a/README.md +++ b/README.md @@ -602,6 +602,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pdfcpu](https://github.com/hhrutter/pdfcpu) - PDF processor. * [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. * [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. +* [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. ## Financial From 89ee9bc41f5dd880b6b4bdf4d8d23fa04d243b59 Mon Sep 17 00:00:00 2001 From: Henry Sarabia Date: Wed, 6 Mar 2019 17:47:43 -0800 Subject: [PATCH 1531/3440] Add Henry-Sarabia/sliceconv package (#2398) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/Henry-Sarabia/sliceconv - godoc.org: https://godoc.org/github.com/Henry-Sarabia/sliceconv - goreportcard.com: https://goreportcard.com/report/github.com/Henry-Sarabia/sliceconv - coverage service link: [![Coverage Status](https://coveralls.io/repos/github/Henry-Sarabia/sliceconv/badge.svg?branch=master)](https://coveralls.io/github/Henry-Sarabia/sliceconv?branch=master) **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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 672ebd7ba2d..edd8fbec243 100644 --- a/README.md +++ b/README.md @@ -1636,6 +1636,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. * [silk](https://github.com/chrispassas/silk) - Read silk netflow files. +* [sliceconv](https://github.com/Henry-Sarabia/sliceconv) - Slice conversion between primitive types. * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. * [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. From 5ee89a07227d681542569387a6e055cc8a492101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E4=BD=B3=E5=86=9B?= Date: Thu, 7 Mar 2019 09:48:47 +0800 Subject: [PATCH 1532/3440] Add NutsDB (#2407) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/xujiajun/nutsdb - godoc.org: https://godoc.org/github.com/xujiajun/nutsdb - goreportcard.com: https://goreportcard.com/report/github.com/xujiajun/nutsdb - coverage service link :https://coveralls.io/github/xujiajun/nutsdb?branch=master 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 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index edd8fbec243..ef2402e73a0 100644 --- a/README.md +++ b/README.md @@ -366,6 +366,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. * [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. From c53df8e5784de917dacec896c7921eb8ca3a4e67 Mon Sep 17 00:00:00 2001 From: Gabriel Ochsenhofer Date: Thu, 7 Mar 2019 05:11:13 -0300 Subject: [PATCH 1533/3440] added github.com/gabstv/go-bsdiff under Utilities (#2395) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef2402e73a0..837f22f7082 100644 --- a/README.md +++ b/README.md @@ -1568,6 +1568,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git. * [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-bsdiff](https://github.com/gabstv/go-bsdiff) - Pure Go bsdiff and bspatch libraries and CLI tools. * [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-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. From 060e56fcfc3aa8492dcd6dd60eb7f7ac387a0a8b Mon Sep 17 00:00:00 2001 From: Babiv Sergey Date: Thu, 7 Mar 2019 17:05:00 +0300 Subject: [PATCH 1534/3440] rmqconn (#2410) * Update README.md rmqconn * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 837f22f7082..a12bb8074b8 100644 --- a/README.md +++ b/README.md @@ -963,6 +963,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rabbus](https://github.com/rafaeljesus/rabbus) - A tiny wrapper over amqp exchanges and queues. * [rabtap](https://github.com/jandelgado/rabtap) - RabbitMQ swiss army knife cli app. * [RapidMQ](https://github.com/sybrexsys/RapidMQ) - RapidMQ is a lightweight and reliable library for managing of the local messages queue. +* [rmqconn](https://github.com/sbabiv/rmqconn) - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed. * [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). From 1416f4404c6ada53592912ccfb58e8da7696d62b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20G=C3=A9rardin?= Date: Fri, 8 Mar 2019 13:23:02 +0100 Subject: [PATCH 1535/3440] Added fx (#2411) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a12bb8074b8..f37cff4692e 100644 --- a/README.md +++ b/README.md @@ -986,6 +986,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. * [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. +* [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. ### Strings From 24e3168f36ac2260870d144d9c888c8c509760e0 Mon Sep 17 00:00:00 2001 From: Henry Sarabia Date: Fri, 8 Mar 2019 09:32:59 -0800 Subject: [PATCH 1536/3440] Add Henry-Sarabia/blank package (#2412) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f37cff4692e..b2c9d453671 100644 --- a/README.md +++ b/README.md @@ -1544,6 +1544,7 @@ 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. * [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. +* [blank](https://github.com/Henry-Sarabia/blank) - Verify or remove blanks and whitespace from strings. * [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. * [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. * [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. From 2944a4583151df60c0217baba1dccebd764ff4c1 Mon Sep 17 00:00:00 2001 From: Cheyne Wallace Date: Tue, 12 Mar 2019 14:01:15 +1100 Subject: [PATCH 1537/3440] Adding tabby (#2394) - github.com repo: https://github.com/cheynewallace/tabby - godoc.org: https://godoc.org/github.com/cheynewallace/tabby - goreportcard.com: https://goreportcard.com/report/github.com/cheynewallace/tabby - coverage service link [![cover.run](https://cover.run/go/github.com/cheynewallace/tabby.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fcheynewallace%2Ftabby) **Make sure that you've checked the boxes below before you submit PR:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b2c9d453671..3b5badb7a7f 100644 --- a/README.md +++ b/README.md @@ -233,6 +233,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. * [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. * [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. +* [tabby](https://github.com/cheynewallace/tabby) - A tiny library for super simple Golang tables. * [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). From cd572c07884ad7ee6d44d08a591ca72b80def634 Mon Sep 17 00:00:00 2001 From: Kim Faint Date: Thu, 14 Mar 2019 02:54:18 +1000 Subject: [PATCH 1538/3440] Added Brisbane Gophers to Meetups (#2422) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b5badb7a7f..d0b3cdebc2e 100644 --- a/README.md +++ b/README.md @@ -2063,6 +2063,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Meetups +* [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) * [Go Language NYC](https://www.meetup.com/golanguagenewyork/) * [Go London User Group](https://www.meetup.com/Go-London-User-Group/) * [Go Toronto](https://www.meetup.com/go-toronto/) From e0cdbf68505c663fa85052e36401c38363c5ca61 Mon Sep 17 00:00:00 2001 From: Alexey Krivonogov Date: Sun, 17 Mar 2019 00:46:10 +0500 Subject: [PATCH 1539/3440] Update README.md (#2419) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d0b3cdebc2e..414de8329bf 100644 --- a/README.md +++ b/README.md @@ -568,6 +568,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). * [expr](https://github.com/antonmedv/expr) - an engine that can evaluate expressions. +* [gentee](https://github.com/gentee/gentee) - Embeddable scripting programming language. * [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. From e086ffaa1c8cf879932d16a27572e157238cfd2f Mon Sep 17 00:00:00 2001 From: Noval Agung Prayogo Date: Sun, 17 Mar 2019 02:46:53 +0700 Subject: [PATCH 1540/3440] update gubrak link (#2428) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 414de8329bf..74431693ed6 100644 --- a/README.md +++ b/README.md @@ -1596,7 +1596,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gostrutils](https://github.com/ik5/gostrutils) - Collections of string manipulation and conversion functions. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. -* [gubrak](https://gubrak.github.io/) - Golang utility library with syntactic sugar. It's like lodash, but for golang. +* [gubrak](https://github.com/novalagung/gubrak) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [handy](https://github.com/miguelpragier/handy) - Many utilities and helpers like string handlers/formatters and validators. * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. * [hub](https://github.com/github/hub) - wrap git commands with additional functionality to interact with github from the terminal. From d40629df11a99a832ce0b74e37d1d97f0fecd32b Mon Sep 17 00:00:00 2001 From: Shantanu Rahman Date: Sun, 17 Mar 2019 02:08:55 +0600 Subject: [PATCH 1541/3440] Add gophercises as a resource (#2429) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74431693ed6..a918a52a138 100644 --- a/README.md +++ b/README.md @@ -2137,6 +2137,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. * [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. * [Gopher Community Chat](https://invite.slack.golangbridge.org) - Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)). +* [Gophercises](https://gophercises.com/) - Free coding exercises for budding gophers. * [gowalker.org](https://gowalker.org) - Go Project API documentation. * [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). * [r/Golang](https://www.reddit.com/r/golang) - News about Go. From 264d5aa66dec632ea2215da3528e0e9bf054f610 Mon Sep 17 00:00:00 2001 From: Kamil Samigullin Date: Tue, 19 Mar 2019 12:42:16 +0300 Subject: [PATCH 1542/3440] update description for kamilsk/retry package (#2421) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a918a52a138..c5ab2b35af3 100644 --- a/README.md +++ b/README.md @@ -1635,7 +1635,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. -* [retry](https://github.com/kamilsk/retry) - Functional mechanism based on context to perform actions repetitively until successful. +* [retry](https://github.com/kamilsk/retry) - The most advanced functional mechanism to perform actions repetitively until successful. * [retry](https://github.com/percolate/retry) - A simple but highly configurable retry package for Go. * [retry](https://github.com/thedevsaddam/retry) - Simple and easy retry mechanism package for Go. * [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. From 6639ad865a431404b6a03d7372d08b243bf13242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20Soul=C3=A9?= Date: Tue, 19 Mar 2019 10:58:04 +0100 Subject: [PATCH 1543/3440] Add httpmock package (#2430) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c5ab2b35af3..365c949e896 100644 --- a/README.md +++ b/README.md @@ -1396,6 +1396,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [hoverfly](https://github.com/SpectoLabs/hoverfly) - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI. + * [httpmock](https://github.com/jarcoal/httpmock) - Easy mocking of HTTP responses from external resources. * [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. From 4a90bc77ca34539c0ed361f8a919f660bba79d4d Mon Sep 17 00:00:00 2001 From: xuri Date: Wed, 20 Mar 2019 00:31:56 +0800 Subject: [PATCH 1544/3440] add TOML-to-Go to the Go Generate Tools list (#2432) * add TOML-to-Go to the Go Generate Tools list * add TOML-to-Go to the Go Generate Tools list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 365c949e896..cfcde7f8143 100644 --- a/README.md +++ b/README.md @@ -1869,6 +1869,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. * [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. * [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. +* [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly. ## Go Tools From a27796b37c271bab194377379b374be5c04e5d62 Mon Sep 17 00:00:00 2001 From: Guilherme Caruso Date: Tue, 19 Mar 2019 14:03:16 -0300 Subject: [PATCH 1545/3440] Add Routers:bellt repositorie (#2423) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cfcde7f8143..462d5bb14ba 100644 --- a/README.md +++ b/README.md @@ -1777,6 +1777,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### Routers * [alien](https://github.com/gernest/alien) - Lightweight and fast http router from outer space. +* [bellt](https://github.com/GuilhermeCaruso/bellt) - A simple Go HTTP router. * [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. From f1b3587b432b357f3ccc3a45910e79b6c0dcb541 Mon Sep 17 00:00:00 2001 From: Guillaume de Sagazan Date: Tue, 19 Mar 2019 18:14:35 +0100 Subject: [PATCH 1546/3440] Add TySug (#2426) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 462d5bb14ba..2af81a52c4f 100644 --- a/README.md +++ b/README.md @@ -1463,6 +1463,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. * [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text. From 2cc532e48d31c8c5362d0190f80703be406dfe7b Mon Sep 17 00:00:00 2001 From: faceair Date: Wed, 20 Mar 2019 01:23:48 +0800 Subject: [PATCH 1547/3440] add jio (#2427) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2af81a52c4f..456743f0009 100644 --- a/README.md +++ b/README.md @@ -1676,6 +1676,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. * [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. +* [jio](https://github.com/faceair/jio) - jio is a json schema validator similar to [joi](https://github.com/hapijs/joi). * [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. * [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. * [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications. From 69babc109df3848b7e8e8a7d44a0945732a98993 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Wed, 20 Mar 2019 23:21:23 +0800 Subject: [PATCH 1548/3440] Add golang meetup in Taipei (#2434) Welcome to Taipei 101 in Taiwan. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 456743f0009..149a44f91d5 100644 --- a/README.md +++ b/README.md @@ -2101,6 +2101,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Stockholm](https://www.meetup.com/Go-Stockholm/) * [Golang Sydney, AU](https://www.meetup.com/golang-syd/) * [Golang São Paulo - Brazil](https://www.meetup.com/golangbr/) +* [Golang Taipei](https://www.meetup.com/golang-taipei-meetup/) * [Golang Vancouver, BC](https://www.meetup.com/golangvan/) * [Golang Казань](https://www.meetup.com/GolangKazan/) * [Golang Москва](https://www.meetup.com/Golang-Moscow/) From 888add8cf9898539bf9fcf4435e884babac24612 Mon Sep 17 00:00:00 2001 From: Hiromu OCHIAI Date: Thu, 21 Mar 2019 17:30:43 +0900 Subject: [PATCH 1549/3440] Add "ocrserver" (#2436) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 149a44f91d5..7cbc5163108 100644 --- a/README.md +++ b/README.md @@ -921,6 +921,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. * [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. +* [ocrserver](https://github.com/otiai10/ocrserver) - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. * [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. From 7797a1d6521f9973fe899572aadd8ca9cb71d5a4 Mon Sep 17 00:00:00 2001 From: Nikhil Saraf <1028334+nikhilsaraf@users.noreply.github.com> Date: Thu, 21 Mar 2019 02:19:52 -0700 Subject: [PATCH 1550/3440] Add Kelp cryptocurrency trading bot (#2420) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: [https://github.com/stellar/kelp](https://github.com/stellar/kelp) - godoc.org: [![Godoc](https://godoc.org/github.com/stellar/kelp?status.svg)](https://godoc.org/github.com/stellar/kelp) - goreportcard.com: [![Go Report Card](https://goreportcard.com/badge/github.com/stellar/kelp)](https://goreportcard.com/report/github.com/stellar/kelp) - coverage service link: ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` 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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] 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. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7cbc5163108..986f7d46032 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. * [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. * [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. +* [Kelp](https://github.com/stellar/kelp) - official trading and market-making bot for the [Stellar](https://www.stellar.org/) DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies. * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. * [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. From 85593af5d2d638695e1307000da928367132c4e1 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 23 Mar 2019 07:33:11 -0300 Subject: [PATCH 1551/3440] Netlify hosting (#2441) * site deploy on netlify Signed-off-by: Avelino * after test success html deploy to netlify Signed-off-by: Avelino --- .travis.yml | 9 +++++++- repo.go | 59 ---------------------------------------------------- repo_test.go | 27 ++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 60 deletions(-) delete mode 100644 repo.go diff --git a/.travis.yml b/.travis.yml index d155248969c..ba9b7b31410 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,8 +2,15 @@ language: go go: - 1.x - + sudo: false install: - go get -t -v ./... + - npm install netlify-cli -g + +deploy: + provider: script + script: netlify deploy --dir=tmpl --prod + on: + branch: master diff --git a/repo.go b/repo.go deleted file mode 100644 index d04831cc8aa..00000000000 --- a/repo.go +++ /dev/null @@ -1,59 +0,0 @@ -package main - -import ( - "io/ioutil" - "net/http" - "os" - "os/exec" - "text/template" - - "github.com/gorilla/mux" - gfm "github.com/shurcooL/github_flavored_markdown" -) - -// memory usage optimizations -const ( - emtyStr = "" - git = "git" - checkout = "checkout" - force = "-f" - pull = "pull" - - // options - readmePath = "./README.md" - tplPath = "tmpl/tmpl.html" - idxPath = "tmpl/index.html" -) - -var ( - doneResp = []byte("Done!\n") -) - -type content struct { - Body string -} - -func generateHTML() { - // Update repo - exec.Command(git, checkout, force).Output() - exec.Command(git, pull).Output() - - input, _ := ioutil.ReadFile(readmePath) - body := string(gfm.Markdown(input)) - c := &content{Body: body} - - t := template.Must(template.ParseFiles(tplPath)) - f, _ := os.Create(idxPath) - t.Execute(f, c) -} - -func hookHandler(w http.ResponseWriter, r *http.Request) { - go generateHTML() - w.Write(doneResp) -} - -func main() { - r := mux.NewRouter() - r.HandleFunc("/hook", hookHandler) - http.ListenAndServe(":9000", r) -} diff --git a/repo_test.go b/repo_test.go index 8314ee4724d..fe3fe4992ef 100644 --- a/repo_test.go +++ b/repo_test.go @@ -3,15 +3,22 @@ package main import ( "bytes" "io/ioutil" + "os" "regexp" "sort" "strings" "testing" + "text/template" "github.com/PuerkitoBio/goquery" "github.com/russross/blackfriday" + gfm "github.com/shurcooL/github_flavored_markdown" ) +type content struct { + Body string +} + func TestAlpha(t *testing.T) { query := startQuery() @@ -70,6 +77,12 @@ func TestSeparator(t *testing.T) { } } } +func TestGenerateHTML(t *testing.T) { + err := generateHTML() + if err != nil { + t.Errorf("html generate error '%s'", err.Error()) + } +} func testList(t *testing.T, list *goquery.Selection) { list.Find("ul").Each(func(_ int, items *goquery.Selection) { @@ -122,3 +135,17 @@ func checkAlphabeticOrder(t *testing.T, s *goquery.Selection) { t.Logf("expected order is:\n%s", strings.Join(sorted, "\n")) } } + +func generateHTML() (err error) { + // options + readmePath := "./README.md" + tplPath := "tmpl/tmpl.html" + idxPath := "tmpl/index.html" + input, _ := ioutil.ReadFile(readmePath) + body := string(gfm.Markdown(input)) + c := &content{Body: body} + t := template.Must(template.ParseFiles(tplPath)) + f, err := os.Create(idxPath) + t.Execute(f, c) + return +} From c916620ad6a200bf5a4653a29a306f2f23edb3c7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 23 Mar 2019 07:49:41 -0300 Subject: [PATCH 1552/3440] travis deploy skip cleanup https://docs.travis-ci.com/user/deployment#uploading-files-and-skip_cleanup Signed-off-by: Avelino --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index ba9b7b31410..d6f403deda3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,5 +12,6 @@ install: deploy: provider: script script: netlify deploy --dir=tmpl --prod + skip_cleanup: true on: branch: master From 60ce7b93724b81fdab83699bb388754ab35e7ec5 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 23 Mar 2019 07:56:10 -0300 Subject: [PATCH 1553/3440] add netlify badge Signed-off-by: Avelino --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 986f7d46032..00e6875f2d9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Awesome Go -[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) +[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). @@ -990,7 +990,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. * [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. -* [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). +* [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. ### Strings @@ -1781,7 +1781,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### Routers * [alien](https://github.com/gernest/alien) - Lightweight and fast http router from outer space. -* [bellt](https://github.com/GuilhermeCaruso/bellt) - A simple Go HTTP router. +* [bellt](https://github.com/GuilhermeCaruso/bellt) - A simple Go HTTP router. * [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. From d8ae71b822766261cd39d7ad3506d1e9483a9dfa Mon Sep 17 00:00:00 2001 From: Avelino Date: Sun, 24 Mar 2019 08:42:35 -0300 Subject: [PATCH 1554/3440] patreon button ref: https://github.com/avelino/awesome-go/pull/2441#issuecomment-475944023 Signed-off-by: Avelino --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 00e6875f2d9..6eae5d5d13e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) +[![patreon avelino](https://c5.patreon.com/external/logo/become_a_patron_button@2x.png)](https://www.patreon.com/avelinosource) financial support to Awesome Go + A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). ### Contributing From 9bc0a70edc016ceb4da97734b7799a36ecf989f8 Mon Sep 17 00:00:00 2001 From: arhuman Date: Sun, 24 Mar 2019 16:34:50 +0100 Subject: [PATCH 1555/3440] Update README.md to add Golang Marseille Meetup (#2443) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6eae5d5d13e..3360e0c21e6 100644 --- a/README.md +++ b/README.md @@ -2096,6 +2096,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) * [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) * [Golang Lyon](https://www.meetup.com/Golang-Lyon/) +* [Golang Marseille](https://www.meetup.com/fr-FR/Golang-Marseille/) * [Golang Melbourne](https://www.meetup.com/golang-mel/) * [Golang Mountain View](https://www.meetup.com/Golang-Mountain-View/) * [Golang New York](https://www.meetup.com/nycgolang/) From 69bd316d9c94ed9e5df1b83aaebfb7348bc48bd2 Mon Sep 17 00:00:00 2001 From: Marvin Blum <6115423+Kugelschieber@users.noreply.github.com> Date: Sun, 24 Mar 2019 19:52:30 +0100 Subject: [PATCH 1556/3440] Add gondolier database schema migration. (#2439) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3360e0c21e6..eec1ad973aa 100644 --- a/README.md +++ b/README.md @@ -387,6 +387,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. +* [gondolier](https://github.com/emvi/gondolier) - Database migration library using struct decorators. * [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/golang-migrate/migrate) - Database migrations. CLI and Golang library. From 7ef734a2207e68d6b775377148603c094cc0f306 Mon Sep 17 00:00:00 2001 From: Vadim Markovtsev Date: Sun, 24 Mar 2019 20:16:58 +0100 Subject: [PATCH 1557/3440] Add go-git (#2442) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eec1ad973aa..bebadd38fcf 100644 --- a/README.md +++ b/README.md @@ -1693,6 +1693,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. +* [go-git](https://github.com/src-d/go-git) - highly extensible Git implementation in pure Go. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. From c1098c5c67a10cfa3e0fa8f3be4fae55b4182b9e Mon Sep 17 00:00:00 2001 From: Vadim Markovtsev Date: Wed, 27 Mar 2019 14:17:48 +0100 Subject: [PATCH 1558/3440] Add src-d/hercules (#2444) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bebadd38fcf..ae1bc1b3ed4 100644 --- a/README.md +++ b/README.md @@ -1695,6 +1695,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. * [go-git](https://github.com/src-d/go-git) - highly extensible Git implementation in pure Go. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. +* [hercules](https://github.com/src-d/hercules) - gaining advanced insights from Git repository history. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. ## Video From 455b6a45aa87260e557d31662bb16d586e0b70c8 Mon Sep 17 00:00:00 2001 From: Nikhil Saraf <1028334+nikhilsaraf@users.noreply.github.com> Date: Thu, 28 Mar 2019 08:00:25 -0700 Subject: [PATCH 1559/3440] Add go-tools/multithreading for manage goroutines (#2446) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ae1bc1b3ed4..66df62328f4 100644 --- a/README.md +++ b/README.md @@ -719,6 +719,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. +* [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. * [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. From feb3cd907e1003c11368399fd9f0416e217c1ce9 Mon Sep 17 00:00:00 2001 From: rameshvk Date: Sun, 31 Mar 2019 07:02:13 -0700 Subject: [PATCH 1560/3440] Add `testmd` -- a markdown-to-golang-test converter (#2447) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 66df62328f4..938a2549eab 100644 --- a/README.md +++ b/README.md @@ -1390,6 +1390,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [testmd](https://godoc.org/github.com/tvastar/test/cmd/testmd) - Convert markdown snippets into testable go code. * [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. * [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. * [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler. From 478f9058f3d3d997254028452a82c23ac16163f9 Mon Sep 17 00:00:00 2001 From: Iwan Budi Kusnanto Date: Tue, 2 Apr 2019 01:30:46 +0700 Subject: [PATCH 1561/3440] Add iwanbk/bcache. (#2449) Eventually consistent distributed in-memory cache Go library. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 938a2549eab..1777e9b33d6 100644 --- a/README.md +++ b/README.md @@ -349,6 +349,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Databases implemented in Go.* * [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. +* [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. * [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. From 92e20fe659eeda48cd8726a7099cb3075e686e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C5=A0trba?= Date: Tue, 2 Apr 2019 10:16:02 +0200 Subject: [PATCH 1562/3440] add Oto (#2405) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1777e9b33d6..94ad0c659ac 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. From 9767c1d16046af54e189f885082cdf8ecfec7ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20B=C3=A4umer?= Date: Tue, 2 Apr 2019 18:32:00 +0200 Subject: [PATCH 1563/3440] Add commander (#2450) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 94ad0c659ac..22dace75cc4 100644 --- a/README.md +++ b/README.md @@ -1362,6 +1362,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them. * [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. + * [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. * [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. From 6619c864185012b0a0002a387eca8190c9cbaecc Mon Sep 17 00:00:00 2001 From: rameshvk Date: Tue, 2 Apr 2019 16:07:04 -0700 Subject: [PATCH 1564/3440] Add dotchain/dot (#2451) * Add dotchain/dot * Add dot at end of README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 22dace75cc4..699cd9590dc 100644 --- a/README.md +++ b/README.md @@ -516,6 +516,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. * [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. * [digota](https://github.com/digota/digota) - grpc ecommerce microservice. +* [dot](https://github.com/dotchain/dot/) - distributed sync using operational transformation/OT. * [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash. * [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. * [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation. From 582f69880d725338bb3304df43b0dfe0ea468201 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Tue, 2 Apr 2019 20:25:56 -0300 Subject: [PATCH 1565/3440] Improve test (#2454) * adjust regex to caught corner case * fix wrong lines --- README.md | 4 ++-- repo_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 699cd9590dc..ce58dc17430 100644 --- a/README.md +++ b/README.md @@ -486,7 +486,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. * [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. - * [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more) + * [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more). ## Date and Time @@ -1770,7 +1770,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. * [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. * [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. -* [ln-paywall](https://github.com/philippgille/ln-paywall) - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin) +* [ln-paywall](https://github.com/philippgille/ln-paywall) - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin). * [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. * [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. diff --git a/repo_test.go b/repo_test.go index fe3fe4992ef..19ac5d4aa2b 100644 --- a/repo_test.go +++ b/repo_test.go @@ -49,7 +49,7 @@ func TestDuplicatedLinks(t *testing.T) { var ( reContainsLink = regexp.MustCompile(`\* \[.*\]\(.*\)`) - reOnlyLink = regexp.MustCompile(`\* \[.*\]\(.*\)$`) + reOnlyLink = regexp.MustCompile(`\* \[.*\]\([^()]*\)$`) reLinkWithDescription = regexp.MustCompile(`\* \[.*\]\(.*\) - \S.*[\.\!]`) ) From b1c948810d540276bef4f9529765cb4f4f4d7118 Mon Sep 17 00:00:00 2001 From: Maria Letta <49082826+MariaLetta@users.noreply.github.com> Date: Wed, 3 Apr 2019 12:27:29 +0300 Subject: [PATCH 1566/3440] Add Free Gophers Pack (#2452) Another resource with gopher graphics --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ce58dc17430..4f69779e19c 100644 --- a/README.md +++ b/README.md @@ -2069,6 +2069,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Gophers +* [Free Gophers Pack](https://github.com/MariaLetta/free-gophers-pack) - Gopher graphics pack by Maria Letta with illustrations and emotional characters in vector and raster. * [Go-gopher-Vector](https://github.com/keygx/Go-gopher-Vector) - Go gopher Vector Data [.ai, .svg]. * [gopher-logos](https://github.com/GolangUA/gopher-logos) - adorable gopher logos. * [gopher-stickers](https://github.com/tenntenn/gopher-stickers) From 6e521add4e9468b7c503b044152d83917be80fb7 Mon Sep 17 00:00:00 2001 From: Martin Czygan <53705+miku@users.noreply.github.com> Date: Wed, 3 Apr 2019 16:50:09 +0200 Subject: [PATCH 1567/3440] add miku/zek (#2372) * add miku/zek * fix order --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4f69779e19c..b2e64e9cdf1 100644 --- a/README.md +++ b/README.md @@ -1824,10 +1824,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries and tools for manipulating XML.* * [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. +* [xml2map](https://github.com/sbabiv/xml2map) - XML to MAP converter written Golang. * [xmlwriter](https://github.com/shabbyrobe/xmlwriter) - Procedural XML generation API based on libxml2's xmlwriter module. * [xpath](https://github.com/antchfx/xpath) - XPath package for Go. * [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. -* [xml2map](https://github.com/sbabiv/xml2map) - XML to MAP converter written Golang. +* [zek](https://github.com/miku/zek) - Generate a Go struct from XML. + # Tools *Go software and plugins.* From 3421b3e72f92746299117dc59d5fb679f9c5c5b4 Mon Sep 17 00:00:00 2001 From: "Pascal S. de Kloe" Date: Wed, 3 Apr 2019 16:51:30 +0200 Subject: [PATCH 1568/3440] Add github.com/pascaldekloe/metrics. (#2403) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b2e64e9cdf1..5513a730857 100644 --- a/README.md +++ b/README.md @@ -1038,6 +1038,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. * [lk](https://github.com/hyperboloide/lk) - A simple licensing library for golang. * [llvm](https://github.com/llir/llvm) - Library for interacting with LLVM IR in pure Go. +* [metrics](https://github.com/pascaldekloe/metrics) - Library for metrics instrumentation and Prometheus exposition. * [morse](https://github.com/alwindoss/morse) - Library to convert to and from morse code. * [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. From 13dd4f1a60afd187ea009b8bc5435ef9cddb11a8 Mon Sep 17 00:00:00 2001 From: Vladislav Fursov Date: Thu, 4 Apr 2019 00:33:57 +0900 Subject: [PATCH 1569/3440] add github.com/ghostiam/binstruct (#2385) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5513a730857..c9d9b60a8d9 100644 --- a/README.md +++ b/README.md @@ -1300,6 +1300,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang. * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. * [bel](https://github.com/32leaves/bel) - Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC. +* [binstruct](https://github.com/ghostiam/binstruct) - Golang binary decoder for mapping data into the structure. * [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. * [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. * [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. From 53e05f8777e4db3fb68febe557314ca473d9216c Mon Sep 17 00:00:00 2001 From: Amir Irani Date: Wed, 3 Apr 2019 20:04:24 +0430 Subject: [PATCH 1570/3440] Update E-Books (#2393) * Update E-Books * Update order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c9d9b60a8d9..6a23c2be3a4 100644 --- a/README.md +++ b/README.md @@ -2063,6 +2063,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Building Web Apps With Go](https://www.gitbook.com/book/codegangsta/building-web-apps-with-go/details) * [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. * [Go Bootcamp](http://golangbootcamp.com) +* [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. * [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/) From a3953366f0131393bc9d4908250fde960fd453de Mon Sep 17 00:00:00 2001 From: Anshul Patel Date: Wed, 3 Apr 2019 21:05:22 +0530 Subject: [PATCH 1571/3440] Add go project layout (#2365) * Added Project Layout section * Refactored layout as per ISSUE template. * Restructuring layout alphabetically. * Add two other projects --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 6a23c2be3a4..ed7108b3801 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Microsoft Excel](#microsoft-excel) - [Miscellaneous](#miscellaneous) - [Dependency Injection](#dependency-injection) + - [Project Layout](#project-layout) - [Strings](#strings) - [Natural Language Processing](#natural-language-processing) - [Networking](#networking) @@ -1000,6 +1001,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. +### Project Layout + +*Unofficial set of patterns for structuring projects.* + +* [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. +* [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. +* [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates starter Go project layout. Lets you focus on business logic implemeted. + ### Strings *Libraries for working with strings.* * [strutil](https://github.com/ozgio/strutil) - String utilities. From abd1aeb4d4e203d13c0f2c3f041ccd4320cc78b4 Mon Sep 17 00:00:00 2001 From: "A. F" Date: Wed, 3 Apr 2019 17:36:14 +0200 Subject: [PATCH 1572/3440] Add beaver to messaging packages (#2402) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed7108b3801..86bae31eda9 100644 --- a/README.md +++ b/README.md @@ -942,6 +942,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement messaging systems.* * [APNs2](https://github.com/sideshow/apns2) - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. +* [Beaver](https://github.com/Clivern/Beaver) - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. * [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. From 69d135cefc58ec9e1db2954b28523bc2b3aadffb Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 3 Apr 2019 12:40:17 -0400 Subject: [PATCH 1573/3440] flop (#2455) * add flop * move to be alphabetical --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 86bae31eda9..96384f9a19b 100644 --- a/README.md +++ b/README.md @@ -602,9 +602,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Files -*Libraries for handling files and file systems.* +*Libraries for handling files and file systems.* * [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. +* [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. From 6022b2803a9db9203dfffc2ce874f9561c41e538 Mon Sep 17 00:00:00 2001 From: Jeremy Loy Date: Thu, 4 Apr 2019 03:51:30 -0400 Subject: [PATCH 1574/3440] Add JeremyLoy/config (#2456) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 96384f9a19b..385afa3c781 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for configuration parsing.* +* [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. * [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. * [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. From 42d2bc2b3e7e5d61ddac2b7e6d7597c1fb7d2607 Mon Sep 17 00:00:00 2001 From: rameshvk Date: Fri, 5 Apr 2019 02:48:03 -0700 Subject: [PATCH 1575/3440] Add treap (#2457) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 385afa3c781..3668d54ec4d 100644 --- a/README.md +++ b/README.md @@ -343,6 +343,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. * [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. +* [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. * [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. From 8967be86ff651b9cd0191488d4f80f5f4dd7aa61 Mon Sep 17 00:00:00 2001 From: Martin Joly Date: Fri, 5 Apr 2019 11:48:24 +0200 Subject: [PATCH 1576/3440] Update README.md (#2391) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3668d54ec4d..8320b8c56bb 100644 --- a/README.md +++ b/README.md @@ -596,6 +596,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for handling errors.* +* [errlog](https://github.com/snwfdhmp/errlog) - Debug errors with failing func call recognition and pretty stack trace printing. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. * [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. From a4ecddb664a71335425bce47a681120f2348a173 Mon Sep 17 00:00:00 2001 From: superwhiskers Date: Fri, 5 Apr 2019 11:41:43 -0500 Subject: [PATCH 1577/3440] add crunch (#2458) * add crunch * add punctuation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8320b8c56bb..ed46d3c3bdd 100644 --- a/README.md +++ b/README.md @@ -311,6 +311,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [concurrent-writer](https://github.com/free/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. * [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. * [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). +* [crunch](https://github.com/superwhiskers/crunch) - Go package implementing buffers for handling various datatypes easily. * [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. * [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. * [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). From dd6461eaefb1e80adbc0cb84000f5c81d0777763 Mon Sep 17 00:00:00 2001 From: Julian Claus Date: Mon, 8 Apr 2019 22:28:26 +0200 Subject: [PATCH 1578/3440] Add assocentity (#2461) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed46d3c3bdd..30994f3f7ee 100644 --- a/README.md +++ b/README.md @@ -1257,6 +1257,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for scientific computing and data analyzing.* +* [assocentity](https://github.com/ndabAP/assocentity) - Package assocentity returns the average distance from words to a given entity. * [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. * [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for Go for machine-learning and statistics (similar to pandas). * [evaler](https://github.com/soniah/evaler) - Simple floating point arithmetic expression evaluator. From 073354b9951f258d250387a82c2a906e772e33f1 Mon Sep 17 00:00:00 2001 From: Osamu TONOMORI Date: Tue, 9 Apr 2019 10:13:12 +0900 Subject: [PATCH 1579/3440] Add osamingo/checkdigit lib (#2464) Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! **Please provide package links to:** - github.com repo: https://github.com/osamingo/checkdigit - godoc.org: https://godoc.org/github.com/osamingo/checkdigit - goreportcard.com: https://goreportcard.com/report/github.com/osamingo/checkdigit - coverage service link: https://codecov.io/gh/osamingo/checkdigit **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:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added godoc link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 30994f3f7ee..fb6e39a63a4 100644 --- a/README.md +++ b/README.md @@ -1703,6 +1703,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for validation.* +* [checkdigit](https://github.com/osamingo/checkdigit) - Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators (ISBN, EAN, JAN, UPC, etc.). * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. * [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. * [jio](https://github.com/faceair/jio) - jio is a json schema validator similar to [joi](https://github.com/hapijs/joi). From c2759275f6c808eedca02c101bb20bcae6648c36 Mon Sep 17 00:00:00 2001 From: Adriano Sela Aviles Date: Mon, 8 Apr 2019 21:13:24 -0700 Subject: [PATCH 1580/3440] Add sslmgr (#2460) * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb6e39a63a4..1e1d32d08fa 100644 --- a/README.md +++ b/README.md @@ -1308,6 +1308,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [sslmgr](https://github.com/adrianosela/sslmgr) - SSL certificates made easy with a high level wrapper around acme/autocert. ## Serialization From 76798290c5f2db8da23c514150282dd18b0d8e25 Mon Sep 17 00:00:00 2001 From: Brett Date: Tue, 9 Apr 2019 16:24:01 -0500 Subject: [PATCH 1581/3440] add https://github.com/blockloop/scan (#2466) [![GoDoc](https://godoc.org/github.com/blockloop/scan?status.svg)](https://godoc.org/github.com/blockloop/scan) [![Travis](https://img.shields.io/travis/blockloop/scan.svg)](https://travis-ci.org/blockloop/scan) [![Coveralls github](https://img.shields.io/coveralls/github/blockloop/scan.svg)](https://coveralls.io/github/blockloop/scan) [![Report Card](https://goreportcard.com/badge/github.com/blockloop/scan)](https://goreportcard.com/report/github.com/blockloop/scan) [![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=blockloop/scan)](https://dependabot.com) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1e1d32d08fa..47321db0e97 100644 --- a/README.md +++ b/README.md @@ -1673,6 +1673,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. +* [scan](https://github.com/blockloop/scan) - Scan golang `sql.Rows` directly to structs, slices, or primitive types. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. * [silk](https://github.com/chrispassas/silk) - Read silk netflow files. * [sliceconv](https://github.com/Henry-Sarabia/sliceconv) - Slice conversion between primitive types. From e9534cda06473ca41024368b93d02fb736c6b357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoine=20Bach=C3=A9?= Date: Wed, 10 Apr 2019 07:19:02 -0700 Subject: [PATCH 1582/3440] Added gfile (#2467) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 47321db0e97..1a7c44fff56 100644 --- a/README.md +++ b/README.md @@ -1995,6 +1995,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. * [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. * [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. +* [gfile](https://github.com/Antonito/gfile) - Securely transfer files between two computers, without any third party, over WebRTC. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. * [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. From 91396675b2fdf7bbc78632c94f77796eb0f77261 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Thu, 11 Apr 2019 00:19:39 +1000 Subject: [PATCH 1583/3440] Update torrent entry (#2462) * Update torrent entry * Move go-peerflix to other software --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1a7c44fff56..4a5cf7ab58d 100644 --- a/README.md +++ b/README.md @@ -519,6 +519,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. * [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. +* [dht](https://github.com/anacrolix/dht) - BitTorrent Kademlia DHT implementation. * [digota](https://github.com/digota/digota) - grpc ecommerce microservice. * [dot](https://github.com/dotchain/dot/) - distributed sync using operational transformation/OT. * [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash. @@ -551,8 +552,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](https://godoc.org/github.com/anacrolix/dht) - BitTorrent Kademlia DHT implementation. - * [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. ## Email @@ -1997,6 +1996,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. * [gfile](https://github.com/Antonito/gfile) - Securely transfer files between two computers, without any third party, over WebRTC. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. +* [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. * [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. From e3ccb74acb4127318eabe54ed5d50824db47baba Mon Sep 17 00:00:00 2001 From: Arash Vahidi <37654712+avahidi@users.noreply.github.com> Date: Wed, 10 Apr 2019 17:05:41 +0200 Subject: [PATCH 1584/3440] added interpol / police (#2469) * added interpol / polce * added missing EOL stop --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4a5cf7ab58d..eb322d5c3b1 100644 --- a/README.md +++ b/README.md @@ -1299,6 +1299,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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)". * [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. +* [Interpol](https://bitbucket.org/vahidi/interpol) - Rule-based data generator for fuzzing and penetration testing. * [jwc](https://github.com/khezen/jwc) - JSON Web Cryptography library. * [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. From 4d523cd5815a6574e89440dfbdf049a9a605086a Mon Sep 17 00:00:00 2001 From: Martin Joly Date: Thu, 11 Apr 2019 12:14:13 +0200 Subject: [PATCH 1585/3440] Update README.md (#2471) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eb322d5c3b1..bd7edec5b5c 100644 --- a/README.md +++ b/README.md @@ -596,7 +596,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for handling errors.* -* [errlog](https://github.com/snwfdhmp/errlog) - Debug errors with failing func call recognition and pretty stack trace printing. +* [errlog](https://github.com/snwfdhmp/errlog) - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. * [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. From 2d1606a35e3b807b54216ac7c915c853776e8e29 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Thu, 11 Apr 2019 13:58:11 +0200 Subject: [PATCH 1586/3440] Update README.md (#2472) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bd7edec5b5c..abccb5acc7d 100644 --- a/README.md +++ b/README.md @@ -1466,6 +1466,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. * [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-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. * [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. * [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. * [gofeed](https://github.com/mmcdole/gofeed) - Parse RSS and Atom feeds in Go. From fb5c4a7b5cfdc98811d2437c606e76e3a48658ee Mon Sep 17 00:00:00 2001 From: Lonng Date: Thu, 18 Apr 2019 15:31:27 +0800 Subject: [PATCH 1587/3440] Added failpoint (#2468) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index abccb5acc7d..ef8de1884f9 100644 --- a/README.md +++ b/README.md @@ -1440,6 +1440,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [chromedp](https://github.com/knq/chromedp) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. * [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. + +* Fail injection + * [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](http://www.freebsd.org/cgi/man.cgi?query=fail) for Golang. ## Text Processing From c9640811b7883f72f60d9699f55bb29de0ff0381 Mon Sep 17 00:00:00 2001 From: Ilya Krasheninnikov Date: Thu, 18 Apr 2019 21:30:02 +0300 Subject: [PATCH 1588/3440] Add typ (#2474) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add typ * github.com repo: https://github.com/gurukami/typ * godoc.org: https://godoc.org/github.com/gurukami/typ * goreportcard.com: https://goreportcard.com/report/github.com/gurukami/typ * coverage service link: [![Coverage Status](https://img.shields.io/codecov/c/github/gurukami/typ/master.svg)](https://codecov.io/github/gurukami/typ?branch=master) * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef8de1884f9..b19660fb74b 100644 --- a/README.md +++ b/README.md @@ -347,6 +347,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. * [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. +* [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. * [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. ## Database From 41aa16a7979ab657b8e49d4bbb0c51ede6e15408 Mon Sep 17 00:00:00 2001 From: Guillaume Simonneau <2980507+khezen@users.noreply.github.com> Date: Thu, 25 Apr 2019 08:35:17 +0200 Subject: [PATCH 1589/3440] khezen/avro (#2477) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b19660fb74b..ff77449a9ff 100644 --- a/README.md +++ b/README.md @@ -391,6 +391,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Database schema migration.* +* [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. * [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. * [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. From 8ae0d71d1e9be55006cddcb8508c66ad0410b603 Mon Sep 17 00:00:00 2001 From: pj Date: Fri, 26 Apr 2019 21:13:27 +1000 Subject: [PATCH 1590/3440] add caching db article (#2476) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ff77449a9ff..1403f9c9145 100644 --- a/README.md +++ b/README.md @@ -2203,6 +2203,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. * [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. +* [Caching Slow Database Queries](https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9) - How to cache slow database queries. * [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. * [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. * [Games With Go](http://gameswithgo.org/) - A video series teaching programming and game development. From 2afab776ea77ecd96f094ee685a553d2d39f4d27 Mon Sep 17 00:00:00 2001 From: MaxMedia <49744590+MaxM65dia@users.noreply.github.com> Date: Fri, 26 Apr 2019 14:24:37 +0300 Subject: [PATCH 1591/3440] added vscode profiling extension link (#2484) * added vscode profiling extension link * Fix alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1403f9c9145..6c02c596950 100644 --- a/README.md +++ b/README.md @@ -1896,6 +1896,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [gocode](https://github.com/nsf/gocode) - Autocompletion daemon for the Go programming language. +* [goprofiling](https://marketplace.visualstudio.com/items?itemName=MaxMedia.go-prof) - This extension adds benchmark profiling support for the Go language to VS Code. * [GoSublime](https://github.com/DisposaBoy/GoSublime) - Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features. * [gounit-vim](https://github.com/hexdigest/gounit-vim) - Vim plugin for generating Go tests based on the function's or method's signature. * [theia-go-extension](https://github.com/theia-ide/theia-go-extension) - Go language support for the Theia IDE. From 728f9b0cb8ea5e9eac789ad8a4d01ee32fcfe4c3 Mon Sep 17 00:00:00 2001 From: Yuvraj Jaiswal Date: Fri, 26 Apr 2019 17:15:57 +0530 Subject: [PATCH 1592/3440] Adds ULID (#2483) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6c02c596950..89e2db39f89 100644 --- a/README.md +++ b/README.md @@ -1703,6 +1703,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with UUIDs.* * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. +* [ulid](https://github.com/oklog/ulid) - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier). * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. * [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. From 78a795883e43c40d2d4edf57eafd3efc426eeaa7 Mon Sep 17 00:00:00 2001 From: Nathan Thompson <45763506+nthompson196@users.noreply.github.com> Date: Fri, 26 Apr 2019 07:46:20 -0400 Subject: [PATCH 1593/3440] Added a guide to Golang e-commerce (#2425) * Added a guide to Golang e-commerce * Alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89e2db39f89..c09eeae29e1 100644 --- a/README.md +++ b/README.md @@ -2202,6 +2202,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### Tutorials * [50 Shades of Go](http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs. +* [A Guide to Golang E-Commerce](https://snipcart.com/blog/golang-ecommerce-ponzu-cms-demo?utm_term=golang-ecommerce-ponzu-cms-demo) - Building a Golang site for e-commerce (demo included). * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. * [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. From c6495bd7020f51cdac2c66e9dad8ab0c314dcf7b Mon Sep 17 00:00:00 2001 From: washan Date: Fri, 26 Apr 2019 19:59:12 +0800 Subject: [PATCH 1594/3440] Update README.md (#2490) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c09eeae29e1..2be0a5625dd 100644 --- a/README.md +++ b/README.md @@ -549,6 +549,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. * [redis-lock](https://github.com/bsm/redis-lock) - Simplified distributed locking implementation using Redis. +* [resgate](https://resgate.io/) - An open-source Realtime API Gateway, compatible with REST and RPC APIs. * [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)). From 1d07af3acca797ea1f80172a5760cd50d69566e0 Mon Sep 17 00:00:00 2001 From: Soo Philip Jason Kim Date: Fri, 26 Apr 2019 20:59:38 +0900 Subject: [PATCH 1595/3440] Add goreadability (#2485) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2be0a5625dd..faab9470169 100644 --- a/README.md +++ b/README.md @@ -1629,6 +1629,7 @@ 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. +* [goreadability](https://github.com/philipjkim/goreadability) - Webpage summary extractor using Facebook Open Graph and arc90's readability. * [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. * [goseaweedfs](https://github.com/linxGnu/goseaweedfs) - SeaweedFS client library with almost full features. From 2b4ef8409ecb40cc907ba946e7562d2b86e8f44e Mon Sep 17 00:00:00 2001 From: psampaz Date: Fri, 26 Apr 2019 15:00:20 +0300 Subject: [PATCH 1596/3440] Add go-mod-outdated (#2481) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index faab9470169..a5f06c69549 100644 --- a/README.md +++ b/README.md @@ -1874,6 +1874,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-checkstyle](https://github.com/qiniu/checkstyle) - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. * [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects. * [go-critic](https://github.com/go-critic/go-critic) - source code linter that brings checks that are currently not implemented in other linters. +* [go-mod-outdated](https://github.com/psampaz/go-mod-outdated) - An easy way to find outdated dependencies of your Go projects. * [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. From 4ceb61eb66ee571343337729e5c4366db234074d Mon Sep 17 00:00:00 2001 From: russoj88 Date: Fri, 26 Apr 2019 05:01:21 -0700 Subject: [PATCH 1597/3440] Add STL library (#2415) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a5f06c69549..a95e16b3c45 100644 --- a/README.md +++ b/README.md @@ -619,6 +619,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. * [pdfcpu](https://github.com/hhrutter/pdfcpu) - PDF processor. * [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. +* [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. * [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. * [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. From dfe9459756ef1e67838fc1d8ae7f7e7782645403 Mon Sep 17 00:00:00 2001 From: Matt Joseph Date: Mon, 29 Apr 2019 05:17:34 -0400 Subject: [PATCH 1598/3440] Go modules are the official package management going forward (#2492) --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a95e16b3c45..d09a3754393 100644 --- a/README.md +++ b/README.md @@ -1212,7 +1212,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Package Management -*Official tooling for package management* +*Official tooling for dependency and package management* + +* [go modules](https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more) - Modules are the unit of source code interchange and versioning. The go command has direct support for working with modules, including recording and resolving dependencies on other modules. + +*Official experimental tooling for package management* * [dep](https://github.com/golang/dep) - Go dependency tool. * [vgo](https://go.googlesource.com/vgo/) - Versioned Go. From 7116fb29b987fb5e96ae328527cef715b3f05865 Mon Sep 17 00:00:00 2001 From: Gus <8219721+srfrog@users.noreply.github.com> Date: Mon, 29 Apr 2019 10:09:17 -0700 Subject: [PATCH 1599/3440] Update README.md (#2487) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d09a3754393..cb1bca7d783 100644 --- a/README.md +++ b/README.md @@ -315,6 +315,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. * [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. * [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). +* [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for 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. From d95ed7e3de6fa86faa99c16090f2c054fd2cca8d Mon Sep 17 00:00:00 2001 From: Alex Makhinov Date: Mon, 29 Apr 2019 20:09:47 +0300 Subject: [PATCH 1600/3440] Added gomalshare package (#2480) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cb1bca7d783..d45c868898e 100644 --- a/README.md +++ b/README.md @@ -1548,6 +1548,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. * [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. +* [gomalshare](https://github.com/MonaxGT/gomalshare) - Go library MalShare API [malshare.com](http://www.malshare.com/) * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - Go MusicBrainz WS2 client library. * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. * [google-analytics](https://github.com/chonthu/go-google-analytics) - Simple wrapper for easy google analytics reporting. From 68b8e880ee08d9b4542a3a5e4f72388a34395223 Mon Sep 17 00:00:00 2001 From: Ben Osborne Date: Mon, 29 Apr 2019 18:10:18 +0100 Subject: [PATCH 1601/3440] Tripadvisor (#2488) * Added TripAdvisor to the list of ThirdParty API's * remove new line * ready --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d45c868898e..fd7303d7162 100644 --- a/README.md +++ b/README.md @@ -1449,7 +1449,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [chromedp](https://github.com/knq/chromedp) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. * [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. - + * Fail injection * [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](http://www.freebsd.org/cgi/man.cgi?query=fail) for Golang. @@ -1578,6 +1578,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [TripAdvisor](https://github.com/mrbenosborne/tripadvisor-golang) - Go wrapper for the TripAdvisor API. * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. * [uptimerobot](https://github.com/bitfield/uptimerobot) - Go wrapper and command-line client for the Uptime Robot v2 API. * [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. From cd7561abdfa6af3dff48eee2b270a4c8ac7e0b20 Mon Sep 17 00:00:00 2001 From: Igor Novgorodov Date: Mon, 29 Apr 2019 19:10:51 +0200 Subject: [PATCH 1602/3440] Add riemann-relay to Server Applications (#2493) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fd7303d7162..6912c8b7578 100644 --- a/README.md +++ b/README.md @@ -1354,6 +1354,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. +* [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. From a75f478eb671165037bbb8183945f1dd8e672d56 Mon Sep 17 00:00:00 2001 From: Arthur Lee Date: Tue, 30 Apr 2019 01:12:15 +0800 Subject: [PATCH 1603/3440] Add rollingwriter (#2494) * add rollingwriter * change the position --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6912c8b7578..a9bffd006f5 100644 --- a/README.md +++ b/README.md @@ -900,6 +900,7 @@ 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. * [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenario. Also, it is one of the logger with the lowest allocation. * [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). +* [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. * [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. * [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. From a9308e5609d6e9e3a0914615a3dfe88a70d9cb51 Mon Sep 17 00:00:00 2001 From: Karel Minarik Date: Tue, 30 Apr 2019 18:44:41 +0200 Subject: [PATCH 1604/3440] Add go-elasticsearch (#2486) This patch adds the official Go client for Elasticsearch. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9bffd006f5..27c2b018f2a 100644 --- a/README.md +++ b/README.md @@ -485,6 +485,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go. * [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go. * [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. + * [go-elasticsearch](https://github.com/elastic/go-elasticsearch) - Official Elasticsearch client for Go. * [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch. * [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine. * [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. From fdba4640411cd3f08e8ac295bc30b8fded448593 Mon Sep 17 00:00:00 2001 From: Mark van der Velden Date: Thu, 2 May 2019 09:35:58 +0200 Subject: [PATCH 1605/3440] Removing gometalinter (deprecated) (#2501) The SA gometalinter is deprecated in favour of [GolangCI](https://github.com/golangci/golangci-lint) and the project is archived. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 27c2b018f2a..a91bc7d7f44 100644 --- a/README.md +++ b/README.md @@ -1881,7 +1881,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. -* [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. * [go-checkstyle](https://github.com/qiniu/checkstyle) - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. * [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects. * [go-critic](https://github.com/go-critic/go-critic) - source code linter that brings checks that are currently not implemented in other linters. From ba5f19109fe361fadcb3b53909f42dbc8605dc11 Mon Sep 17 00:00:00 2001 From: Sean Hagen Date: Thu, 2 May 2019 00:39:22 -0700 Subject: [PATCH 1606/3440] Data Science: Bradley-Terry model package (#2496) * Add the bradleyterry package * Update description * Fix readme line -- add period at end of sentence --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a91bc7d7f44..93e48abf4dc 100644 --- a/README.md +++ b/README.md @@ -1268,6 +1268,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for scientific computing and data analyzing.* * [assocentity](https://github.com/ndabAP/assocentity) - Package assocentity returns the average distance from words to a given entity. +* [bradleyterry](https://github.com/seanhagen/bradleyterry) - Provides a Bradley-Terry Model for pairwise comparisons. * [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. * [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for Go for machine-learning and statistics (similar to pandas). * [evaler](https://github.com/soniah/evaler) - Simple floating point arithmetic expression evaluator. From 86e68f20674b3a6afc4bc2bd936ae0c6842041f0 Mon Sep 17 00:00:00 2001 From: Mustafa TURAN Date: Mon, 6 May 2019 18:54:44 -0700 Subject: [PATCH 1607/3440] Add bus package (#2507) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 93e48abf4dc..9716ae6a369 100644 --- a/README.md +++ b/README.md @@ -955,6 +955,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [APNs2](https://github.com/sideshow/apns2) - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. * [Beaver](https://github.com/Clivern/Beaver) - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. * [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. +* [Bus](https://github.com/mustafaturan/bus) - Minimalist message bus implementation for internal communication. * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. * [drone-line](https://github.com/appleboy/drone-line) - Sending [Line](https://at.line.me/en) notifications using a binary, docker or Drone CI. From 083bd428a717fc267a4d56560e5f464f09a5707a Mon Sep 17 00:00:00 2001 From: K3A Date: Tue, 7 May 2019 03:56:05 +0200 Subject: [PATCH 1608/3440] gomodel is unmaintained (#2506) remove from the list --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9716ae6a369..d83d898d854 100644 --- a/README.md +++ b/README.md @@ -1200,7 +1200,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. * [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. * [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. -* [gomodel](https://github.com/cosiner/gomodel) - Lightweight, fast, orm-like library helps interactive with database. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. * [grimoire](https://github.com/Fs02/grimoire) - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3). From 1a36c1b15e879992924a0e420ab636b68397be49 Mon Sep 17 00:00:00 2001 From: Alex Makhinov Date: Tue, 7 May 2019 04:59:45 +0300 Subject: [PATCH 1609/3440] Added gosddl package (#2479) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d83d898d854..d1d1c76bca2 100644 --- a/README.md +++ b/README.md @@ -1860,6 +1860,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9. * [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. +* [gosddl](https://github.com/MonaxGT/gosddl) - Converter from SDDL-string to user-friendly JSON. SDDL consist of four part: Owner, Primary Group, DACL, SACL. ## XML From 934d70b8f6c1007831a927e6a63b3cbcd0df3dec Mon Sep 17 00:00:00 2001 From: Nguyen Van Nhu Date: Tue, 7 May 2019 04:00:54 +0200 Subject: [PATCH 1610/3440] Add go-premailer, inline styling for HTML mail (#2499) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1d1c76bca2..3290367d762 100644 --- a/README.md +++ b/README.md @@ -568,6 +568,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-premailer](https://github.com/vanng822/go-premailer) - Inline styling for HTML mail in Go. * [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. From 0ebb4ad4b462b9b8d20a7063875b3d3a130e8880 Mon Sep 17 00:00:00 2001 From: Kevin Dangoor Date: Mon, 6 May 2019 22:03:33 -0400 Subject: [PATCH 1611/3440] Add Wails (#2500) * Add Wails New GUI library that currently builds on webview. * Add missing period --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3290367d762..2c3fd6a7515 100644 --- a/README.md +++ b/README.md @@ -766,6 +766,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. Cross platform. +* [Wails](https://wails.app) - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. * [webview](https://github.com/zserge/webview) - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux). From 441f0a534e6daceb6e693a6fd3be33372c14c54a Mon Sep 17 00:00:00 2001 From: Stepan Pyzhov <32341341+spyzhov@users.noreply.github.com> Date: Tue, 7 May 2019 04:23:35 +0200 Subject: [PATCH 1612/3440] add `github.com/spyzhov/ajson` library (#2502) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c3fd6a7515..664fb50702e 100644 --- a/README.md +++ b/README.md @@ -854,6 +854,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with JSON.* +* [ajson](https://github.com/spyzhov/ajson) - Abstract JSON for golang with JSONPath support. * [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. * [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. * [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. From 2a3522ee75f885d2b1a1ac1484d4b434dda310c1 Mon Sep 17 00:00:00 2001 From: foolin Date: Thu, 9 May 2019 15:18:37 +0800 Subject: [PATCH 1613/3440] Update README.md (#2509) add goview library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 664fb50702e..a19ee6d6d81 100644 --- a/README.md +++ b/README.md @@ -1375,6 +1375,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. * [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. +* [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. * [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. * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. From bc0048205fb762fca07e50ac23b0d7d37f0dcf0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Jir=C3=A9nius?= Date: Tue, 14 May 2019 23:11:05 +0200 Subject: [PATCH 1614/3440] Update resgate (#2523) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a19ee6d6d81..0cf03ddb026 100644 --- a/README.md +++ b/README.md @@ -551,7 +551,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. * [redis-lock](https://github.com/bsm/redis-lock) - Simplified distributed locking implementation using Redis. -* [resgate](https://resgate.io/) - An open-source Realtime API Gateway, compatible with REST and RPC APIs. +* [resgate](https://resgate.io/) - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly. * [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)). From 2135a349e9b370784e7ab7bcd638d0e65bc636af Mon Sep 17 00:00:00 2001 From: Kamaleshwar Date: Fri, 17 May 2019 21:33:40 +0530 Subject: [PATCH 1615/3440] Add currency computation package (#2524) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * github.com repo: [currency](https://github.com/bnkamalesh/currency) godoc.org: [![](https://godoc.org/github.com/nathany/looper?status.svg)](https://godoc.org/github.com/bnkamalesh/currency) goreportcard.com: [![](https://goreportcard.com/badge/github.com/bnkamalesh/currency)](https://goreportcard.com/report/github.com/bnkamalesh/currency) coverage service: [cover.run](https://cover.run/go/github.com/bnkamalesh/currency) **Make sure that you've checked the boxes below before you submit PR:** - [✓] 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). * added period at end of description. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0cf03ddb026..af37af4a4d2 100644 --- a/README.md +++ b/README.md @@ -631,6 +631,7 @@ 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. +* [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. * [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-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. From 1d08e84002181af66100d0976fee635ff8b1b9d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Lorenz?= Date: Sat, 18 May 2019 02:06:39 +1000 Subject: [PATCH 1616/3440] Add vardius/gollback (#2522) **Please provide package links to:** * github.com repo: https://github.com/vardius/gollback * godoc.org: [![](https://godoc.org/github.com/vardius/gollback?status.svg)](http://godoc.org/github.com/vardius/gollback) * goreportcard.com: [![Go Report Card](https://goreportcard.com/badge/github.com/vardius/gollback)](https://goreportcard.com/report/github.com/vardius/gollback) * coverage service link: [![codecov](https://codecov.io/gh/vardius/gollback/branch/master/graph/badge.svg)](https://codecov.io/gh/vardius/gollback) **Make sure that you've checked the boxes below before you submit PR:** * [x] I have added my package in alphabetical order. * [x] I have an appropriate description with correct grammar. * [x] I know that this package was not listed before. * [x] I have added godoc link to the repo and to my pull request. * [x] I have added coverage service link to the repo and to my pull request. * [x] I have added goreportcard link to the repo and to my pull request. * [x] 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). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af37af4a4d2..59d5e66cb55 100644 --- a/README.md +++ b/README.md @@ -737,6 +737,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. * [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. * [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. +* [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. * [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. From 9d8464372e98460d75d704a0b2ba9c319e185f0f Mon Sep 17 00:00:00 2001 From: "Hasibul Hasan (Anik)" <25927971+AnikHasibul@users.noreply.github.com> Date: Mon, 20 May 2019 18:29:06 +0600 Subject: [PATCH 1617/3440] Added AnikHasibul/queue (#2528) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59d5e66cb55..18b4bcc2b32 100644 --- a/README.md +++ b/README.md @@ -745,6 +745,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. * [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. * [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. +* [queue](https://github.com/AnikHasibul/queue) - Gives you a `sync.WaitGroup` like queue group accessibility. Helps you to throttle and limit goroutines, wait for the end of the all goroutines and much more. * [semaphore](https://github.com/kamilsk/semaphore) - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. * [semaphore](https://github.com/marusama/semaphore) - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations). * [stl](https://github.com/ssgreg/stl) - Software transactional locks based on Software Transactional Memory (STM) concurrency control mechanism. From 84a71224f76938b5579063e955b4338e8cd658ff Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 20 May 2019 22:29:52 +1000 Subject: [PATCH 1618/3440] message digest for large files (#2527) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 18b4bcc2b32..363731c5051 100644 --- a/README.md +++ b/README.md @@ -614,6 +614,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for handling files and file systems.* * [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. +* [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5 and SHA256, for large files. * [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. From ff70542c72152a69272c7b51827bfc3fcb43a37a Mon Sep 17 00:00:00 2001 From: Martijn van Maasakkers Date: Mon, 20 May 2019 14:30:32 +0200 Subject: [PATCH 1619/3440] Add go-problemdetails package (#2526) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 363731c5051..fe6c0f3fdf9 100644 --- a/README.md +++ b/README.md @@ -1637,6 +1637,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-funk](https://github.com/thoas/go-funk) - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...). * [go-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. * [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. +* [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. * [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-torch](https://github.com/uber/go-torch) - Stochastic flame graph profiler for Go programs. From ea99812a1a3885446877700c0bd629463f658e0d Mon Sep 17 00:00:00 2001 From: Adam Luzsi Date: Mon, 20 May 2019 14:35:28 +0200 Subject: [PATCH 1620/3440] add testcase to the README.md testing section (#2525) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fe6c0f3fdf9..0913f1176ef 100644 --- a/README.md +++ b/README.md @@ -1432,6 +1432,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httpexpect](https://github.com/gavv/httpexpect) - Concise, declarative, and easy to use end-to-end HTTP and REST API testing. * [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. * [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. + * [testcase](https://github.com/adamluzsi/testcase) - Idiomatic testing framework for Behavior Driven Development. * [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. * [testmd](https://godoc.org/github.com/tvastar/test/cmd/testmd) - Convert markdown snippets into testable go code. From e3a6d704ae235080a947743d798ada5f5b776be6 Mon Sep 17 00:00:00 2001 From: Wei He Date: Mon, 20 May 2019 21:36:39 +0900 Subject: [PATCH 1621/3440] add ltsv (#2521) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0913f1176ef..315d420e613 100644 --- a/README.md +++ b/README.md @@ -1505,6 +1505,7 @@ 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. * [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. * [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. + * [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separeted Value)](http://ltsv.org/) reader for Go. * [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. * [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. * [sh](https://github.com/mvdan/sh) - Shell parser and formatter. From 2bd01b0a6d5cbaca8463e0fc764e45b16444d558 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Mon, 20 May 2019 21:38:04 +0900 Subject: [PATCH 1622/3440] Add aerogo/log (#2520) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 315d420e613..391e1cb4b36 100644 --- a/README.md +++ b/README.md @@ -890,6 +890,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. * [gone/log](https://github.com/One-com/gone/tree/master/log) - Fast, extendable, full-featured, std-lib source compatible log library. * [journald](https://github.com/ssgreg/journald) - Go implementation of systemd Journal's native API for logging. +* [log](https://github.com/aerogo/log) - An O(1) logging system that allows you to connect one log to multiple writers (e.g. stdout, a file and a TCP connection). * [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](https://github.com/teris-io/log) - Structured log interface for Go cleanly separates logging facade from its implementation. From 2b36688d318aba105f4e9f8af8f314ed6584410a Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Mon, 20 May 2019 21:39:01 +0900 Subject: [PATCH 1623/3440] Add aerogo/codetree (#2519) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 391e1cb4b36..6f3c19a869d 100644 --- a/README.md +++ b/README.md @@ -1477,6 +1477,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [codetree](https://github.com/aerogo/codetree) - Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure. * [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. * [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go. * [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. From 2ec10ce59bf474fba02b5508865f46dfbac1cb03 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Mon, 20 May 2019 21:40:28 +0900 Subject: [PATCH 1624/3440] Add akyoto/cache (#2518) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6f3c19a869d..d60d64d329a 100644 --- a/README.md +++ b/README.md @@ -360,6 +360,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. * [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. +* [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. * [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. * [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. * [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore. From 3b2e4176007d3e1253feda4be52e5983751ffb0e Mon Sep 17 00:00:00 2001 From: John Arundel Date: Mon, 20 May 2019 13:42:35 +0100 Subject: [PATCH 1625/3440] Add 'script', a library for DevOps tasks (#2517) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d60d64d329a..dcde908c0f6 100644 --- a/README.md +++ b/README.md @@ -2011,6 +2011,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). +* [script](https://github.com/bitfield/script) - Making it easy to write shell-like scripts in Go for DevOps and system administration tasks. * [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the response code and data between each call for specific server stress based on its previous response. * [skm](https://github.com/TimothyYe/skm) - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! * [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. From 13478433221b7cc6f871c02ef7800456dec1f197 Mon Sep 17 00:00:00 2001 From: Chad Robinson Date: Mon, 20 May 2019 05:44:18 -0700 Subject: [PATCH 1626/3440] Add iplib to networking section (#2515) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dcde908c0f6..8735faf1226 100644 --- a/README.md +++ b/README.md @@ -1151,6 +1151,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grab](https://github.com/cavaliercoder/grab) - Go package for managing file downloads. * [graval](https://github.com/koofr/graval) - Experimental FTP server framework. * [HTTPLab](https://github.com/gchaincl/httplab) - HTTPLabs let you inspect HTTP requests and forge responses. +* [iplib](https://github.com/c-robinson/iplib) - Library for working with IP addresses (net.IP, net.IPNet), inspired by python [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html) * [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. From 5ee15be69ab1cb6db5a4f51988ad151efc59a5a5 Mon Sep 17 00:00:00 2001 From: lrita Date: Mon, 20 May 2019 20:45:43 +0800 Subject: [PATCH 1627/3440] Add numa (#2513) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8735faf1226..823d6997d0a 100644 --- a/README.md +++ b/README.md @@ -1071,6 +1071,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [llvm](https://github.com/llir/llvm) - Library for interacting with LLVM IR in pure Go. * [metrics](https://github.com/pascaldekloe/metrics) - Library for metrics instrumentation and Prometheus exposition. * [morse](https://github.com/alwindoss/morse) - Library to convert to and from morse code. +* [numa](https://github.com/lrita/numa) - NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code. * [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. * [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. * [sandid](https://github.com/aofei/sandid) - Every grain of sand on earth has its own ID. From 7b8a66bd100cb3fbecd65447bb19cf2303ddd227 Mon Sep 17 00:00:00 2001 From: Dawid Dziurla Date: Mon, 20 May 2019 14:46:24 +0200 Subject: [PATCH 1628/3440] Add go-appindicator (#2511) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 823d6997d0a..bc8bb9d5d93 100644 --- a/README.md +++ b/README.md @@ -777,6 +777,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Interaction* +* [go-appindicator](https://github.com/dawidd6/go-appindicator) - Go bindings for libappindicator3 C library. * [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. From e8829b2c7afb445ec834ed14d981faf5b20b0172 Mon Sep 17 00:00:00 2001 From: Igor Novgorodov Date: Tue, 21 May 2019 15:49:23 +0200 Subject: [PATCH 1629/3440] Add psql-streamer to Server Applications (#2498) * Add psql-streamer to Server Applications * psql-streamer: add dot in the end --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bc8bb9d5d93..6a28c28ec5f 100644 --- a/README.md +++ b/README.md @@ -1369,6 +1369,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. +* [psql-streamer](https://github.com/blind-oracle/psql-streamer) - Stream database events from PostgreSQL to Kafka. * [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. From d56e98bbc54d5ee333102267812a491eb74f7a94 Mon Sep 17 00:00:00 2001 From: Coding Concepts Date: Tue, 21 May 2019 16:49:57 +0300 Subject: [PATCH 1630/3440] Added datagen (#2495) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6a28c28ec5f..e0b6486b20e 100644 --- a/README.md +++ b/README.md @@ -409,6 +409,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. * [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small insterts and sends big requests to ClickHouse servers. +* [datagen](https://github.com/codingconcepts/datagen) - A fast data generator that's multi-table aware and supports multi-row DML. * [dbbench](https://github.com/sj14/dbbench) - Database benchmarking tool with support for several databases and scripts. * [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. * [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. From 7c0f670d4a6d1207fe03610eafe3d3f2506b1c0b Mon Sep 17 00:00:00 2001 From: ecstaticcoder <41988338+ecstaticcoder@users.noreply.github.com> Date: Tue, 21 May 2019 15:50:22 +0200 Subject: [PATCH 1631/3440] Added generis tool (#2482) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e0b6486b20e..0633f9261db 100644 --- a/README.md +++ b/README.md @@ -696,6 +696,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. * [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. * [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. * [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. From 74bb58ce8e8c92205fce0f9b42deea951fdde07a Mon Sep 17 00:00:00 2001 From: Alex Makhinov Date: Tue, 21 May 2019 16:50:57 +0300 Subject: [PATCH 1632/3440] Add parsefields package (#2478) * Add parsefields package * Add dot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0633f9261db..2aa9ca917e7 100644 --- a/README.md +++ b/README.md @@ -338,6 +338,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. * [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. +* [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. * [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. From fa1f96555f183e3b06802586028036cdc8d08303 Mon Sep 17 00:00:00 2001 From: Jay Date: Thu, 23 May 2019 22:26:48 +0800 Subject: [PATCH 1633/3440] add command-line-tool (#2514) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2aa9ca917e7..02992b5348d 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-getoptions](https://github.com/DavidGamba/go-getoptions) - Go option parser inspired on the flexibility of Perl’s GetOpt::Long. * [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. * [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection. +* [job](https://github.com/liujianping/job) - JOB, make your short-term command as a long-term job. * [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. From f59c98ce77fd9b8315c23c432675b56b81157a46 Mon Sep 17 00:00:00 2001 From: Sebastian <3441183+BattleBas@users.noreply.github.com> Date: Fri, 24 May 2019 07:20:43 -0500 Subject: [PATCH 1634/3440] Remove Banshee (#2535) Project no longer exists, link goes to 404 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 02992b5348d..29e3c212fc6 100644 --- a/README.md +++ b/README.md @@ -1978,7 +1978,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. * [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. * [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. -* [Banshee](https://github.com/eleme/banshee) - Anomalies detection system for periodic metrics. * [Blast](https://github.com/dave/blast) - A simple tool for API load testing and batch jobs. * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. From d7505f7fb1b12545d8578918b6c567ce525e82a2 Mon Sep 17 00:00:00 2001 From: Dennie de Lange Date: Fri, 24 May 2019 23:48:34 +0200 Subject: [PATCH 1635/3440] Fix Goa name,url and description to more accurate (#2536) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29e3c212fc6..a33ddf84593 100644 --- a/README.md +++ b/README.md @@ -1799,7 +1799,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. * [go-json-rest](https://github.com/ant0ine/go-json-rest) - Quick and easy way to setup a RESTful JSON API. * [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. -* [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis. +* [Goa](https://github.com/goadesign/goa) - Goa provides a holistic approach for developing remote APIs and microservices in Go. * [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. * [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. From e746492ca7114cdf3f8634f41caf449a1db42671 Mon Sep 17 00:00:00 2001 From: Nabil Servais Date: Sun, 26 May 2019 13:26:36 +0200 Subject: [PATCH 1636/3440] Add onnx-go (#2489) * Add onnx-go * github.com repo: https://github.com/owulveryck/onnx-go * godoc.org: https://godoc.org/github.com/owulveryck/onnx-go * goreportcard.com: https://goreportcard.com/report/github.com/owulveryck/onnx-go * travis build: https://travis-ci.com/owulveryck/onnx-go * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a33ddf84593..07107dcfc33 100644 --- a/README.md +++ b/README.md @@ -956,6 +956,7 @@ 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. * [ocrserver](https://github.com/otiai10/ocrserver) - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. +* [onnx-go](https://github.com/owulveryck/onnx-go) - Go Interface to Open Neural Network Exchange (ONNX). * [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. From b19edf8ad8e045d4cc93c3dc7635a121e565b59f Mon Sep 17 00:00:00 2001 From: Jay Date: Tue, 28 May 2019 02:09:59 +0800 Subject: [PATCH 1637/3440] add x-mod/routine package (#2540) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 07107dcfc33..0245ae9f24e 100644 --- a/README.md +++ b/README.md @@ -752,6 +752,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. * [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. * [queue](https://github.com/AnikHasibul/queue) - Gives you a `sync.WaitGroup` like queue group accessibility. Helps you to throttle and limit goroutines, wait for the end of the all goroutines and much more. +* [routine](https://github.com/x-mod/routine) - go routine control with context, support: Main, Go, Pool and some useful Executors. * [semaphore](https://github.com/kamilsk/semaphore) - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. * [semaphore](https://github.com/marusama/semaphore) - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations). * [stl](https://github.com/ssgreg/stl) - Software transactional locks based on Software Transactional Memory (STM) concurrency control mechanism. From cc456efc66d605ce308b350a70ee493ebee91313 Mon Sep 17 00:00:00 2001 From: Nils Wogatzky Date: Mon, 27 May 2019 20:11:13 +0200 Subject: [PATCH 1638/3440] update maintenance status of mgo (#2538) mgo is a great driver implementation, but is not maintained anymore --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0245ae9f24e..4bb09bae2de 100644 --- a/README.md +++ b/README.md @@ -474,7 +474,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. - * [mgo](https://github.com/globalsign/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. + * [mgo](https://github.com/globalsign/mgo) - (unmaintained) 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. * [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. * [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. From bf892f48acd64fc26722f244fcf3d390134516d5 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Mon, 27 May 2019 22:42:22 +0300 Subject: [PATCH 1639/3440] Add victoriametrics to database list (#2539) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4bb09bae2de..d34f28aa86d 100644 --- a/README.md +++ b/README.md @@ -392,6 +392,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. * [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. +* [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. *Database schema migration.* From 7593b1fce0ca2078a41d518d84d8993e863613d6 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 28 May 2019 14:49:02 +0200 Subject: [PATCH 1640/3440] db-migration: add migrator (#2531) add migrator library to database schema migration section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d34f28aa86d..46c40365a56 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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/golang-migrate/migrate) - Database migrations. CLI and Golang library. +* [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. * [soda](https://github.com/gobuffalo/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. From f613050dd450786a26c02a7f467d1374dbf126f0 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 28 May 2019 18:50:02 -0300 Subject: [PATCH 1641/3440] Create FUNDING.yml --- .github/FUNDING.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000000..45146bff488 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: [avelino] +patreon: avelinosource From b098a54882d9548b7c428d689cd32ebbcf1b10dd Mon Sep 17 00:00:00 2001 From: MinJae Kwon Date: Thu, 30 May 2019 19:54:55 +0900 Subject: [PATCH 1642/3440] Add Golang Korea meetup (#2546) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46c40365a56..d6432f4b533 100644 --- a/README.md +++ b/README.md @@ -2179,6 +2179,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Hamburg - Germany](https://www.meetup.com/Go-User-Group-Hamburg/) * [Golang Israel](https://www.meetup.com/Go-Israel/) * [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) +* [Golang Korea](https://www.meetup.com/GDG-Golang-Korea/) * [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) * [Golang Lyon](https://www.meetup.com/Golang-Lyon/) * [Golang Marseille](https://www.meetup.com/fr-FR/Golang-Marseille/) From 10a9c77f69d35d8ba31e32ad2e6d1760bd151ea5 Mon Sep 17 00:00:00 2001 From: Oleg Zaytsev Date: Wed, 5 Jun 2019 10:08:17 +0200 Subject: [PATCH 1643/3440] Add github.com/cabify/gotoprom library (#2543) `gotoprom` offers a type-safe metrics builder wrapper library for the official Prometheus client. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d6432f4b533..d5f2ee5bbeb 100644 --- a/README.md +++ b/README.md @@ -1071,6 +1071,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gopsutil](https://github.com/shirou/gopsutil) - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). * [gosh](https://github.com/osamingo/gosh) - Provide Go Statistics Handler, Struct, Measure Method. * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. +* [gotoprom](https://github.com/cabify/gotoprom) - Type-safe metrics builder wrapper library for the official Prometheus client. * [gountries](https://github.com/pariz/gountries) - Package that exposes country and subdivision data. * [health](https://github.com/dimiro1/health) - Easy to use, extensible health check library. * [healthcheck](https://github.com/etherlabsio/healthcheck) - An opinionated and concurrent health-check HTTP handler for RESTful services. From 04ff1316cd34d0d6b2c8f2740b9e83cf712be76a Mon Sep 17 00:00:00 2001 From: Martijn van Maasakkers Date: Wed, 5 Jun 2019 10:09:21 +0200 Subject: [PATCH 1644/3440] Add certificates (#2548) * Add go-problemdetails package * Added certificates tool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d5f2ee5bbeb..49c6f6fce75 100644 --- a/README.md +++ b/README.md @@ -1329,6 +1329,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. * [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. +* [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. * [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)". * [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. From ffff3532fe36307a32cc7546e3dafb7f200be72d Mon Sep 17 00:00:00 2001 From: Maxim Bovtunov Date: Wed, 5 Jun 2019 11:11:05 +0300 Subject: [PATCH 1645/3440] Add inject (#2549) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 49c6f6fce75..94770adefac 100644 --- a/README.md +++ b/README.md @@ -1030,6 +1030,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. * [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). +* [inject](https://github.com/defval/inject) - A reflection based dependency injection container with simple interface. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. ### Project Layout From 6e2b7c119c0ee181a089b1558ce6b376ce4ece94 Mon Sep 17 00:00:00 2001 From: hz Date: Wed, 5 Jun 2019 16:11:47 +0800 Subject: [PATCH 1646/3440] add cmdr (#2550) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 94770adefac..6276d387ef7 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line applications. * [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. +* [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. * [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. From 24a8d5501b8e4dc6484d050dab03f1d496578a0e Mon Sep 17 00:00:00 2001 From: Quim Muntal Date: Thu, 6 Jun 2019 10:16:14 +0200 Subject: [PATCH 1647/3440] Add qmuntal/gltf to README (#2553) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6276d387ef7..85ab04c55bb 100644 --- a/README.md +++ b/README.md @@ -808,6 +808,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. * [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. * [gift](https://github.com/disintegration/gift) - Package of image processing filters. +* [gltf](https://github.com/qmuntal/gltf) - Efficient and robust glTF 2.0 reader, writer and validator. * [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. * [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library. * [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. From a82fca31ead0febc6639c62804a095e9e3c0b0a7 Mon Sep 17 00:00:00 2001 From: Prashant Gupta Date: Thu, 6 Jun 2019 22:08:08 -0700 Subject: [PATCH 1648/3440] added OSX sleep/wake notifier --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 85ab04c55bb..73b156df679 100644 --- a/README.md +++ b/README.md @@ -787,6 +787,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-appindicator](https://github.com/dawidd6/go-appindicator) - Go bindings for libappindicator3 C library. * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. +* [mac-sleep-notifier](https://github.com/prashantgupta24/mac-sleep-notifier) - OSX Sleep/Wake notifications in golang * [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. * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. From c577dbc8e74122f73009084099c56a31333b9813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Lorenz?= Date: Fri, 7 Jun 2019 18:11:36 +1000 Subject: [PATCH 1649/3440] Add gocontainer (#2557) * Add gocontainer Simple Dependency Injection Container * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 85ab04c55bb..9b62f58fb8f 100644 --- a/README.md +++ b/README.md @@ -1032,6 +1032,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. * [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). +* [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. * [inject](https://github.com/defval/inject) - A reflection based dependency injection container with simple interface. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. From 009f68e51867999267426d8d2c709f998b36cd25 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Fri, 7 Jun 2019 10:14:27 +0200 Subject: [PATCH 1650/3440] Add a dot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 73b156df679..6cc86c32eec 100644 --- a/README.md +++ b/README.md @@ -787,7 +787,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-appindicator](https://github.com/dawidd6/go-appindicator) - Go bindings for libappindicator3 C library. * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. -* [mac-sleep-notifier](https://github.com/prashantgupta24/mac-sleep-notifier) - OSX Sleep/Wake notifications in golang +* [mac-sleep-notifier](https://github.com/prashantgupta24/mac-sleep-notifier) - OSX Sleep/Wake notifications in golang. * [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. * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. From b823a4c5ad0fcd0f5378a34ef1da65a4458000e2 Mon Sep 17 00:00:00 2001 From: ENDOH takanao <15713+michilu@users.noreply.github.com> Date: Tue, 11 Jun 2019 18:08:25 +0900 Subject: [PATCH 1651/3440] typo fix to WebDriver (#2561) - before: wedriver - after: WebDriver --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b62f58fb8f..8d1a52484e3 100644 --- a/README.md +++ b/README.md @@ -1480,7 +1480,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * 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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. - * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. + * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. * [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. * Fail injection From 448b84b5398671b0795ac808a39ccebc6009c385 Mon Sep 17 00:00:00 2001 From: Francesco Mari Date: Fri, 14 Jun 2019 16:56:15 +0200 Subject: [PATCH 1652/3440] Add Basel Go Meetup to the list of meetups (#2565) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8d1a52484e3..fa73c9b8866 100644 --- a/README.md +++ b/README.md @@ -2164,6 +2164,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Meetups +* [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) * [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) * [Go Language NYC](https://www.meetup.com/golanguagenewyork/) * [Go London User Group](https://www.meetup.com/Go-London-User-Group/) From 06a14d92be7969c553a26090181ed6a1a541c593 Mon Sep 17 00:00:00 2001 From: Antonio Alves Date: Sat, 15 Jun 2019 08:25:35 -0700 Subject: [PATCH 1653/3440] Added GoSF to meetups list (#2568) * added GoSF to meetups list * added GoSF to meetups list in alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa73c9b8866..b4905166e1d 100644 --- a/README.md +++ b/README.md @@ -2204,6 +2204,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Казань](https://www.meetup.com/GolangKazan/) * [Golang Москва](https://www.meetup.com/Golang-Moscow/) * [Golang Питер](https://www.meetup.com/Golang-Peter/) +* [GoSF - San Francisco, CA](https://www.meetup.com/golangsf) * [Istanbul Golang](https://www.meetup.com/Istanbul-Golang/) * [Seattle Go Programmers](https://www.meetup.com/golang/) * [Ukrainian Golang User Groups](https://www.meetup.com/uagolang/) From 089877257d06bd2763d89dd2b6ae9c20520784b4 Mon Sep 17 00:00:00 2001 From: Prashant Gupta Date: Mon, 17 Jun 2019 04:37:04 -0700 Subject: [PATCH 1654/3440] add mac-activity-tracker library (#2562) * add mac-activity-tracker library * add mac-activity-tracker library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b4905166e1d..bc0f247500d 100644 --- a/README.md +++ b/README.md @@ -787,6 +787,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-appindicator](https://github.com/dawidd6/go-appindicator) - Go bindings for libappindicator3 C library. * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. +* [mac-activity-tracker](https://github.com/prashantgupta24/activity-tracker) - OSX library to notify about any (pluggable) activity on your machine. * [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. * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. From d5491306469b0de0065a72aec0b9c78c0c338939 Mon Sep 17 00:00:00 2001 From: Taliesin Millhouse Date: Mon, 17 Jun 2019 21:50:51 +1000 Subject: [PATCH 1655/3440] Added Canberra Gohpers (#2571) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bc0f247500d..3ded9d8e80c 100644 --- a/README.md +++ b/README.md @@ -2167,6 +2167,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) * [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) +* [Canberra Gophers](https://www.meetup.com/Canberra-Gophers/) * [Go Language NYC](https://www.meetup.com/golanguagenewyork/) * [Go London User Group](https://www.meetup.com/Go-London-User-Group/) * [Go Toronto](https://www.meetup.com/go-toronto/) From c1225462f69502291a2b901a9f028a02df69cac8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chojnacki?= Date: Mon, 17 Jun 2019 14:03:02 +0200 Subject: [PATCH 1656/3440] Add muyo/sno (#2559) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3ded9d8e80c..5a0a732d84f 100644 --- a/README.md +++ b/README.md @@ -1750,6 +1750,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with UUIDs.* * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. +* [sno](https://github.com/muyo/sno) - Compact, sortable and fast unique IDs with embedded metadata. * [ulid](https://github.com/oklog/ulid) - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier). * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. * [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. From 5360392b98264dba5a9ce11c87496a79ed2a17df Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Mon, 17 Jun 2019 21:06:07 +0900 Subject: [PATCH 1657/3440] README.md: Add goimghdr (#2567) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a0a732d84f..cebb120adc9 100644 --- a/README.md +++ b/README.md @@ -817,6 +817,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. * [gocv](https://github.com/hybridgroup/gocv) - Go package for computer vision using OpenCV 3.3+. * [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. +* [goimghdr](https://github.com/corona10/goimghdr) - The imghdr module determines the type of image contained in a file for Go. * [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. * [image2ascii](https://github.com/qeesung/image2ascii) - Convert image to ASCII. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. From 5dbd83549f7aac2a3117f2fc69fcd26c197cf1e5 Mon Sep 17 00:00:00 2001 From: barasher Date: Mon, 17 Jun 2019 14:12:35 +0200 Subject: [PATCH 1658/3440] Add go-exiftool (#2560) * Proposal to add go-exiftool to the list * Fix typo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cebb120adc9..11347fdb907 100644 --- a/README.md +++ b/README.md @@ -625,6 +625,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. +* [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. From b53ae16c27f090c19b0b3d3a8c7ed66fe9a9b4f6 Mon Sep 17 00:00:00 2001 From: Dylan Meeus Date: Mon, 17 Jun 2019 16:55:57 +0200 Subject: [PATCH 1659/3440] Add hasgo to generate tools (#2570) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 11347fdb907..eab66c3af17 100644 --- a/README.md +++ b/README.md @@ -1966,6 +1966,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gonerics](http://github.com/bouk/gonerics) - Idiomatic Generics in Go. * [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. * [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. +* [hasgo](https://github.com/DylanMeeus/hasgo) - Generate Haskell inspired functions for your slices. * [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. * [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly. From 5f81cbb087a147ea0fbee830507bdd9f9a8241e2 Mon Sep 17 00:00:00 2001 From: Nik Ogura Date: Mon, 17 Jun 2019 07:59:49 -0700 Subject: [PATCH 1660/3440] Added dbt to Utilities section (#2564) * Added dbt to Utilities section * reordered dbt in Utilities as alphabetical check is not case sensitive --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eab66c3af17..bd787e7e06d 100644 --- a/README.md +++ b/README.md @@ -1641,6 +1641,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [ctxutil](https://github.com/posener/ctxutil) - A collection of utility functions for contexts. +* [dbt](https://github.com/nikogura/dbt) - A framework for running self-updating signed binaries from a central, trusted repository. * [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. From 0a3a27aa50c4383bcdb6a64b0f4ec9c2b52aed9c Mon Sep 17 00:00:00 2001 From: Denis Sedchenko Date: Mon, 17 Jun 2019 18:05:39 +0300 Subject: [PATCH 1661/3440] Add Gilbert task runner (#2554) * Add Gilbert tool * Sort --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52ac1f8b71a..ad577839b50 100644 --- a/README.md +++ b/README.md @@ -1978,6 +1978,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. * [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. * [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](http://yeoman.io) generator to get new Go projects started. +* [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. From 28cd47cbceb0c1f08aa2b5bb2bbed663f0706acb Mon Sep 17 00:00:00 2001 From: Jeroen Rinzema Date: Mon, 17 Jun 2019 17:21:23 +0200 Subject: [PATCH 1662/3440] add commander (#2475) * add commander * fix linter --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad577839b50..eb0f88b3c16 100644 --- a/README.md +++ b/README.md @@ -981,6 +981,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. * [Bus](https://github.com/mustafaturan/bus) - Minimalist message bus implementation for internal communication. * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. +* [Commander](https://github.com/jeroenrinzema/commander) - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. * [drone-line](https://github.com/appleboy/drone-line) - Sending [Line](https://at.line.me/en) 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. From dd094134c704fec0f61e66f31983ea1da25b8858 Mon Sep 17 00:00:00 2001 From: Sergey Date: Tue, 18 Jun 2019 01:23:33 +1000 Subject: [PATCH 1663/3440] Added project Tagify (#2569) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eb0f88b3c16..5989ae5eb44 100644 --- a/README.md +++ b/README.md @@ -1546,6 +1546,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. * [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. * [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text. From c24f859ea04f44201f944bf240483c810d3d62cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=96=B0=E5=8D=8E?= Date: Tue, 18 Jun 2019 21:23:17 +0800 Subject: [PATCH 1664/3440] Add studygolang.com and ebook (#2505) * add studygolang and ebook studygolang.com and The Golang Standard Library by Example * Update README.md * Fix alphabetical order * update Chinese --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5989ae5eb44..e412ac3505c 100644 --- a/README.md +++ b/README.md @@ -2154,6 +2154,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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/) +* [The Golang Standard Library by Example (Chinese)](https://github.com/polaris1119/The-Golang-Standard-Library-by-Example) * [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) * [Writing A Compiler In Go](https://compilerbook.com) * [Writing An Interpreter In Go](https://interpreterbook.com) @@ -2257,6 +2258,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gowalker.org](https://gowalker.org) - Go Project API documentation. * [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). * [r/Golang](https://www.reddit.com/r/golang) - News about Go. +* [studygolang](https://studygolang.com) - The community of studygolang in China. * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. * [TutorialEdge - Golang](https://tutorialedge.net/course/golang/) From 6e9c512a95a7f50b08930ab3201402cb0e65e1ce Mon Sep 17 00:00:00 2001 From: lni <30930154+lni@users.noreply.github.com> Date: Wed, 19 Jun 2019 18:25:34 +0800 Subject: [PATCH 1665/3440] Added dragonboat. (#2574) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e412ac3505c..6c8340b81a3 100644 --- a/README.md +++ b/README.md @@ -534,6 +534,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [digota](https://github.com/digota/digota) - grpc ecommerce microservice. * [dot](https://github.com/dotchain/dot/) - distributed sync using operational transformation/OT. * [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash. +* [dragonboat](https://github.com/lni/dragonboat) - A feature complete and high performance multi-group Raft library in Go. * [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. * [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation. * [dynatomic](https://github.com/tylfin/dynatomic) - A library for using DynamoDB as an atomic counter. From 229aa07ae66909bf519000ba04cd4fccc2dd1a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Kj=C3=A6r=20Sch=C3=B8dt?= Date: Fri, 21 Jun 2019 11:19:48 +0200 Subject: [PATCH 1666/3440] Added go-firestorm ORM lib for firestore (#2576) * Added go-firestorm library A simple ORM for Google/Firebase Cloud Firestore * added dot at the end --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6c8340b81a3..4cf0b6d344d 100644 --- a/README.md +++ b/README.md @@ -1227,6 +1227,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* * [beego orm](https://github.com/astaxie/beego/tree/master/orm) - Powerful orm framework for go. Support: pq/mysql/sqlite3. +* [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. * [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. * [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. * [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. From 0ed7c7ba297f1c544106bf39892030a9c3a3dbef Mon Sep 17 00:00:00 2001 From: AaronJan Date: Thu, 27 Jun 2019 10:39:13 +0800 Subject: [PATCH 1667/3440] add github.com/AaronJan/Hunch (#2577) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4cf0b6d344d..fd8060260a6 100644 --- a/README.md +++ b/README.md @@ -753,6 +753,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. * [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. +* [Hunch](https://github.com/AaronJan/Hunch) - Hunch provides functions like: `All`, `First`, `Retry`, `Waterfall` etc., that makes asynchronous flow control more intuitive. * [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. * [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. * [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. From cb4128294b04564200908cf7087bb1b52c235212 Mon Sep 17 00:00:00 2001 From: Francois Parquet Date: Thu, 27 Jun 2019 10:39:44 +0800 Subject: [PATCH 1668/3440] Add github.com/lalamove/konfig (#2575) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fd8060260a6..01c6c7b9c70 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ini](https://github.com/go-ini/ini) - Go package to 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. * [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. +* [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. * [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. * [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). * [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. From dd29a40a79647c4eb730b7a8363bb7072e5c50b7 Mon Sep 17 00:00:00 2001 From: Rahul Madhav Upakare Date: Mon, 1 Jul 2019 15:59:45 +0530 Subject: [PATCH 1669/3440] name correction (#2586) * name correction fixed typo. * Fixed order Fixed alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 01c6c7b9c70..891ee1eb125 100644 --- a/README.md +++ b/README.md @@ -483,9 +483,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. + * [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. * [redigo](https://github.com/gomodule/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/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. From 0d539b85de4c2da8bf8594be1d38d305271a28a2 Mon Sep 17 00:00:00 2001 From: pj Date: Mon, 1 Jul 2019 20:34:08 +1000 Subject: [PATCH 1670/3440] add gophercon australia (#2591) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 891ee1eb125..0fec3b33ed8 100644 --- a/README.md +++ b/README.md @@ -2135,6 +2135,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GolangUK](http://golanguk.com/) - London, UK. * [GopherChina](http://gopherchina.org) - Shanghai, China. * [GopherCon](http://www.gophercon.com/) - Denver, USA. +* [GopherCon Australia](https://gophercon.com.au/) - Sydney, Australia. * [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR. * [GopherCon Europe](https://gophercon.is/) - Reykjavik, Iceland. * [GopherCon India](https://www.gophercon.in/) - Pune, India. From afea0801590620133d56b07bf2bab443186ec127 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 Jul 2019 17:28:52 -0300 Subject: [PATCH 1671/3440] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 45146bff488..fe768cc78d1 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -github: [avelino] +github: avelino patreon: avelinosource From 4f014b2892149e7abbb1a341f5016273b54cbdec Mon Sep 17 00:00:00 2001 From: Sotirios Mantziaris Date: Mon, 1 Jul 2019 23:29:14 +0300 Subject: [PATCH 1672/3440] Adding harvester (#2596) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0fec3b33ed8..35a80c5a0e7 100644 --- a/README.md +++ b/README.md @@ -271,6 +271,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy. * [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. * [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. +* [harvester](https://github.com/beatlabs/harvester) - Harvester, a easy to use static and dynamic configuration package supportig seeding, env vars and Consul integration. * [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 to read and write INI files. From 269be6d0342b02411dd28ed4d3b51265b0c87a80 Mon Sep 17 00:00:00 2001 From: Sotirios Mantziaris Date: Mon, 1 Jul 2019 23:29:34 +0300 Subject: [PATCH 1673/3440] Adding patron (#2595) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 35a80c5a0e7..8dd37493b2f 100644 --- a/README.md +++ b/README.md @@ -1833,6 +1833,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. * [nio](https://github.com/go-nio/nio) - Modern, minimal and productive Go HTTP framework. +* [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. * [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. * [REST Layer](http://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. From 29153a6a94bc03b8075e031ec6fe2aba193d8c8d Mon Sep 17 00:00:00 2001 From: Kamil Samigullin Date: Mon, 1 Jul 2019 23:29:50 +0300 Subject: [PATCH 1674/3440] add tracer package (#2584) * add tracer package * Remove emoji Remove emoji in breaker description * Remove unprintable symbol Remove the unprintable symbol (probably an emoji?) --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8dd37493b2f..46d0d7060f2 100644 --- a/README.md +++ b/README.md @@ -305,6 +305,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Data Structures *Generic datastructures and algorithms in Go.* + * [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. * [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. * [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. @@ -744,7 +745,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ants](https://github.com/panjf2000/ants) - A high-performance goroutine pool for golang. * [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. -* [breaker](https://github.com/kamilsk/breaker) - 🚧 Flexible mechanism to make your code breakable. +* [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. @@ -1025,6 +1026,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Microsoft Office ### Microsoft Excel + *Libraries for working with Microsoft Excel.* * [excelize](https://github.com/360EntSecGroup-Skylar/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. @@ -1036,6 +1038,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Miscellaneous ### Dependency Injection + *Libraries for working with dependency injection.* * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. @@ -1054,7 +1057,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates starter Go project layout. Lets you focus on business logic implemeted. ### Strings + *Libraries for working with strings.* + * [strutil](https://github.com/ozgio/strutil) - String utilities. * [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. @@ -1749,6 +1754,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. * [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. +* [tracer](https://github.com/kamilsk/tracer) - Simple, lightweight tracing. * [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. @@ -2055,6 +2061,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [Cherry](https://github.com/rafael-santiago/cherry) - Tiny webchat server in Go. From 49649cb550d667222c1029068dd6553bfe47a161 Mon Sep 17 00:00:00 2001 From: Alexandre Normand Date: Mon, 1 Jul 2019 13:30:05 -0700 Subject: [PATCH 1675/3440] Add slackscot to Bot Building Packages (#2581) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46d0d7060f2..729b5ee4c05 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. * [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. +* [slackscot](https://github.com/alexandre-normand/slackscot) - Another framework for building Slack bots. * [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. From 895395e76491442783bbd9439b9626e26f48f150 Mon Sep 17 00:00:00 2001 From: Alex Edwards Date: Mon, 1 Jul 2019 22:30:20 +0200 Subject: [PATCH 1676/3440] Add alexedwards/scs (#2580) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 729b5ee4c05..ee012fd62c1 100644 --- a/README.md +++ b/README.md @@ -151,6 +151,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [rbac](https://github.com/zpatrick/rbac) - Minimalistic RBAC package for Go applications. +* [scs](https://github.com/alexedwards/scs) - Session Manager for HTTP servers. * [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). * [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. From fc494a65052a520e7b0f68e789ed86e716074a79 Mon Sep 17 00:00:00 2001 From: Kailash Nadh Date: Tue, 2 Jul 2019 02:00:34 +0530 Subject: [PATCH 1677/3440] Add knadh/koanf under the Configuration section (#2578) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ee012fd62c1..a0e3e14f2f4 100644 --- a/README.md +++ b/README.md @@ -279,6 +279,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ini](https://github.com/go-ini/ini) - Go package to 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. * [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. +* [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. * [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. * [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. * [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). From cc1039cb91bbf4b052012f3cfeb1c7b669e76a7c Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 Jul 2019 17:35:32 -0300 Subject: [PATCH 1678/3440] cover.run not exit more :/ --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 2c0cf6da606..fd8ba8bdaf9 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,7 +5,7 @@ Please check if what you want to add to `awesome-go` list meets [quality standar - github.com repo: - godoc.org: - goreportcard.com: -- coverage service link ([cover.run](https://cover.run/), [gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.), example: `[![cover.run](https://cover.run/go/github.com/user/repository.svg?style=flat&tag=golang-1.10)](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fuser%2Frepository)` +- coverage service link ([gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.) Very good coverage From 045645ad1a7ac6c287a50d0d3ae0dff45f268266 Mon Sep 17 00:00:00 2001 From: Ian Eyberg Date: Tue, 2 Jul 2019 01:13:24 -0700 Subject: [PATCH 1679/3440] adding in ops (#2597) * adding in ops * Add dot Added dot to comply with entry form tests --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a0e3e14f2f4..358e53db578 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. +* [ops](https://github.com/nanovms/ops) - Unikernel Builder/Orchestrator. * [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. * [readline](https://github.com/chzyer/readline) - Pure golang implementation that provides most features in GNU-Readline under MIT license. * [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more. From 04e9d240dfb2b960f183c3dbaeac4622911f5227 Mon Sep 17 00:00:00 2001 From: Rob Muhlestein Date: Thu, 4 Jul 2019 06:47:59 -0400 Subject: [PATCH 1680/3440] uniq added under UUID (#2573) * uniq added under UUID * tcell added * tview added * took out tview and tcell for another pr --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 358e53db578..551bb97ab24 100644 --- a/README.md +++ b/README.md @@ -1773,6 +1773,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. * [sno](https://github.com/muyo/sno) - Compact, sortable and fast unique IDs with embedded metadata. * [ulid](https://github.com/oklog/ulid) - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier). +* [uniq](https://gitlab.com/skilstak/code/uniq/go) - No hassle safe, fast unique identifiers with commands. * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. * [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. From 2fc567696548b0b8725be4f7f2ccc828652ce5ef Mon Sep 17 00:00:00 2001 From: Piyush Chugh Date: Sat, 6 Jul 2019 14:56:43 +0530 Subject: [PATCH 1681/3440] Added Golang Gurgaon meetup. (#2607) --- .gitignore | 4 ++++ README.md | 1 + 2 files changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 83b7210a216..382fc505e6b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ tmpl/index.html awesome-go + +# Folders +.idea +.vscode \ No newline at end of file diff --git a/README.md b/README.md index 551bb97ab24..874c18a3edd 100644 --- a/README.md +++ b/README.md @@ -2214,6 +2214,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Copenhagen](https://www.meetup.com/Go-Cph/) * [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) * [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) +* [Golang Gurgaon, India](https://www.meetup.com/Gurgaon-Go-Meetup/) * [Golang Hamburg - Germany](https://www.meetup.com/Go-User-Group-Hamburg/) * [Golang Israel](https://www.meetup.com/Go-Israel/) * [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) From 1f910344d46bdce2241eda8c44f1ebd7f06489ef Mon Sep 17 00:00:00 2001 From: Jason Cooke Date: Mon, 8 Jul 2019 03:03:42 +1200 Subject: [PATCH 1682/3440] docs: fix typo (#2610) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 874c18a3edd..757ebcdbf66 100644 --- a/README.md +++ b/README.md @@ -1940,7 +1940,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. -* [go-checkstyle](https://github.com/qiniu/checkstyle) - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. +* [go-checkstyle](https://github.com/qiniu/checkstyle) - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style referred to some points in Go Code Review Comments. * [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects. * [go-critic](https://github.com/go-critic/go-critic) - source code linter that brings checks that are currently not implemented in other linters. * [go-mod-outdated](https://github.com/psampaz/go-mod-outdated) - An easy way to find outdated dependencies of your Go projects. From d78c045a565453e5ccf5dcf6bad91f9ae7662de2 Mon Sep 17 00:00:00 2001 From: Ajat Prabha Date: Thu, 11 Jul 2019 13:29:10 +0530 Subject: [PATCH 1683/3440] Add Darkroom to the Images section (#2598) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 757ebcdbf66..08a4cc9e591 100644 --- a/README.md +++ b/README.md @@ -817,6 +817,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bild](https://github.com/anthonynsimon/bild) - Collection of image processing algorithms in pure Go. * [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. * [cameron](https://github.com/aofei/cameron) - An avatar generator for Go. +* [darkroom](https://github.com/gojek/darkroom) - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency. * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. * [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. * [gift](https://github.com/disintegration/gift) - Package of image processing filters. From 9a18dd9f60e473caf5c41332c0310948a75ca4f2 Mon Sep 17 00:00:00 2001 From: Dair Aidarkhanov <36963426+aidarkhanov@users.noreply.github.com> Date: Thu, 11 Jul 2019 13:59:55 +0600 Subject: [PATCH 1684/3440] Add Nano ID - unique ID generator (#2600) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 08a4cc9e591..59139a97c3d 100644 --- a/README.md +++ b/README.md @@ -1772,6 +1772,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with UUIDs.* * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. +* [nanoid](https://github.com/aidarkhanov/nanoid) - A tiny and efficient Go unique string ID generator. * [sno](https://github.com/muyo/sno) - Compact, sortable and fast unique IDs with embedded metadata. * [ulid](https://github.com/oklog/ulid) - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier). * [uniq](https://gitlab.com/skilstak/code/uniq/go) - No hassle safe, fast unique identifiers with commands. From 46486ec7c01f94aa53fa212f0bc2c138376b9d79 Mon Sep 17 00:00:00 2001 From: Dmitry Spasibenko Date: Thu, 11 Jul 2019 01:00:34 -0700 Subject: [PATCH 1685/3440] add linker to awesome-go misc section (#2605) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59139a97c3d..9c032a36261 100644 --- a/README.md +++ b/README.md @@ -1051,6 +1051,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. * [inject](https://github.com/defval/inject) - A reflection based dependency injection container with simple interface. +* [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. ### Project Layout From f2be5627bf9657740b347942ec00b0330e886665 Mon Sep 17 00:00:00 2001 From: adranwit Date: Thu, 11 Jul 2019 01:06:20 -0700 Subject: [PATCH 1686/3440] Added ptrie (#2606) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c032a36261..3060b874e95 100644 --- a/README.md +++ b/README.md @@ -349,6 +349,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. * [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. +* [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree. * [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. * [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. From 1d233f4961cab084738226cf1ff46be8bb946b66 Mon Sep 17 00:00:00 2001 From: piaohao <463168428@qq.com> Date: Thu, 11 Jul 2019 16:07:13 +0800 Subject: [PATCH 1687/3440] Add godis, a redis client library (#2601) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3060b874e95..16f385a6b03 100644 --- a/README.md +++ b/README.md @@ -481,6 +481,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. * [gocql](http://gocql.github.io) - Go language driver for Apache Cassandra. + * [godis](https://github.com/piaohao/godis) - redis client implement by golang, inspired by jedis. * [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. * [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. From 7a3fcda33a1d2282225e30981ac0aee0403f2366 Mon Sep 17 00:00:00 2001 From: Brian Voelker Date: Thu, 11 Jul 2019 09:27:52 -0500 Subject: [PATCH 1688/3440] Added to authentication (#2583) * Added to authentication * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 16f385a6b03..26317a2b89d 100644 --- a/README.md +++ b/README.md @@ -157,6 +157,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. * [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. * [signedvalue](https://github.com/sashka/signedvalue) - Signed and timestamped strings compatible with [Tornado's](https://github.com/tornadoweb/tornado) `create_signed_value`, `decode_signed_value`, and therefore `set_secure_cookie` and `get_secure_cookie`. +* [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser. ## Bot Building From b1746227720a367d1d7c5a0b704125b6d5baeb8c Mon Sep 17 00:00:00 2001 From: steve Date: Thu, 11 Jul 2019 22:28:54 +0800 Subject: [PATCH 1689/3440] Add unioffice to Microsoft Office (#2617) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 26317a2b89d..e5248a149de 100644 --- a/README.md +++ b/README.md @@ -1033,6 +1033,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Microsoft Office +* [unioffice](https://github.com/unidoc/unioffice) - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents. + ### Microsoft Excel *Libraries for working with Microsoft Excel.* From 084ceb32d93031b3e0efa89010901f545e6c5435 Mon Sep 17 00:00:00 2001 From: Milap Neupane Date: Sat, 20 Jul 2019 02:28:58 +0545 Subject: [PATCH 1690/3440] Add golang from zero to hero (#2616) * Add golang from zero to hero * Add a period in desciption --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e5248a149de..092ff38ce9a 100644 --- a/README.md +++ b/README.md @@ -2311,6 +2311,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. +* [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. From ba7a9ed25aadf68960fd8a10907cff480c9a6dbe Mon Sep 17 00:00:00 2001 From: David Dymko Date: Fri, 19 Jul 2019 16:46:38 -0400 Subject: [PATCH 1691/3440] added go-jsonerror package (#2618) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 092ff38ce9a..19cffcf926f 100644 --- a/README.md +++ b/README.md @@ -889,6 +889,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ajson](https://github.com/spyzhov/ajson) - Abstract JSON for golang with JSONPath support. * [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. * [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. +* [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is ment to allow us to easily create json response errors that follow the JsonApi spec. * [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. * [gojq](https://github.com/elgs/gojq) - JSON query in Golang. * [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. From 9e2864e4e20d743901e6ae5c765900b99c1896ed Mon Sep 17 00:00:00 2001 From: Rob Muhlestein Date: Fri, 19 Jul 2019 16:46:57 -0400 Subject: [PATCH 1692/3440] uniq url package path change (#2620) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 19cffcf926f..a558bd037cc 100644 --- a/README.md +++ b/README.md @@ -1782,7 +1782,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [nanoid](https://github.com/aidarkhanov/nanoid) - A tiny and efficient Go unique string ID generator. * [sno](https://github.com/muyo/sno) - Compact, sortable and fast unique IDs with embedded metadata. * [ulid](https://github.com/oklog/ulid) - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier). -* [uniq](https://gitlab.com/skilstak/code/uniq/go) - No hassle safe, fast unique identifiers with commands. +* [uniq](https://gitlab.com/skilstak/code/go/uniq) - No hassle safe, fast unique identifiers with commands. * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. * [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. From c84ec40e80bf20ef80d517cd5c00d6034f600442 Mon Sep 17 00:00:00 2001 From: Robin Joseph Date: Fri, 19 Jul 2019 13:47:13 -0700 Subject: [PATCH 1693/3440] Add redisqueue (#2621) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a558bd037cc..159172bdf72 100644 --- a/README.md +++ b/README.md @@ -1027,6 +1027,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rabbus](https://github.com/rafaeljesus/rabbus) - A tiny wrapper over amqp exchanges and queues. * [rabtap](https://github.com/jandelgado/rabtap) - RabbitMQ swiss army knife cli app. * [RapidMQ](https://github.com/sybrexsys/RapidMQ) - RapidMQ is a lightweight and reliable library for managing of the local messages queue. +* [redisqueue](https://github.com/robinjoseph08/redisqueue) - redisqueue provides a producer and consumer of a queue that uses Redis streams. * [rmqconn](https://github.com/sbabiv/rmqconn) - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed. * [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. From cbace6ba31336e838c378cf9cc5f72223aa9c37a Mon Sep 17 00:00:00 2001 From: JayL Date: Sat, 20 Jul 2019 04:48:41 +0800 Subject: [PATCH 1694/3440] add ts command line tool (#2589) * add x-mod/routine package * add ts command line tool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 159172bdf72..ba5cd800939 100644 --- a/README.md +++ b/README.md @@ -217,6 +217,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more. * [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. * [strumt](https://github.com/antham/strumt) - Library to create prompt chain. +* [ts](https://github.com/liujianping/ts) - Timestamp convert & compare tool. * [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. * [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). * [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency. From 18df0fcd9dbcfaa1de24280268f69175ca2fa46a Mon Sep 17 00:00:00 2001 From: Suzuki Shunsuke Date: Mon, 22 Jul 2019 23:14:49 +0900 Subject: [PATCH 1695/3440] Add flute (#2624) https://github.com/suzuki-shunsuke/flute --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ba5cd800939..cd3978ab345 100644 --- a/README.md +++ b/README.md @@ -1457,6 +1457,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [endly](https://github.com/viant/endly) - Declarative end to end functional testing. + * [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. * [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. From 33c9a5f9b4e27cedce78b4ed7c0814e97e316ee5 Mon Sep 17 00:00:00 2001 From: Thibault Hazelart Date: Sat, 27 Jul 2019 17:39:14 +0200 Subject: [PATCH 1696/3440] Add thazelart/terraform-validator in validation (#2628) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd3978ab345..9bec7443432 100644 --- a/README.md +++ b/README.md @@ -1799,6 +1799,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. * [jio](https://github.com/faceair/jio) - jio is a json schema validator similar to [joi](https://github.com/hapijs/joi). * [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. +* [terraform-validator](https://github.com/thazelart/terraform-validator) - A norms and conventions validator for Terraform. * [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. * [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. From 6350725caac5516ac268667b235b935f9726a892 Mon Sep 17 00:00:00 2001 From: Kamil Samigullin Date: Fri, 9 Aug 2019 16:28:13 +0300 Subject: [PATCH 1697/3440] add performance section (#2631) --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 9bec7443432..07d6bf21330 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [OpenGL](#opengl) - [ORM](#orm) - [Package Management](#package-management) + - [Performance](#performance) - [Query Language](#query-language) - [Resource Embedding](#resource-embedding) - [Science and Data Analysis](#science-and-data-analysis) @@ -559,7 +560,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [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. -* [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. * [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. * [KrakenD](https://github.com/devopsfaith/krakend) - Ultra performant API Gateway framework with middlewares. @@ -1294,6 +1294,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [nut](https://github.com/jingweno/nut) - Vendor Go dependencies. * [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments. +## Performance + +* [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. +* [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. +* [tracer](https://github.com/kamilsk/tracer) - Simple, lightweight tracing. + ## Query Language * [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. @@ -1695,7 +1701,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. * [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. -* [go-torch](https://github.com/uber/go-torch) - Stochastic flame graph profiler for Go programs. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. @@ -1735,7 +1740,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. -* [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. * [okrun](https://github.com/xta/okrun) - go run error steamroller. * [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. * [onecache](https://github.com/adelowo/onecache) - Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc). @@ -1743,7 +1747,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool. * [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. -* [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. * [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. @@ -1769,7 +1772,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. * [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. -* [tracer](https://github.com/kamilsk/tracer) - Simple, lightweight tracing. * [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. From 62bf31e792440f755f7822430b7c67a06ef0e11f Mon Sep 17 00:00:00 2001 From: Fergus Strange Date: Fri, 9 Aug 2019 23:32:35 +1000 Subject: [PATCH 1698/3440] Add apitest (#2633) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 07d6bf21330..a768eff77f1 100644 --- a/README.md +++ b/README.md @@ -1452,6 +1452,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for testing codebases and generating test data.* * Testing Frameworks + * [apitest](https://apitest.dev) - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams. * [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. From fd66df25c76d47fc485ec1bc48f8d28dd1df77e3 Mon Sep 17 00:00:00 2001 From: Reugn Date: Fri, 9 Aug 2019 16:33:56 +0300 Subject: [PATCH 1699/3440] add go-streams library (#2555) --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index a768eff77f1..cf77f9bd4a3 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Science and Data Analysis](#science-and-data-analysis) - [Security](#security) - [Serialization](#serialization) + - [Stream Processing](#stream-processing) - [Template Engines](#template-engines) - [Testing](#testing) - [Text Processing](#text-processing) @@ -1423,6 +1424,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. +## Stream Processing + +*Libraries and tools for stream processing and reactive programming.* + +* [go-streams](https://github.com/reugn/go-streams) - Go stream processing library. + ## Template Engines *Libraries and tools for templating and lexing.* From 2446d5c07753b335c041165534e1ea7455c07b77 Mon Sep 17 00:00:00 2001 From: Inhere Date: Fri, 9 Aug 2019 21:41:08 +0800 Subject: [PATCH 1700/3440] Add package: rux (#2635) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cf77f9bd4a3..8c2774b8490 100644 --- a/README.md +++ b/README.md @@ -1872,6 +1872,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [REST Layer](http://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. +* [rux](https://github.com/gookit/rux) - Simple and fast web framework for build golang HTTP applications. * [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. From 0a5cd0edf4d8beaf0be3fbe5066d62ea4a2b2e34 Mon Sep 17 00:00:00 2001 From: Masashi SHIBATA Date: Fri, 9 Aug 2019 22:53:02 +0900 Subject: [PATCH 1701/3440] goptuna: hyperparameter optimization framework. (#2636) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8c2774b8490..d5b429462a4 100644 --- a/README.md +++ b/README.md @@ -971,6 +971,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [golinear](https://github.com/danieldk/golinear) - liblinear bindings for Go. * [GoMind](https://github.com/surenderthakran/gomind) - A simplistic Neural Network Library in Go. * [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go. +* [Goptuna](https://github.com/c-bata/goptuna) - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized. * [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. * [gorse](https://github.com/zhenghaoz/gorse) - A High Performance Recommender System Package based on Collaborative Filtering for Go. From 12e0587174eab1ecc5be02fb66292d7b0991ec4e Mon Sep 17 00:00:00 2001 From: ss7loginov Date: Fri, 9 Aug 2019 17:19:37 +0300 Subject: [PATCH 1702/3440] Remove cosiner/zerver (#2657) 404 Not Found --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d5b429462a4..ae2f5f4fff9 100644 --- a/README.md +++ b/README.md @@ -1883,7 +1883,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [vox](https://github.com/aisk/vox) - A golang web framework for humans, inspired by Koa heavily. * [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc). * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. -* [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. ### Middlewares From 5747eaf399c27371264e07e489b0fed999508bfe Mon Sep 17 00:00:00 2001 From: Gaozhen Ying Date: Mon, 12 Aug 2019 08:01:53 +0800 Subject: [PATCH 1703/3440] remove low-quality repo (#2669) --- README.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/README.md b/README.md index ae2f5f4fff9..b32b2ce3bed 100644 --- a/README.md +++ b/README.md @@ -978,7 +978,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. * [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. -* [mlgo](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. * [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. * [ocrserver](https://github.com/otiai10/ocrserver) - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. @@ -1133,7 +1132,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with human languages.* * [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. -* [go-eco](https://github.com/ThePaw/go-eco) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. * [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. * [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. @@ -1337,9 +1335,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [gocomplex](https://github.com/varver/gocomplex) - Complex number library for the Go programming language. * [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures. * [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. * [gonum](https://github.com/gonum/gonum) - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. @@ -1465,7 +1461,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. - * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them. * [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. * [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. * [cupaloy](https://github.com/bradleyjkemp/cupaloy) - Simple snapshot testing addon for your test framework. @@ -1656,7 +1651,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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). * [translate](https://github.com/poorny/translate) - Go online translation package. * [Trello](https://github.com/adlio/trello) - Go wrapper for the Trello API. * [TripAdvisor](https://github.com/mrbenosborne/tripadvisor-golang) - Go wrapper for the TripAdvisor API. @@ -1691,7 +1685,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. * [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. * [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. -* [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. * [filter](https://github.com/gookit/filter) - provide filtering, sanitizing, and conversion of Go data. @@ -1874,7 +1867,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [rux](https://github.com/gookit/rux) - Simple and fast web framework for build golang HTTP applications. -* [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. * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. @@ -1997,7 +1989,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoSublime](https://github.com/DisposaBoy/GoSublime) - Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features. * [gounit-vim](https://github.com/hexdigest/gounit-vim) - Vim plugin for generating Go tests based on the function's or method's signature. * [theia-go-extension](https://github.com/theia-ide/theia-go-extension) - Go language support for the Theia IDE. -* [velour](https://github.com/velour/velour) - IRC client for the acme editor. * [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - Vim plugin to highlight syntax errors on save. * [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. * [vscode-go](https://github.com/Microsoft/vscode-go) - Extension for Visual Studio Code (VS Code) which provides support for the Go language. @@ -2156,7 +2147,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. * [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. * [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. -* [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. * [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - Collection of benchmarks for popular Go database/SQL utilities. * [gospeed](https://github.com/feyeleanor/GoSpeed) - Go micro-benchmarks for calculating the speed of language constructs. * [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. From 457d5b037590b7f761d05293d5f6f756fe2a594a Mon Sep 17 00:00:00 2001 From: drakkan Date: Mon, 12 Aug 2019 18:50:06 +0200 Subject: [PATCH 1704/3440] Add SFTPGo a full featured and highly configurable SFTP server (#2644) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b32b2ce3bed..7ffc9e87aac 100644 --- a/README.md +++ b/README.md @@ -1419,6 +1419,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [psql-streamer](https://github.com/blind-oracle/psql-streamer) - Stream database events from PostgreSQL to Kafka. * [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. +* [SFTPGo](https://github.com/drakkan/sftpgo) - Full featured and highly configurable SFTP server software. * [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. ## Stream Processing From 85359eacd573c06c7356a56d9f627df5d851083a Mon Sep 17 00:00:00 2001 From: pj Date: Tue, 13 Aug 2019 02:50:41 +1000 Subject: [PATCH 1705/3440] Update README.md (#2645) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ffc9e87aac..8a34cd3e0b9 100644 --- a/README.md +++ b/README.md @@ -442,6 +442,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *SQL query builder, libraries for building and using SQL.* +* [dbq](https://github.com/rocketlaunchr/dbq) - Zero boilerplate database operations for Go. * [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use them with ease. * [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder. * [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. From 78be7ab9841b97a38f6e5068ebf6b0ee1ea1ad1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marwan=20Rabb=C3=A2a?= <1440729+waghanza@users.noreply.github.com> Date: Sun, 18 Aug 2019 12:30:13 +0200 Subject: [PATCH 1706/3440] Nio has moved (#2676) * nio has moved * fix CI -> wrong item format (missing dot) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a34cd3e0b9..2cbd8e1ed1d 100644 --- a/README.md +++ b/README.md @@ -1862,12 +1862,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. -* [nio](https://github.com/go-nio/nio) - Modern, minimal and productive Go HTTP framework. * [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. * [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. * [REST Layer](http://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. +* [route](https://github.com/goroute/route) - Simple yet powerful HTTP request multiplexer. * [rux](https://github.com/gookit/rux) - Simple and fast web framework for build golang HTTP 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. From 40abf0309afd64e4c6dabcae6f56b27c059deb7b Mon Sep 17 00:00:00 2001 From: Matt Titmus Date: Tue, 20 Aug 2019 20:30:28 -0400 Subject: [PATCH 1707/3440] rkt has been archived by the CNCF (#2683) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 2cbd8e1ed1d..7815dac537c 100644 --- a/README.md +++ b/README.md @@ -2122,7 +2122,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. * [Pipe](https://github.com/b3log/pipe) - A small and beautiful blogging platform. * [restic](https://github.com/restic/restic) - De-duplicating backup program. -* [rkt](https://github.com/coreos/rkt) - App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. * [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). From 04d546ea2b2f3fb94ffd955f9a1bbba5ad40450f Mon Sep 17 00:00:00 2001 From: Alan Braithwaite Date: Fri, 23 Aug 2019 14:15:26 +0100 Subject: [PATCH 1708/3440] authentication: add jeff (#2545) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7815dac537c..43f403d496b 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. +* [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure and idiomatic web session management with pluggable backends. * [jwt](https://github.com/robbert229/jwt) - Clean and easy to use implementation of JSON Web Tokens (JWT). * [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. * [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. From 89aad43b90bfb58b004ced7a1d457f162c36a8d2 Mon Sep 17 00:00:00 2001 From: Felipe Pieretti Umpierre Date: Sat, 31 Aug 2019 17:54:52 +0200 Subject: [PATCH 1709/3440] Add new repository: pletter (#2614) * Add new repository: pletter * Add missing period --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 43f403d496b..b4cb1191c5f 100644 --- a/README.md +++ b/README.md @@ -1401,6 +1401,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [pletter](https://github.com/vimeda/pletter) - A standard way to wrap a proto message for message brokers. * [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. ## Server Applications From 954ea9541da3ef5f4fe07ceede3bc5202ec86cc3 Mon Sep 17 00:00:00 2001 From: Olle Date: Thu, 19 Sep 2019 18:16:46 +0200 Subject: [PATCH 1710/3440] Added the mailgun-go library to the list. (#2497) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b4cb1191c5f..026efed75a3 100644 --- a/README.md +++ b/README.md @@ -594,6 +594,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [mailgun-go](https://github.com/mailgun/mailgun-go) - Go library for sending mail with the Mailgun API. * [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. From ea151546379a4fa6e0dab7ecd6679520ad97518a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rk=20S=C3=A1gi-Kaz=C3=A1r?= Date: Thu, 19 Sep 2019 21:07:41 +0200 Subject: [PATCH 1711/3440] Add emperror (#2632) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 026efed75a3..5075f363cca 100644 --- a/README.md +++ b/README.md @@ -625,7 +625,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for handling errors.* +* [emperror](https://github.com/emperror/emperror) - Error handling tools and best practices for Go libraries and applications. * [errlog](https://github.com/snwfdhmp/errlog) - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place. +* [errors](https://github.com/emperror/errors) - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. * [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. From 55b633c81a719378c2ee9a646d8b4f36fa87f008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=9Eakir=20=C5=9Eensoy?= Date: Thu, 19 Sep 2019 22:10:05 +0300 Subject: [PATCH 1712/3440] Add genv (#2637) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5075f363cca..288b49aead1 100644 --- a/README.md +++ b/README.md @@ -273,6 +273,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. * [envh](https://github.com/antham/envh) - Helpers to manage environment variables. * [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. +* [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. * [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. * [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from 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`). From 338fb530b06568d288a2396affc1d581b1e9f967 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Thu, 19 Sep 2019 21:23:20 +0200 Subject: [PATCH 1713/3440] Add implementation of Python's module "textwrap" (#2639) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 288b49aead1..6043a64ee9f 100644 --- a/README.md +++ b/README.md @@ -1590,6 +1590,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. * [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. * [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. + * [textwrap](https://github.com/isbm/textwrap) - Implementation of `textwrap` module from Python. * [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. * [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text. From fea7f4c8a091da73cdee5e8a1ad5edce2ebd5728 Mon Sep 17 00:00:00 2001 From: Jacek Kucharczyk Date: Thu, 19 Sep 2019 22:48:01 +0200 Subject: [PATCH 1714/3440] Added neuronlabs/errors Error Handling package (#2647) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6043a64ee9f..89a70afceec 100644 --- a/README.md +++ b/README.md @@ -630,6 +630,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [errlog](https://github.com/snwfdhmp/errlog) - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place. * [errors](https://github.com/emperror/errors) - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. +* [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. * [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. * [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. From e15d34a8d373ef4db490d7d8b45cbe5ab7b42593 Mon Sep 17 00:00:00 2001 From: swithek Date: Thu, 19 Sep 2019 23:55:45 +0300 Subject: [PATCH 1715/3440] added swithek/sessionup package (#2651) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89a70afceec..197043e95c6 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). * [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. * [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. +* [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package. * [signedvalue](https://github.com/sashka/signedvalue) - Signed and timestamped strings compatible with [Tornado's](https://github.com/tornadoweb/tornado) `create_signed_value`, `decode_signed_value`, and therefore `set_secure_cookie` and `get_secure_cookie`. * [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser. From 58d6ce35fe6bd5f3da90c4a536431c0f6f3aefc1 Mon Sep 17 00:00:00 2001 From: Sung Won Cho Date: Fri, 20 Sep 2019 05:05:47 +0800 Subject: [PATCH 1716/3440] Add Dnote to the Command Line section (#2652) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 197043e95c6..33b18aa5dd6 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. +* [Dnote](https://github.com/dnote/dnote) - A simple and end-to-end encrypted notebook for developers. * [docopt.go](https://github.com/docopt/docopt.go) - Command-line arguments parser that will make you smile. * [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. From df1d8b00b5860379bbc06ac947101f081871fae5 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Thu, 19 Sep 2019 14:09:03 -0700 Subject: [PATCH 1717/3440] update ghorg description (#2656) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 33b18aa5dd6..248fb5d8230 100644 --- a/README.md +++ b/README.md @@ -1103,7 +1103,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. -* [ghorg](https://github.com/gabrie30/ghorg) - Clone all repos from a GitHub org into a single directory. +* [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, and Bitbucket. * [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool 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. @@ -1801,7 +1801,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [nanoid](https://github.com/aidarkhanov/nanoid) - A tiny and efficient Go unique string ID generator. * [sno](https://github.com/muyo/sno) - Compact, sortable and fast unique IDs with embedded metadata. * [ulid](https://github.com/oklog/ulid) - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier). -* [uniq](https://gitlab.com/skilstak/code/go/uniq) - No hassle safe, fast unique identifiers with commands. +* [uniq](https://gitlab.com/skilstak/code/go/uniq) - No hassle safe, fast unique identifiers with commands. * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. * [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. From 0e9662473b6a0f6b18086faee3f06e3da891ea19 Mon Sep 17 00:00:00 2001 From: Eran Harel Date: Fri, 20 Sep 2019 00:20:46 +0300 Subject: [PATCH 1718/3440] Added go-sundheit - a service health checks lib to distributed systems section (#2662) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 248fb5d8230..55bf641767a 100644 --- a/README.md +++ b/README.md @@ -563,6 +563,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service. * [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. * [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. +* [go-sundheit](https://github.com/AppsFlyer/go-sundheit) - A library built to provide support for defining async service health checks for golang services. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [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. From b55992e93d2433d504489c12d180405e43f6e2a7 Mon Sep 17 00:00:00 2001 From: noctarius aka Christoph Engelbert Date: Thu, 19 Sep 2019 14:22:07 -0700 Subject: [PATCH 1719/3440] Added libgoffi (#2663) libgoffi is a general purpose libffi adapter library to bind foreign functions to Go function types Changed the libgoffi description... ... to be a bit more intriguing, since libgoffi delivers Go native integration for libffi imported function using function adapters which make the native function look like any other Go function. Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 55bf641767a..5d78d6caa0a 100644 --- a/README.md +++ b/README.md @@ -1647,6 +1647,7 @@ 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. * [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). +* [libgoffi](https://github.com/clevabit/libgoffi) - Library adapter toolbox for native [libffi](http://sourceware.org/libffi/) integration * [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. * [minio-go](https://github.com/minio/minio-go) - Minio Go Library for Amazon S3 compatible cloud storage. From 549dd49250734dcc21e2bc81396d07845f60c8e3 Mon Sep 17 00:00:00 2001 From: Abdullah Selek Date: Thu, 19 Sep 2019 22:26:14 +0100 Subject: [PATCH 1720/3440] Add go-here under third party apis. (#2670) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5d78d6caa0a..2691637cc66 100644 --- a/README.md +++ b/README.md @@ -1624,6 +1624,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [githubql](https://github.com/shurcooL/githubql) - Go library for accessing the GitHub GraphQL API v4. * [go-chronos](https://github.com/axelspringer/go-chronos) - Go library for interacting with the [Chronos](https://mesos.github.io/chronos/) Job Scheduler * [go-hacknews](https://github.com/PaulRosset/go-hacknews) - Tiny Go client for HackerNews API. +* [go-here](https://github.com/abdullahselek/go-here) - Go client library around the HERE location based APIs. * [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. From 2671fbe0ac4ba5056fceffc90c53207a4ea5eb8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rk=20S=C3=A1gi-Kaz=C3=A1r?= Date: Thu, 19 Sep 2019 23:32:18 +0200 Subject: [PATCH 1721/3440] Add modern go application (#2672) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2691637cc66..2070f185cb8 100644 --- a/README.md +++ b/README.md @@ -1079,6 +1079,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. +* [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. * [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates starter Go project layout. Lets you focus on business logic implemeted. ### Strings From 30c29e14bcb2d779a08d69347ac0ae8602a7a152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20Ka=C5=9F=C4=B1k=C3=A7=C4=B1?= Date: Fri, 20 Sep 2019 00:02:41 +0200 Subject: [PATCH 1722/3440] add dockerfile-generator (#2680) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2070f185cb8..eef2cabe85a 100644 --- a/README.md +++ b/README.md @@ -2050,6 +2050,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. +* [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. * [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. From 3d00a177a40b0bac03c80ab33e2a4b566e39387e Mon Sep 17 00:00:00 2001 From: ztrue Date: Thu, 19 Sep 2019 15:10:13 -0700 Subject: [PATCH 1723/3440] Add ztrue/shutdown in utils (#2684) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eef2cabe85a..be7b1003fac 100644 --- a/README.md +++ b/README.md @@ -1780,6 +1780,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [scan](https://github.com/blockloop/scan) - Scan golang `sql.Rows` directly to structs, slices, or primitive types. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. +* [shutdown](https://github.com/ztrue/shutdown) - App shutdown hooks for `os.Signal` handling. * [silk](https://github.com/chrispassas/silk) - Read silk netflow files. * [sliceconv](https://github.com/Henry-Sarabia/sliceconv) - Slice conversion between primitive types. * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. From a5c44d3aec08196b2fd731be92ce0b9034d2a326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?And=C5=BEej=20Maciusovi=C4=8D?= Date: Fri, 20 Sep 2019 01:17:50 +0300 Subject: [PATCH 1724/3440] Add goroute router (#2685) * Update README.md * Add goroute * Order in abc * Move goroute to routes section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be7b1003fac..9fac96bc08e 100644 --- a/README.md +++ b/README.md @@ -1882,7 +1882,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [REST Layer](http://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. -* [route](https://github.com/goroute/route) - Simple yet powerful HTTP request multiplexer. * [rux](https://github.com/gookit/rux) - Simple and fast web framework for build golang HTTP 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. @@ -1932,6 +1931,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [FastRouter](https://github.com/razonyang/fastrouter) - a fast, flexible HTTP router written in Go. * [gocraft/web](https://github.com/gocraft/web) - Mux and middleware package in Go. * [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. +* [goroute](https://github.com/goroute/route) - Simple yet powerful HTTP request multiplexer. * [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framwework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. * [gowww/router](https://github.com/gowww/router) - Lightning fast HTTP router fully compatible with the net/http.Handler interface. * [httprouter](https://github.com/julienschmidt/httprouter) - High performance router. Use this and the standard http handlers to form a very high performance web framework. From 0038a370d308224f4bebee393de19c6fb13621c8 Mon Sep 17 00:00:00 2001 From: Nicholas <982912719@qq.com> Date: Fri, 20 Sep 2019 06:38:53 +0800 Subject: [PATCH 1725/3440] Add goa (#2693) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9fac96bc08e..2bcec5b2533 100644 --- a/README.md +++ b/README.md @@ -1868,6 +1868,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-json-rest](https://github.com/ant0ine/go-json-rest) - Quick and easy way to setup a RESTful JSON API. * [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. * [Goa](https://github.com/goadesign/goa) - Goa provides a holistic approach for developing remote APIs and microservices in Go. +* [goa](https://github.com/goa-go/goa) - goa is just like koajs for golang, it is a flexible, light, high-performance and extensible web framework based on middleware. * [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. * [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. From badd9a165050cb4badc3763320470e2dccfe82a1 Mon Sep 17 00:00:00 2001 From: Naser Mirzaei Date: Fri, 20 Sep 2019 03:10:28 +0430 Subject: [PATCH 1726/3440] add env package (#2694) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2bcec5b2533..7496923cb0b 100644 --- a/README.md +++ b/README.md @@ -291,6 +291,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. * [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. * [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. +* [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. * [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). * [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. * [viper](https://github.com/spf13/viper) - Go configuration with fangs. From b8792ff136370cae67b391400f38945102858814 Mon Sep 17 00:00:00 2001 From: Johannes Eiglsperger Date: Fri, 20 Sep 2019 00:43:15 +0200 Subject: [PATCH 1727/3440] Add go-powerdns (#2698) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7496923cb0b..7a3d0cbad9e 100644 --- a/README.md +++ b/README.md @@ -1195,6 +1195,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. * [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. * [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. +* [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. * [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. From ab3a43e77f08ea0d73a94580366d48bad0f40203 Mon Sep 17 00:00:00 2001 From: Roman Egunkov Date: Fri, 20 Sep 2019 02:07:56 +0300 Subject: [PATCH 1728/3440] The placement of "Server applications" in menu in accordance with content. In continuation commit 1d808a49940a490ed41ce5cf92e65c6edb650a22. (#2721) --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 7a3d0cbad9e..fd006204835 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Science and Data Analysis](#science-and-data-analysis) - [Security](#security) - [Serialization](#serialization) + - [Server Applications](#server-applications) - [Stream Processing](#stream-processing) - [Template Engines](#template-engines) - [Testing](#testing) @@ -93,8 +94,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [DevOps Tools](#devops-tools) - [Other Software](#other-software) -- [Server Applications](#server-applications) - - [Resources](#resources) - [Benchmarks](#benchmarks) - [Conferences](#conferences) From 4d5d548b2918850e0a930655be287b5f80018c54 Mon Sep 17 00:00:00 2001 From: Jonathan Hall Date: Fri, 20 Sep 2019 01:35:11 +0200 Subject: [PATCH 1729/3440] Remove go-couchdb: Unmantained (#2711) - Last commit over 5 years ago - Author doesn't respond to requests or PRs - Also no OSS license (not strictly required for inclusion in awesome-go, but legally, this code can't be used by anyone other than the author, without some sort of license) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index fd006204835..32dc0beede6 100644 --- a/README.md +++ b/README.md @@ -485,7 +485,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [dynago](https://github.com/underarmour/dynago) - Dynago is a principle of least surprise client for DynamoDB. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [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. * [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa. * [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. From 1f3800ed90fa85032d5dcf23ca73c92364d839d7 Mon Sep 17 00:00:00 2001 From: Evan Elias Date: Thu, 19 Sep 2019 19:37:42 -0400 Subject: [PATCH 1730/3440] Add Skeema to section for database schema migration (#2702) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 32dc0beede6..b7e6a304315 100644 --- a/README.md +++ b/README.md @@ -423,6 +423,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. * [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. +* [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. * [soda](https://github.com/gobuffalo/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. From 0fa9a9e5600b28674158d8f83a15b1a8d8a4f5fb Mon Sep 17 00:00:00 2001 From: xiaojunxie <346944475@qq.com> Date: Fri, 20 Sep 2019 15:17:56 +0800 Subject: [PATCH 1731/3440] gowp (#2714) gowp is concurrency limiting goroutine pool. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b7e6a304315..999b1d2aeb3 100644 --- a/README.md +++ b/README.md @@ -773,6 +773,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. +* [gowp](https://github.com/xxjwxc/gowp) - gowp is concurrency limiting goroutine pool. * [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. * [Hunch](https://github.com/AaronJan/Hunch) - Hunch provides functions like: `All`, `First`, `Retry`, `Waterfall` etc., that makes asynchronous flow control more intuitive. From abe972c4aedafb56ab667d7fd48fe42c94ff8645 Mon Sep 17 00:00:00 2001 From: Zack Date: Fri, 20 Sep 2019 12:55:42 -0700 Subject: [PATCH 1732/3440] Add croc (#2704) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 999b1d2aeb3..55ce3c035a8 100644 --- a/README.md +++ b/README.md @@ -2109,6 +2109,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. +* [croc](https://github.com/schollz/croc) - Easily and securely send files or folders from one computer to another. * [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. * [Docker](http://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. From ca85803c4d468045bac78d47b0fc59204e528b57 Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Sat, 21 Sep 2019 03:59:05 +0800 Subject: [PATCH 1733/3440] Add gnet to the networking section (#2715) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 55ce3c035a8..26e133f1967 100644 --- a/README.md +++ b/README.md @@ -1193,6 +1193,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). * [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. +* [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, nonblocking, event-loop networking library written in pure Go. * [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. * [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. * [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. From d4bd16495d0b593c745eb98c3ef6b006279d8a9b Mon Sep 17 00:00:00 2001 From: Michael <1185694600@qq.com> Date: Sat, 21 Sep 2019 04:00:41 +0800 Subject: [PATCH 1734/3440] add bigfile (#2720) * feat: add bigfile project * feat: add bigfile project --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 26e133f1967..58e1125dc08 100644 --- a/README.md +++ b/README.md @@ -644,6 +644,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for handling files and file systems.* * [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. +* [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client. * [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5 and SHA256, for large files. * [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. From d7e618943e91e556aa216e6065f33c0c327c9818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eder=20Cal=C3=A9?= Date: Fri, 20 Sep 2019 17:03:34 -0300 Subject: [PATCH 1735/3440] Add rest-go (#2716) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 58e1125dc08..69630d06508 100644 --- a/README.md +++ b/README.md @@ -1775,6 +1775,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. +* [rest-go](https://github.com/edermanoel94/rest-go) - A package that provide many helpful methods for working with rest api. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [retry](https://github.com/kamilsk/retry) - The most advanced functional mechanism to perform actions repetitively until successful. * [retry](https://github.com/percolate/retry) - A simple but highly configurable retry package for Go. From ecba73ed5d23820b782298fb7f31c94da2e7db54 Mon Sep 17 00:00:00 2001 From: Jonathan Hall Date: Sat, 21 Sep 2019 05:48:46 +0200 Subject: [PATCH 1736/3440] Add Kivik to list (#2725) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 69630d06508..9668546e6f5 100644 --- a/README.md +++ b/README.md @@ -395,6 +395,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorocksdb](https://github.com/kapitan-k/gorocksdb) - Gorocksdb is a wrapper for [RocksDB](https://rocksdb.org) written in 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. +* [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. * [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. From f5ff076efe1702a55d21a7653a4120455d02b0d0 Mon Sep 17 00:00:00 2001 From: Roshan Mehta Date: Sun, 22 Sep 2019 03:09:43 +0530 Subject: [PATCH 1737/3440] Add Falcon And Straf (#2710) * Added Falcon To Error Handling Section * Fixed Navigation Of Error Handling * Added straf --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9668546e6f5..07edd2e6f70 100644 --- a/README.md +++ b/README.md @@ -636,6 +636,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. * [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. * [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. +* [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. * [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. * [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. @@ -1325,6 +1326,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. * [jsonslice](https://github.com/bhmj/jsonslice) - Jsonpath queries with advanced filters. * [rql](https://github.com/a8m/rql) - Resource Query Language for REST API. +* [straf](https://github.com/SonicRoshan/straf) - Easily Convert Golang structs to GraphQL objects. ## Resource Embedding From 10de19beaf09f327ce9d4aa0d1b94f1d60c02635 Mon Sep 17 00:00:00 2001 From: xiaojunxie <346944475@qq.com> Date: Sun, 22 Sep 2019 22:21:57 +0800 Subject: [PATCH 1738/3440] gofal (#2723) fractional api for Go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 07edd2e6f70..1f728a22c21 100644 --- a/README.md +++ b/README.md @@ -342,6 +342,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. * [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. * [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. +* [gofal](https://github.com/xxjwxc/gofal) - fractional api for Go. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. From a977dacb558a5e149f7e5fcff72c881211fe2c0e Mon Sep 17 00:00:00 2001 From: adranwit Date: Sun, 22 Sep 2019 07:24:22 -0700 Subject: [PATCH 1739/3440] Added abstract file storage (file,scp,gs,s3,mem) (#2727) * Added ptrie * added abstract file storage * Add croc (#2704) * Add gnet to the networking section (#2715) * add bigfile (#2720) * feat: add bigfile project * feat: add bigfile project * Add rest-go (#2716) * added Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go * added Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1f728a22c21..c0f0b70d751 100644 --- a/README.md +++ b/README.md @@ -647,6 +647,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for handling files and file systems.* * [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. +* [afs](https://github.com/viant/afs) - Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go. * [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client. * [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5 and SHA256, for large files. * [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). From e254bbf3b67ff792baf4cbb870f534939b09ca9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciek=20Zaj=C4=85c?= Date: Mon, 23 Sep 2019 08:10:04 +0200 Subject: [PATCH 1740/3440] Add m-zajac/json2go (#2729) * Add m-zajac/json2go * Move json2go github pages to Websites category --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c0f0b70d751..72c6b21367a 100644 --- a/README.md +++ b/README.md @@ -913,6 +913,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. * [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. +* [json2go](https://github.com/m-zajac/json2go) - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. * [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. @@ -2319,6 +2320,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Gopher Community Chat](https://invite.slack.golangbridge.org) - Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)). * [Gophercises](https://gophercises.com/) - Free coding exercises for budding gophers. * [gowalker.org](https://gowalker.org) - Go Project API documentation. +* [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. * [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). * [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [studygolang](https://studygolang.com) - The community of studygolang in China. From 5e59d119659affa667de9c2bc6f4a705f5dc29d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20W=C3=BCthrich?= Date: Mon, 23 Sep 2019 08:55:47 +0200 Subject: [PATCH 1741/3440] Add Golang Developer Job Board (#2733) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 72c6b21367a..d4a9339d65e 100644 --- a/README.md +++ b/README.md @@ -2312,6 +2312,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go Report Card](https://goreportcard.com) - A report card for your Go package. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. +* [Golang Developer Jobs](https://golangjob.xyz) - Developer Jobs exclusivly for Golang related Roles. * [Golang Flow](https://golangflow.io) - Post Updates, News, Packages and more. * [Golang News](https://golangnews.com) - Links and news about Go programming. * [golang-graphics](https://github.com/mholt/golang-graphics) - Collection of Go images, graphics, and art. From e5bff0eb8b1e3741b2f761d9588e330118a27b08 Mon Sep 17 00:00:00 2001 From: Matthias Ladkau Date: Tue, 24 Sep 2019 22:56:27 +0100 Subject: [PATCH 1742/3440] Add dudeldu (#2705) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d4a9339d65e..0eab0c40ab4 100644 --- a/README.md +++ b/README.md @@ -1430,6 +1430,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [discovery](https://github.com/Bilibili/discovery) - A registry for resilient mid-tier load balancing and failover. +* [dudeldu](https://github.com/krotik/dudeldu) - A simple SHOUTcast server. * [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. From 216a1132b39dd9eb247ee3e48d8a0fe0561e7377 Mon Sep 17 00:00:00 2001 From: xiaojunxie <346944475@qq.com> Date: Fri, 27 Sep 2019 00:18:28 +0800 Subject: [PATCH 1743/3440] ginrpc (#2724) Gin parameter automatic binding tool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0eab0c40ab4..23209a902b4 100644 --- a/README.md +++ b/README.md @@ -1876,6 +1876,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web 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. +* [Ginrpc](https://github.com/xxjwxc/ginrpc) - Gin parameter automatic binding tool,gin rpc tools. * [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. * [go-json-rest](https://github.com/ant0ine/go-json-rest) - Quick and easy way to setup a RESTful JSON API. * [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. From 46076f64542ba1c74395f85eef48e19eacc78ceb Mon Sep 17 00:00:00 2001 From: Aaron Longwell Date: Thu, 26 Sep 2019 09:26:42 -0700 Subject: [PATCH 1744/3440] Adds adlio/schema (#2735) * Adds adlio/schema Adds github.com/adlio/schema. * Adds missing period. Doh! --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23209a902b4..3eeb3eed159 100644 --- a/README.md +++ b/README.md @@ -425,6 +425,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. * [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. +* [schema](https://github.com/adlio/schema) - Library to embed schema migrations for database/sql-compatible databases inside your Go binaries. * [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. * [soda](https://github.com/gobuffalo/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. From 9659940a16b84039e9a2634f96b7cb4e3eae889c Mon Sep 17 00:00:00 2001 From: Roshan Mehta Date: Thu, 26 Sep 2019 21:59:36 +0530 Subject: [PATCH 1745/3440] Add Scope (#2736) * Added Falcon To Error Handling Section * Fixed Navigation Of Error Handling * Added straf * Added Scope --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3eeb3eed159..f89346fad8b 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [rbac](https://github.com/zpatrick/rbac) - Minimalistic RBAC package for Go applications. +* [scope](https://github.com/SonicRoshan/scope) - Easily Manage OAuth2 Scopes In Go. * [scs](https://github.com/alexedwards/scs) - Session Manager for HTTP servers. * [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. * [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). From b82a65f473eda657c992dc2b91f6ce5d345889e2 Mon Sep 17 00:00:00 2001 From: Lovelesh Date: Thu, 26 Sep 2019 22:23:12 +0530 Subject: [PATCH 1746/3440] Add gohive (#2739) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f89346fad8b..1d687cb21e1 100644 --- a/README.md +++ b/README.md @@ -777,6 +777,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. * [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. * [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. +* [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. * [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. From 80184cf435dc69ddc4a1f13345698e6849f12537 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Fri, 27 Sep 2019 19:01:37 +0200 Subject: [PATCH 1747/3440] Remove requirement for two reviews (#2743) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eeef7720427..96aecf580fa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -47,7 +47,7 @@ You are an awesome project now! Feel encouraged to tell others about it by addin ## Maintainers -To make sure every PR is checked, we have [team maintainers](MAINTAINERS). Every PR MUST be reviewed by at least two maintainers before it can get merged. +To make sure every PR is checked, we have [team maintainers](MAINTAINERS). Every PR MUST be reviewed by at least one maintainer before it can get merged. The maintainers will review your PR and notify you and tag it in case any information is still missing. They will wait 30 days for your interaction, after From 43758a93301151b383e10dd54be977b6eed456ab Mon Sep 17 00:00:00 2001 From: Taco de Wolff Date: Fri, 27 Sep 2019 14:14:26 -0300 Subject: [PATCH 1748/3440] Add tdewolff/canvas (#2740) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1d687cb21e1..94c91b6a9ad 100644 --- a/README.md +++ b/README.md @@ -841,6 +841,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bild](https://github.com/anthonynsimon/bild) - Collection of image processing algorithms in pure Go. * [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. * [cameron](https://github.com/aofei/cameron) - An avatar generator for Go. +* [canvas](https://github.com/tdewolff/canvas) - Vector graphics to PDF, SVG or rasterized image. * [darkroom](https://github.com/gojek/darkroom) - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency. * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. * [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. From 4a9a73877677ca5adacd82844561253dffb29df2 Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Sat, 28 Sep 2019 11:27:39 +0800 Subject: [PATCH 1749/3440] Add myself here --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index f0d97201dd9..aedcfdb4bc8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9,3 +9,4 @@ Bo-Yi Wu (@appleboy) Cássio Botaro (@cassiobotaro) Jessica Temporal (@jtemporal) Ceriath (@ceriath) +Andy Pan (@panjf2000) From fc615d2545e37ece472d3f588a32191279585f88 Mon Sep 17 00:00:00 2001 From: pj Date: Sun, 29 Sep 2019 21:47:04 +1000 Subject: [PATCH 1750/3440] Add remember-go (#2732) * Added remember-go * Add dot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 94c91b6a9ad..9b8054a518f 100644 --- a/README.md +++ b/README.md @@ -360,6 +360,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. * [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree. +* [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching data (redis, memory, memcached etc). * [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. * [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. From 8932c95d2b53ab4e06328bbf79551cc661114562 Mon Sep 17 00:00:00 2001 From: go-jet <47941548+go-jet@users.noreply.github.com> Date: Sun, 29 Sep 2019 13:47:48 +0200 Subject: [PATCH 1751/3440] Add go-jet. (#2728) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9b8054a518f..7b64c0173cb 100644 --- a/README.md +++ b/README.md @@ -458,6 +458,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. * [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. +* [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. * [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. From f983b80e5aa4c52b9ef57fd02869e53b9f0a04da Mon Sep 17 00:00:00 2001 From: Quim Muntal Date: Sun, 29 Sep 2019 17:54:12 +0200 Subject: [PATCH 1752/3440] Add qmuntal/stateless (#2744) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7b64c0173cb..8ca546d61d3 100644 --- a/README.md +++ b/README.md @@ -1144,6 +1144,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sandid](https://github.com/aofei/sandid) - Every grain of sand on earth has its own ID. * [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. * [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. +* [stateless](https://github.com/qmuntal/stateless) - A fluent library for creating state machines. * [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... * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. * [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. From 07e1e51cf58a2fb84854d494edac02e5467fdeb9 Mon Sep 17 00:00:00 2001 From: William Poussier Date: Tue, 1 Oct 2019 00:40:22 +0200 Subject: [PATCH 1753/3440] Add wI2L/jettison (#2745) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ca546d61d3..6702e0cbc52 100644 --- a/README.md +++ b/README.md @@ -918,6 +918,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gojq](https://github.com/elgs/gojq) - JSON query in Golang. * [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. +* [jettison](https://github.com/wI2L/jettison) - High performance, reflection-less JSON encoder for Go. * [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. * [json2go](https://github.com/m-zajac/json2go) - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. * [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. From f961a591b472c23c6b8471f792164c1615372287 Mon Sep 17 00:00:00 2001 From: Renat Mennanov Date: Tue, 1 Oct 2019 07:15:10 -0700 Subject: [PATCH 1754/3440] Add mennanov/limiters (#2748) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6702e0cbc52..258edca8332 100644 --- a/README.md +++ b/README.md @@ -1763,6 +1763,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [intrinsic](https://github.com/mengzhuo/intrinsic) - Use x86 SIMD without writing any assembly code. * [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. * [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. +* [limiters](https://github.com/mennanov/limiters) - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks. * [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. From 1d065875732a295fdc1fd8c655823dccf7b68aca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hauke=20L=C3=B6ffler?= Date: Tue, 1 Oct 2019 16:16:40 +0200 Subject: [PATCH 1755/3440] Create .dockerignore to speedup build. (#2749) --- .dockerignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000000..6b8710a711f --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.git From 8b605c643922965b2ceed32c88ad6b8a6a7a620e Mon Sep 17 00:00:00 2001 From: Santiago De la Cruz <51337247+xhit@users.noreply.github.com> Date: Tue, 1 Oct 2019 13:39:42 -0400 Subject: [PATCH 1756/3440] Added go-simple-mail (#2738) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 258edca8332..bbfa3777843 100644 --- a/README.md +++ b/README.md @@ -601,6 +601,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-premailer](https://github.com/vanng822/go-premailer) - Inline styling for HTML mail in Go. +* [go-simple-mail](https://github.com/xhit/go-simple-mail) - Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send. * [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. From d6181213af0eb57e663189e1b9e8cb067a85e550 Mon Sep 17 00:00:00 2001 From: Oleg Zaytsev Date: Tue, 1 Oct 2019 19:48:51 +0200 Subject: [PATCH 1757/3440] Add github.com/cabify/logrusiowriter (#2750) github.com/cabify/logrusiowriter is an `io.Writer` implementation that used `logrus` logger as output. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bbfa3777843..0d2af2bfd16 100644 --- a/README.md +++ b/README.md @@ -958,6 +958,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [logmatic](https://github.com/borderstech/logmatic) - Colorized logger for Golang with dynamic log level configuration. * [logo](https://github.com/mbndr/logo) - Golang logger to different configurable writers. * [logrus](https://github.com/Sirupsen/logrus) - Structured logger for Go. +* [logrusiowriter](https://github.com/cabify/logrusiowriter) - `io.Writer` implementation using [logrus](https://github.com/sirupsen/logrus) logger. * [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). * [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. * [logxi](https://github.com/mgutz/logxi) - 12-factor app logger that is fast and makes you happy. From 9758087ab245e4c949e1924b9105b6b802815453 Mon Sep 17 00:00:00 2001 From: Alvin Rizki <4lvin.rizki@gmail.com> Date: Wed, 2 Oct 2019 00:49:31 +0700 Subject: [PATCH 1758/3440] update redis-lock deprecated repository link (#2751) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d2af2bfd16..84315587f4a 100644 --- a/README.md +++ b/README.md @@ -582,7 +582,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. -* [redis-lock](https://github.com/bsm/redis-lock) - Simplified distributed locking implementation using Redis. +* [redis-lock](https://github.com/bsm/redislock) - Simplified distributed locking implementation using Redis. * [resgate](https://resgate.io/) - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly. * [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. From 7c7f8af31deae307cf102c31df775928ab6e1f19 Mon Sep 17 00:00:00 2001 From: Alvin Rizki <4lvin.rizki@gmail.com> Date: Wed, 2 Oct 2019 00:51:11 +0700 Subject: [PATCH 1759/3440] add Go design patterns (#2752) * add go design patterns list * move to tutorials section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84315587f4a..892aa5c4c8c 100644 --- a/README.md +++ b/README.md @@ -2357,6 +2357,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. * [Go Playground for iOS](https://itunes.apple.com/us/app/go-playground/id1437518275?ls=1&mt=8) - Interactively edit & play Go snippets on your mobile device. * [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) +* [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. * [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. From 2ec7c6b170f0f4352c40e54417d9769322626a61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cenk=20Alt=C4=B1?= Date: Fri, 4 Oct 2019 20:19:01 +0300 Subject: [PATCH 1760/3440] Add rain (#2753) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 892aa5c4c8c..77500095a57 100644 --- a/README.md +++ b/README.md @@ -582,6 +582,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. +* [rain](https://github.com/cenkalti/rain) - BitTorrent client and library. * [redis-lock](https://github.com/bsm/redislock) - Simplified distributed locking implementation using Redis. * [resgate](https://resgate.io/) - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly. * [ringpop-go](https://github.com/uber/ringpop-go) - Scalable, fault-tolerant application-layer sharding for Go applications. From 9b6b39abadafe7373a02888b3a91d09fea4202fa Mon Sep 17 00:00:00 2001 From: Edd Turtle Date: Fri, 4 Oct 2019 18:24:24 +0100 Subject: [PATCH 1761/3440] Add golangcode to tutorial links (#2758) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 77500095a57..897e34b620a 100644 --- a/README.md +++ b/README.md @@ -2361,6 +2361,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. * [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. +* [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. From 95bbe89c373718b9463bdfc0808f777a50b7f264 Mon Sep 17 00:00:00 2001 From: winterssy Date: Fri, 4 Oct 2019 12:31:06 -0500 Subject: [PATCH 1762/3440] Add sreq (#2755) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 897e34b620a..b06ffa44b7e 100644 --- a/README.md +++ b/README.md @@ -1264,6 +1264,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. * [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. +* [sreq](https://github.com/winterssy/sreq) - A simple, user-friendly and concurrent safe HTTP request library for Go. ## OpenGL From 36c899bd63d825c5028360e8930fcc47ac363bf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=BDubo=C5=A1=20Pinte=C5=A1?= Date: Sat, 5 Oct 2019 14:08:33 +0200 Subject: [PATCH 1763/3440] The prose package is only for English. (#2761) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b06ffa44b7e..9b55908c565 100644 --- a/README.md +++ b/README.md @@ -1183,7 +1183,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [petrovich](https://github.com/striker2000/petrovich) - Petrovich is the library which inflects Russian names to given grammatical case. * [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. +* [prose](https://github.com/jdkato/prose) - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only. * [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. From 418cedfdf3e11205eb454961c92b9439dfda05ea Mon Sep 17 00:00:00 2001 From: Milad Rahimi Date: Sun, 6 Oct 2019 18:27:07 +0330 Subject: [PATCH 1764/3440] Add golobby/container to the list of Dependency Injection packages (#2762) * Add golobby/container to the list of Dependency Injection packages * change the order to follow alphanumeric order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9b55908c565..687c3f82b88 100644 --- a/README.md +++ b/README.md @@ -1083,6 +1083,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with dependency injection.* * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. +* [container](https://github.com/golobby/container) - A powerful IoC Container with fluent and easy-to-use interface. * [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. From e893ea6ea9163dd554941457096d21a088cb5319 Mon Sep 17 00:00:00 2001 From: Olivier Wulveryck Date: Tue, 8 Oct 2019 19:49:29 +0200 Subject: [PATCH 1765/3440] fix(gorgonia): repo URL has changed (#2763) Gorgonia has moved to an organization, the old URL is still valid, but no more updates are made on this one. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 687c3f82b88..3f4c7943be9 100644 --- a/README.md +++ b/README.md @@ -1000,7 +1000,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go. * [Goptuna](https://github.com/c-bata/goptuna) - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized. * [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. +* [gorgonia](https://github.com/gorgonia/gorgonia) - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms. * [gorse](https://github.com/zhenghaoz/gorse) - A High Performance Recommender System Package based on Collaborative Filtering for Go. * [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. * [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. From 04424329eb5f332164630fbff5bfbf9fe6d6d3e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=C3=B6tzinger?= Date: Thu, 10 Oct 2019 08:04:52 +0200 Subject: [PATCH 1766/3440] Remove gravityblast/traffic and go-gem/gem - both flagged as unmaintained (#2769) --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 3f4c7943be9..9742f81e47c 100644 --- a/README.md +++ b/README.md @@ -1888,7 +1888,6 @@ 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. -* [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. * [Ginrpc](https://github.com/xxjwxc/ginrpc) - Gin parameter automatic binding tool,gin rpc tools. * [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. @@ -1913,7 +1912,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rux](https://github.com/gookit/rux) - Simple and fast web framework for build golang HTTP 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. -* [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. * [uAdmin](https://github.com/uadmin/uadmin) - Fully featured web framework for Golang, inspired by Django. * [utron](https://github.com/gernest/utron) - Lightweight MVC framework for Go(Golang). * [vox](https://github.com/aisk/vox) - A golang web framework for humans, inspired by Koa heavily. From 1363cb86e8e2c4dccf9266b64da8d2407a345181 Mon Sep 17 00:00:00 2001 From: Amr Hesham Date: Sat, 12 Oct 2019 01:25:54 +0200 Subject: [PATCH 1767/3440] Add Programming with Google Go Specialization (#2765) Add Coursera Specialization : Programming with Google Go in Tutorials section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9742f81e47c..df620c47a44 100644 --- a/README.md +++ b/README.md @@ -2367,6 +2367,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. * [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. +* [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. From 7982ab817d7ff64973d1502c04fd56b00d96f39c Mon Sep 17 00:00:00 2001 From: Tobiasz Heller Date: Sat, 12 Oct 2019 10:31:37 +0200 Subject: [PATCH 1768/3440] Add cel-go (#2756) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index df620c47a44..e63e87b395f 100644 --- a/README.md +++ b/README.md @@ -618,6 +618,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). +* [cel-go](https://github.com/google/cel-go) - Fast, portable, non-Turing complete expression evaluation with gradual typing. * [expr](https://github.com/antonmedv/expr) - an engine that can evaluate expressions. * [gentee](https://github.com/gentee/gentee) - Embeddable scripting programming language. * [gisp](https://github.com/jcla1/gisp) - Simple LISP in Go. From 4e6cc3cf5b743710ebc7a364b3f31555bf83021b Mon Sep 17 00:00:00 2001 From: Niklas <3stadt@users.noreply.github.com> Date: Sun, 13 Oct 2019 05:54:40 +0200 Subject: [PATCH 1769/3440] Remove Gomail since it's unmaintained since 2016. (#2772) Details in https://github.com/go-gomail/gomail/issues/104 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e63e87b395f..a4d64eadcfb 100644 --- a/README.md +++ b/README.md @@ -603,7 +603,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-message](https://github.com/emersion/go-message) - Streaming library for the Internet Message Format and mail messages. * [go-premailer](https://github.com/vanng822/go-premailer) - Inline styling for HTML mail in Go. * [go-simple-mail](https://github.com/xhit/go-simple-mail) - Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send. -* [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. * [mailgun-go](https://github.com/mailgun/mailgun-go) - Go library for sending mail with the Mailgun API. From 757d3c1b7b6578b484980741e537af194a84e52c Mon Sep 17 00:00:00 2001 From: Craig Swank Date: Sun, 13 Oct 2019 05:24:39 -0600 Subject: [PATCH 1770/3440] Add link to parsyl's parquet reader/writer lib (#2737) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a4d64eadcfb..e0121088d92 100644 --- a/README.md +++ b/README.md @@ -663,6 +663,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. +* [parquet](https://github.com/parsyl/parquet) - Read and write [parquet](https://parquet.apache.org) files. * [pdfcpu](https://github.com/hhrutter/pdfcpu) - PDF processor. * [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. * [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. From dd2d93a580535563bc8e9eded91d8ad8b6dd89e1 Mon Sep 17 00:00:00 2001 From: James Mills <1290234+prologic@users.noreply.github.com> Date: Mon, 14 Oct 2019 18:21:20 +1000 Subject: [PATCH 1771/3440] Adds bitcask & bitraft to Database section (#2776) * Adds bitcask & bitraft to Database section * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e0121088d92..a8d56cdeb47 100644 --- a/README.md +++ b/README.md @@ -380,6 +380,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. * [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. +* [Bitcask](https://github.com/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). * [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. * [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. From 8af8a6e9d8a14b0ff2bea5514b6646ffb328e41c Mon Sep 17 00:00:00 2001 From: Jaap Groeneveld Date: Mon, 14 Oct 2019 10:21:40 +0200 Subject: [PATCH 1772/3440] add trial (#2779) fixed adding trial issue --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a8d56cdeb47..c559063f895 100644 --- a/README.md +++ b/README.md @@ -1536,6 +1536,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Testify](https://github.com/stretchr/testify) - Sacred extension to the standard go testing package. * [testmd](https://godoc.org/github.com/tvastar/test/cmd/testmd) - Convert markdown snippets into testable go code. * [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. + * [trial](https://github.com/jgroeneveld/trial) - Quick and easy extendable assertions without introducing much boilerplate. * [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. * [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler. From 783acf9b5110cb6f8d97d7ab945ccb7e1faeb441 Mon Sep 17 00:00:00 2001 From: Jaap Groeneveld Date: Mon, 14 Oct 2019 10:22:07 +0200 Subject: [PATCH 1773/3440] add schema (#2778) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c559063f895..f9b4d258f93 100644 --- a/README.md +++ b/README.md @@ -1531,6 +1531,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httpexpect](https://github.com/gavv/httpexpect) - Concise, declarative, and easy to use end-to-end HTTP and REST API testing. * [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. * [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. + * [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. * [testcase](https://github.com/adamluzsi/testcase) - Idiomatic testing framework for Behavior Driven Development. * [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. From 2577c2c6e9d6872d66efa9c76951fec9ce730088 Mon Sep 17 00:00:00 2001 From: zhshch2002 Date: Mon, 14 Oct 2019 16:25:10 +0800 Subject: [PATCH 1774/3440] Update README.md (#2775) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f9b4d258f93..01dda33e234 100644 --- a/README.md +++ b/README.md @@ -1603,6 +1603,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [goribot](https://github.com/zhshch2002/goribot) - A simple golang spider/scraping framework,build a spider in 3 lines. * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. * [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. From 3b117f703814e8a4de3e1d65325f8f3495dad840 Mon Sep 17 00:00:00 2001 From: Vlad Glushchuk Date: Mon, 14 Oct 2019 10:25:53 +0200 Subject: [PATCH 1775/3440] Add sqlf (#2774) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 01dda33e234..a3abb4c7ec7 100644 --- a/README.md +++ b/README.md @@ -463,6 +463,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. +* [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. * [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries. * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. From 72112a1a4414735ecd8a56eada2c2a048c7cd448 Mon Sep 17 00:00:00 2001 From: Johnathan Fercher Date: Mon, 14 Oct 2019 05:30:26 -0300 Subject: [PATCH 1776/3440] Add maroto (#2707) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3abb4c7ec7..c89ca7e7a6d 100644 --- a/README.md +++ b/README.md @@ -1483,6 +1483,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [maroto](https://github.com/johnfercher/maroto) - A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple. * [mustache](https://github.com/hoisie/mustache) - Go implementation of the Mustache template language. * [pongo2](https://github.com/flosch/pongo2) - Django-like template-engine for Go. * [quicktemplate](https://github.com/valyala/quicktemplate) - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it. From b0cf3a0299e8fd5d0ee2c531a2a029e4b1094109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=97=AD?= <120582243@qq.com> Date: Mon, 14 Oct 2019 16:32:54 +0800 Subject: [PATCH 1777/3440] Add Allenxuxu/gev (#2741) * Add Allenxuxu/gev gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c89ca7e7a6d..acb2cf691ef 100644 --- a/README.md +++ b/README.md @@ -1213,6 +1213,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http. * [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. * [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. * [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, nonblocking, event-loop networking library written in pure Go. * [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. From bf2702b5a4b1b3c8e3523b4a9320dddbe810b6d6 Mon Sep 17 00:00:00 2001 From: David Ansari Date: Mon, 14 Oct 2019 09:34:11 +0100 Subject: [PATCH 1778/3440] Add lastpass-go (#2747) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index acb2cf691ef..fd538fbc035 100644 --- a/README.md +++ b/README.md @@ -1681,6 +1681,7 @@ 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. * [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). +* [lastpass-go](https://github.com/ansd/lastpass-go) - Go client library for the [LastPass](https://www.lastpass.com/) API. * [libgoffi](https://github.com/clevabit/libgoffi) - Library adapter toolbox for native [libffi](http://sourceware.org/libffi/) integration * [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. From a512d8e9e3ef53a27dc2ca13e2f6cd50d431b5c3 Mon Sep 17 00:00:00 2001 From: Faye Amacker <33205765+fxamacker@users.noreply.github.com> Date: Mon, 14 Oct 2019 03:35:06 -0500 Subject: [PATCH 1779/3440] Add fxamacker/cbor (#2746) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fd538fbc035..2f88c79afcf 100644 --- a/README.md +++ b/README.md @@ -1427,6 +1427,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. * [bel](https://github.com/32leaves/bel) - Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC. * [binstruct](https://github.com/ghostiam/binstruct) - Golang binary decoder for mapping data into the structure. +* [cbor](https://github.com/fxamacker/cbor) - Small, safe, and easy CBOR encoding and decoding library. * [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. * [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. * [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. From c1c65548393ae9108d21cb218f6beada6e8e0dcd Mon Sep 17 00:00:00 2001 From: Beniamin Marcu Date: Mon, 14 Oct 2019 23:30:13 +0300 Subject: [PATCH 1780/3440] Add new resource (#2777) * add madewithgolang.com * put new link in alphabetical order --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f88c79afcf..3f8ba518b05 100644 --- a/README.md +++ b/README.md @@ -962,7 +962,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [logmatic](https://github.com/borderstech/logmatic) - Colorized logger for Golang with dynamic log level configuration. * [logo](https://github.com/mbndr/logo) - Golang logger to different configurable writers. * [logrus](https://github.com/Sirupsen/logrus) - Structured logger for Go. -* [logrusiowriter](https://github.com/cabify/logrusiowriter) - `io.Writer` implementation using [logrus](https://github.com/sirupsen/logrus) logger. +* [logrusiowriter](https://github.com/cabify/logrusiowriter) - `io.Writer` implementation using [logrus](https://github.com/sirupsen/logrus) logger. * [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). * [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. * [logxi](https://github.com/mgutz/logxi) - 12-factor app logger that is fast and makes you happy. @@ -2347,6 +2347,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gowalker.org](https://gowalker.org) - Go Project API documentation. * [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. * [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). +* [Made with Golang](https://madewithgolang.com/?ref=awesome-go) * [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [studygolang](https://studygolang.com) - The community of studygolang in China. * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. From f304f0e2e55c9a6ea39d1dd8ee6266f4b400e424 Mon Sep 17 00:00:00 2001 From: Aditya Pratap Singh Date: Mon, 14 Oct 2019 22:31:54 +0200 Subject: [PATCH 1781/3440] doc: Add link for Berlin meetup group (#2780) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f8ba518b05..3eda590e225 100644 --- a/README.md +++ b/README.md @@ -2263,6 +2263,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Meetups * [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) +* [Berlin Golang](https://www.meetup.com/golang-users-berlin/) * [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) * [Canberra Gophers](https://www.meetup.com/Canberra-Gophers/) * [Go Language NYC](https://www.meetup.com/golanguagenewyork/) From 92fd8045098c783f2aed5478956aa2f0ddb24f53 Mon Sep 17 00:00:00 2001 From: Malte Wrogemann <44040384+wroge@users.noreply.github.com> Date: Mon, 14 Oct 2019 23:49:46 +0200 Subject: [PATCH 1782/3440] Add wroge/wgs84 (#2781) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3eda590e225..5b44403b1d7 100644 --- a/README.md +++ b/README.md @@ -760,6 +760,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. * [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. * [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. +* [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM). ## Go Compilers From 490215fb7e98794ff8e5ece47d10acecbd0fe858 Mon Sep 17 00:00:00 2001 From: Camal Cakar Date: Thu, 17 Oct 2019 05:26:10 +0200 Subject: [PATCH 1783/3440] Update GopherCon Europe to Berlin (#2785) The next location for GopherCon will be Berlin, Germany (https://twitter.com/gopherconeu) Just updated this small change :) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b44403b1d7..e1e9691742b 100644 --- a/README.md +++ b/README.md @@ -2220,7 +2220,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GopherCon](http://www.gophercon.com/) - Denver, USA. * [GopherCon Australia](https://gophercon.com.au/) - Sydney, Australia. * [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR. -* [GopherCon Europe](https://gophercon.is/) - Reykjavik, Iceland. +* [GopherCon Europe](https://gophercon.is/) - Berlin, Germany. * [GopherCon India](https://www.gophercon.in/) - Pune, India. * [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel. * [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia. From ee81a512ca74ba0c2e8652f98e0b1839ae58e558 Mon Sep 17 00:00:00 2001 From: Ferenc Fabian Date: Sat, 19 Oct 2019 21:20:58 +0200 Subject: [PATCH 1784/3440] Add bucket to the database tools (#2782) * Add bucket to the Database tools section * Fix typo after bucket added * Alphabetic order * Fix pipeline after fail of the new entry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1e9691742b..c829cb0c95f 100644 --- a/README.md +++ b/README.md @@ -435,6 +435,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Database tools.* +* [bucket](https://github.com/PumpkinSeed/bucket) - Optimized data structure framework for Couchbase specialized on one bucket usage. * [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. * [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small insterts and sends big requests to ClickHouse servers. * [datagen](https://github.com/codingconcepts/datagen) - A fast data generator that's multi-table aware and supports multi-row DML. From 9ea9e7f46314f9b6d0998b25b78c25cbfff7e964 Mon Sep 17 00:00:00 2001 From: Maciej Augustyniak Date: Sat, 19 Oct 2019 21:25:04 +0200 Subject: [PATCH 1785/3440] Removed unmaintained abutil (#2787) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c829cb0c95f..d8298ca998e 100644 --- a/README.md +++ b/README.md @@ -1717,7 +1717,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *General utilities and tools to make your life easier.* -* [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. * [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. * [blank](https://github.com/Henry-Sarabia/blank) - Verify or remove blanks and whitespace from strings. From b6ad4f63a99555f12a8d081c01c46da2bb82334d Mon Sep 17 00:00:00 2001 From: Zhao Xiaojie Date: Sun, 20 Oct 2019 22:42:13 +0800 Subject: [PATCH 1786/3440] Add jcli add a devops tool (#2784) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d8298ca998e..7b48fffcfcd 100644 --- a/README.md +++ b/README.md @@ -2110,6 +2110,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grapes](https://github.com/yaronsumel/grapes) - Lightweight tool designed to distribute commands over ssh with ease. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. * [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application. +* [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. From 01e4051f7e6417b260d1a3db505a6d9c49640d2b Mon Sep 17 00:00:00 2001 From: Abdullah Selek Date: Sun, 20 Oct 2019 15:52:44 +0100 Subject: [PATCH 1787/3440] Add vl-go api client. (#2789) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7b48fffcfcd..4375ebf1a0d 100644 --- a/README.md +++ b/README.md @@ -1708,6 +1708,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [TripAdvisor](https://github.com/mrbenosborne/tripadvisor-golang) - Go wrapper for the TripAdvisor API. * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. * [uptimerobot](https://github.com/bitfield/uptimerobot) - Go wrapper and command-line client for the Uptime Robot v2 API. +* [vl-go](https://github.com/verifid/vl-go) - Go client library around the VerifID identity verification layer API. * [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. * [wit-go](https://github.com/wit-ai/wit-go) - Go client for wit.ai HTTP API. * [ynab](https://github.com/brunomvsouza/ynab.go) - Go wrapper for the YNAB API. From 9468895e47dc40be2542a7b4fea6ae1bd966752f Mon Sep 17 00:00:00 2001 From: Vincent Composieux Date: Sun, 20 Oct 2019 16:56:01 +0200 Subject: [PATCH 1788/3440] Add eko/gocache (#2790) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4375ebf1a0d..2016e5cd89c 100644 --- a/README.md +++ b/README.md @@ -341,6 +341,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. * [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. * [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. +* [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. * [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. * [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. * [gofal](https://github.com/xxjwxc/gofal) - fractional api for Go. From 3a38584d32ce69d5e9d159795b052d0d9e48a980 Mon Sep 17 00:00:00 2001 From: jfeliu007 Date: Wed, 23 Oct 2019 12:08:08 -0400 Subject: [PATCH 1789/3440] Added GoPlantUML to awesome-go (#2793) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2016e5cd89c..6796ca089c1 100644 --- a/README.md +++ b/README.md @@ -2023,6 +2023,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GolangCI](https://golangci.com/) - GolangCI is an automated Golang code review service for GitHub pull requests. Service is open source and it's free for open source projects. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. +* [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. * [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [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. From 12bd3c9004d13109c33490bd74a8c42efa82788d Mon Sep 17 00:00:00 2001 From: "Daniel I. Khan Ramiro" Date: Wed, 23 Oct 2019 11:16:08 -0700 Subject: [PATCH 1790/3440] Add terraform-provider-openapi (#2783) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6796ca089c1..4b1429cdb76 100644 --- a/README.md +++ b/README.md @@ -2133,6 +2133,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the response code and data between each call for specific server stress based on its previous response. * [skm](https://github.com/TimothyYe/skm) - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! * [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. +* [terraform-provider-openapi](https://github.com/dikhan/terraform-provider-openapi) - Terraform provider plugin that dynamically configures itself at runtime based on an OpenAPI document (formerly known as swagger file) containing the definitions of the APIs exposed. * [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. * [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. From 9293d254bab7571b2138362ee871a7df3b7d458d Mon Sep 17 00:00:00 2001 From: Andrey Yurchenkov Date: Mon, 28 Oct 2019 14:00:35 +0300 Subject: [PATCH 1791/3440] Removed ian-kent/goose (#2801) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4b1429cdb76..588b6736894 100644 --- a/README.md +++ b/README.md @@ -1044,7 +1044,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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. From e87d48111832e3aa2c052f5adc436bc8ca4c7c5d Mon Sep 17 00:00:00 2001 From: Andrey Yurchenkov Date: Mon, 28 Oct 2019 14:02:29 +0300 Subject: [PATCH 1792/3440] Removed unmaintained and untested flac (#2799) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 588b6736894..e1e0d3e2f84 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* * [EasyMIDI](https://github.com/algoGuy/EasyMIDI) - EasyMidi is a simple and reliable library for working with standard midi file (SMF). -* [flac](https://github.com/eaburns/flac) - No-frills native Go FLAC decoder that decodes FLAC files into byte slices. * [flac](https://github.com/mewkiz/flac) - Native Go FLAC encoder/decoder with support for FLAC streams. * [gaad](https://github.com/Comcast/gaad) - Native Go AAC bitstream parser. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. From 844e55ae1ef0c029ebf5f7d8780c2ee5928bc330 Mon Sep 17 00:00:00 2001 From: Kishan B Date: Mon, 28 Oct 2019 16:38:54 +0530 Subject: [PATCH 1793/3440] Update http clients section (#2797) * Move resty under HTTP clients section * Remove goreq as it is no longer being maintained --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index e1e0d3e2f84..eda5b24027d 100644 --- a/README.md +++ b/README.md @@ -1264,10 +1264,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for making HTTP requests.* * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. -* [goreq](https://github.com/smallnest/goreq) - Enhanced simplified HTTP client based on gorequest. * [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. * [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. +* [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. * [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. * [sreq](https://github.com/winterssy/sreq) - A simple, user-friendly and concurrent safe HTTP request library for Go. @@ -1808,7 +1808,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. * [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. * [rest-go](https://github.com/edermanoel94/rest-go) - A package that provide many helpful methods for working with rest api. -* [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [retry](https://github.com/kamilsk/retry) - The most advanced functional mechanism to perform actions repetitively until successful. * [retry](https://github.com/percolate/retry) - A simple but highly configurable retry package for Go. * [retry](https://github.com/thedevsaddam/retry) - Simple and easy retry mechanism package for Go. From 25b86f3a3ec4455015b4609aa49d062aaaabdb61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20B=C3=A4umer?= Date: Mon, 28 Oct 2019 19:53:50 +0100 Subject: [PATCH 1794/3440] Add SimonBaeumer/cmd go package (#2795) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eda5b24027d..83a8e2de17f 100644 --- a/README.md +++ b/README.md @@ -1725,6 +1725,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. * [circuitbreaker](https://github.com/rubyist/circuitbreaker) - Circuit Breakers in Go. * [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. +* [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. * [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. From 914ff22596edde839fc2a30b0e2afa671b033743 Mon Sep 17 00:00:00 2001 From: Maxime Guerreiro Date: Wed, 30 Oct 2019 05:11:43 +0000 Subject: [PATCH 1795/3440] Add liftbridge to the Distributed Systems section (#2796) Liftbridge provides lightweight, fault-tolerant message streams by implementing a durable stream augmentation for the NATS messaging system. It extends NATS with a Kafka-like publish-subscribe log API that is highly available and horizontally scalable. Use Liftbridge as a simpler and lighter alternative to systems like Kafka and Pulsar or use it to add streaming semantics to an existing NATS deployment. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 83a8e2de17f..21acc7814b4 100644 --- a/README.md +++ b/README.md @@ -579,6 +579,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [KrakenD](https://github.com/devopsfaith/krakend) - Ultra performant API Gateway framework with middlewares. +* [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. * [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. * [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. From 525956243f427ca4b1fa82539cf40774f57889af Mon Sep 17 00:00:00 2001 From: Aaron Raff Date: Wed, 30 Oct 2019 08:36:18 -0400 Subject: [PATCH 1796/3440] remove jwc (#2803) The repository has been archived and marked as deprecated in the README. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 21acc7814b4..b44477ffec8 100644 --- a/README.md +++ b/README.md @@ -1411,7 +1411,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. * [Interpol](https://bitbucket.org/vahidi/interpol) - Rule-based data generator for fuzzing and penetration testing. -* [jwc](https://github.com/khezen/jwc) - JSON Web Cryptography library. * [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. * [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. From 39a81da304439174e8435c89e9df86ec003728f2 Mon Sep 17 00:00:00 2001 From: Aaron Raff Date: Thu, 31 Oct 2019 22:00:45 -0400 Subject: [PATCH 1797/3440] remove color (#2806) The repo has been archived and the readme claims that there is no maintenance. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b44477ffec8..8c77bbe9bff 100644 --- a/README.md +++ b/README.md @@ -235,7 +235,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that supports fmt.Printf/Sprintf. * [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. * [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. * [ctc](https://github.com/wzshiming/ctc) - The non-invasive cross-platform terminal color library does not need to modify the Print method. * [go-ataman](https://github.com/workanator/go-ataman) - Go library for rendering ANSI colored text templates in terminals. From f892cca333ffcc555f0d549e9a15d9273ce3b308 Mon Sep 17 00:00:00 2001 From: Eduard Date: Thu, 7 Nov 2019 01:28:07 +0300 Subject: [PATCH 1798/3440] Add Coffer (#2786) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8c77bbe9bff..563d6548f35 100644 --- a/README.md +++ b/README.md @@ -386,6 +386,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. * [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. * [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore. +* [Coffer](https://github.com/claygod/coffer) - Simple ACID key-value database that supports transactions. * [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. * [CovenantSQL](https://github.com/CovenantSQL/CovenantSQL) - CovenantSQL is a SQL database on blockchain. * [dgraph](https://github.com/dgraph-io/dgraph) - Scalable, Distributed, Low Latency, High Throughput Graph Database. From a6f712562a0a13012e0a66788c8042971d53e708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=C3=B6tzinger?= Date: Wed, 6 Nov 2019 23:29:07 +0100 Subject: [PATCH 1799/3440] Add flamingo framework (#2770) * add flamingo * Adjust wrong alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 563d6548f35..b40f6032c98 100644 --- a/README.md +++ b/README.md @@ -1899,6 +1899,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. +* [Flamingo](https://github.com/i-love-flamingo/flamingo) - Framework for pluggable web projects. Including a concept for modules and offering features for DI, Configareas, i18n, template engines, graphql, observability, security, events, routing & reverse routing etc. * [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. * [Ginrpc](https://github.com/xxjwxc/ginrpc) - Gin parameter automatic binding tool,gin rpc tools. * [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. From c707470a03c8a6caabc5b2be62a53965f4d717af Mon Sep 17 00:00:00 2001 From: Gopinath Langote Date: Thu, 7 Nov 2019 04:01:14 +0530 Subject: [PATCH 1800/3440] Add 1build tool - command line (#2754) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b40f6032c98..2509e2fa59e 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications.* +* [1build](https://github.com/gopinath-langote/1build) - Command line tool to frictionlessly manage project-specific commands. * [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. * [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 struct tags. From 6af8462370a20ef84eb62b0002a3d6cda2fb9f4e Mon Sep 17 00:00:00 2001 From: Milad Rahimi Date: Thu, 7 Nov 2019 02:05:55 +0330 Subject: [PATCH 1801/3440] Add golobby/config (#2807) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2509e2fa59e..235e33e2818 100644 --- a/README.md +++ b/README.md @@ -263,6 +263,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for configuration parsing.* +* [config](https://github.com/golobby/config) - A lightweight yet powerful config package for Go projects. * [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. * [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. From 70dc9fb288e4452175e39af3d5fd2f4c2dcb154b Mon Sep 17 00:00:00 2001 From: "Alexander I.Grafov" Date: Wed, 13 Nov 2019 21:13:40 +0300 Subject: [PATCH 1802/3440] Add video/m3u8 library (#2810) * Add video/m3u8 library * Add m3u8 library to the list with right order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 235e33e2818..1f0e8daac74 100644 --- a/README.md +++ b/README.md @@ -1887,6 +1887,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. * [libvlc-go](https://github.com/adrg/libvlc-go) - Go bindings for libvlc 2.X/3.X/4.X (used by the VLC media player). +* [m3u8](https://github.com/grafov/m3u8) - Parser and generator library of M3U8 playlists for Apple HLS. * [v4l](https://github.com/korandiz/v4l) - Video capture library for Linux, written in Go. ## Web Frameworks From 0b9554ad86e0b9781daded14348372e9ba8b2a22 Mon Sep 17 00:00:00 2001 From: Pieter Claerhout Date: Fri, 15 Nov 2019 01:52:12 +0100 Subject: [PATCH 1803/3440] Added go-waitgroup (#2815) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1f0e8daac74..09cf1e53af5 100644 --- a/README.md +++ b/README.md @@ -789,6 +789,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. * [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. * [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. +* [go-waitgroup](https://github.com/pieterclaerhout/go-waitgroup) - Like `sync.WaitGroup` with error handling and concurrency control. * [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. * [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. From 4a6194e35a9f9fc3d750a0f5408efbab497ace86 Mon Sep 17 00:00:00 2001 From: Pieter Claerhout Date: Fri, 15 Nov 2019 01:57:08 +0100 Subject: [PATCH 1804/3440] Added go-finance (#2817) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 09cf1e53af5..bbe2428e33c 100644 --- a/README.md +++ b/README.md @@ -685,6 +685,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. +* [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. * [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). * [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. From 0a2e61de625d9b593bf65845ce967f2e71504bd1 Mon Sep 17 00:00:00 2001 From: fzerorubigd Date: Fri, 15 Nov 2019 02:06:15 +0100 Subject: [PATCH 1805/3440] add onion configuration library (#2821) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bbe2428e33c..4d59f985c3b 100644 --- a/README.md +++ b/README.md @@ -292,6 +292,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. * [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. * [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. +* [onion](http://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. * [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). * [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. * [viper](https://github.com/spf13/viper) - Go configuration with fangs. From 531448456ac1b13d4ed1206cbabe89410fc3c35f Mon Sep 17 00:00:00 2001 From: Alexey Palazhchenko Date: Fri, 15 Nov 2019 15:53:43 +0300 Subject: [PATCH 1806/3440] =?UTF-8?q?Remove=20agora=20=E2=80=93=20not=20ma?= =?UTF-8?q?intained=20anymore.=20(#2822)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4d59f985c3b..c67600ff9d6 100644 --- a/README.md +++ b/README.md @@ -621,7 +621,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *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). * [cel-go](https://github.com/google/cel-go) - Fast, portable, non-Turing complete expression evaluation with gradual typing. From 5768f47a3421799ec81750fdbad0cf1076d18c46 Mon Sep 17 00:00:00 2001 From: Emile Date: Tue, 19 Nov 2019 19:43:38 +0100 Subject: [PATCH 1807/3440] Added go.dev (#2826) * Added go.dev * inserted the entry at the right position * Added a dot to the end of the sentence * This should be the correct order --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c67600ff9d6..732410ff3fd 100644 --- a/README.md +++ b/README.md @@ -2344,7 +2344,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. * [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. -* [Go Report Card](https://goreportcard.com) - A report card for your Go package. +* [Go Report Card](https://goreportcard.com) - A report card for your Go package.\ +* [go.dev](https://go.dev/) - A hub for Go developers. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. * [Golang Developer Jobs](https://golangjob.xyz) - Developer Jobs exclusivly for Golang related Roles. From 09e79c0753c36820b28b99198efceda59702fbe7 Mon Sep 17 00:00:00 2001 From: #69D2E7 <57406609+1e6@users.noreply.github.com> Date: Thu, 21 Nov 2019 12:17:45 +0800 Subject: [PATCH 1808/3440] Remove dead link to termtables, fix typo slash (#2828) --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 732410ff3fd..abdbbc2854b 100644 --- a/README.md +++ b/README.md @@ -253,7 +253,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). -* [termtables](https://github.com/apcera/termtables) - Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). * [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. * [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. @@ -2344,7 +2343,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. * [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. -* [Go Report Card](https://goreportcard.com) - A report card for your Go package.\ +* [Go Report Card](https://goreportcard.com) - A report card for your Go package. * [go.dev](https://go.dev/) - A hub for Go developers. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages. From d3181ad30a2d7cdca4d4a0d83b169af62e822a56 Mon Sep 17 00:00:00 2001 From: Rob De Feo Date: Mon, 25 Nov 2019 20:57:17 +0000 Subject: [PATCH 1809/3440] Added Mailchain to awesome-go (#2809) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index abdbbc2854b..20d6d0a46f4 100644 --- a/README.md +++ b/README.md @@ -611,6 +611,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-simple-mail](https://github.com/xhit/go-simple-mail) - Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send. * [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. +* [mailchain](https://github.com/mailchain/mailchain) - Send encrypted emails to blockchain addresses written in Go. * [mailgun-go](https://github.com/mailgun/mailgun-go) - Go library for sending mail with the Mailgun API. * [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. From 3c581ed67e62bfe4cc612f2ebc1fbe010023a33d Mon Sep 17 00:00:00 2001 From: Pieter Claerhout Date: Mon, 25 Nov 2019 21:59:04 +0100 Subject: [PATCH 1810/3440] Added go-james (#2814) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20d6d0a46f4..a3be69d3f9b 100644 --- a/README.md +++ b/README.md @@ -2075,6 +2075,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](http://yeoman.io) generator to get new Go projects started. * [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. +* [go-james](https://github.com/pieterclaerhout/go-james) - Go project skeleton creator, builds and tests your projects without the manual setup. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. * [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. From 8067346e6c395d67c6094b19fd07d411f857bf4e Mon Sep 17 00:00:00 2001 From: Pieter Claerhout Date: Mon, 25 Nov 2019 21:59:37 +0100 Subject: [PATCH 1811/3440] Added go-log (#2816) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3be69d3f9b..3e7cc9f8479 100644 --- a/README.md +++ b/README.md @@ -949,6 +949,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [glo](https://github.com/lajosbencz/glo) - PHP Monolog inspired logging facility with identical severity levels. * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. * [go-cronowriter](https://github.com/utahta/go-cronowriter) - Simple writer that rotate log files automatically based on current date and time, like cronolog. +* [go-log](https://github.com/pieterclaerhout/go-log) - A logging library with strack traces, object dumping and optional timestamps. * [go-log](https://github.com/subchen/go-log) - Simple and configurable Logging in Go, with level, formatters and writers. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - Log4j implementation in Go. From 9e62b93abe469c19ccc4cf56be7f8c6385b87489 Mon Sep 17 00:00:00 2001 From: Pieter Claerhout Date: Mon, 25 Nov 2019 22:00:21 +0100 Subject: [PATCH 1812/3440] pieterclaerhout/go-xray (#2818) * Added go-xray * Added the missing trailing dot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3e7cc9f8479..92d3d61042f 100644 --- a/README.md +++ b/README.md @@ -747,6 +747,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. * [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. * [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. +* [go-xray](https://github.com/pieterclaerhout/go-xray) - Helpers for making the use of reflection easier. * [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. * [gotype](https://github.com/wzshiming/gotype) - Golang source code parsing, usage like reflect package. * [GoWrap](https://github.com/hexdigest/gowrap) - Generate decorators for Go interfaces using simple templates. From bb4c962fb65f93081c7becd293ff7fc1cd141d63 Mon Sep 17 00:00:00 2001 From: Angel Analoosen <53369766+an63@users.noreply.github.com> Date: Tue, 26 Nov 2019 05:00:46 +0800 Subject: [PATCH 1813/3440] Add cronrange package in 'Date and Time' section (#2824) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92d3d61042f..85a472bf7a5 100644 --- a/README.md +++ b/README.md @@ -537,6 +537,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for working with dates and times.* * [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library. +* [cronrange](https://github.com/1set/cronrange) - Parses Cron-style time range expressions, checks if the given time is within any ranges. * [date](https://github.com/rickb777/date) - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day. * [dateparse](https://github.com/araddon/dateparse) - Parse date's without knowing format in advance. * [durafmt](https://github.com/hako/durafmt) - Time duration formatting library for Go. From 2347b153e06f02ccd86ac4565bca342849556951 Mon Sep 17 00:00:00 2001 From: psampaz Date: Mon, 25 Nov 2019 23:05:30 +0200 Subject: [PATCH 1814/3440] Add GoThanks (#2820) * added gothanks * added gothanks * Reorder * Reorder * correct order * removed space --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 85a472bf7a5..de6ff8b2425 100644 --- a/README.md +++ b/README.md @@ -2082,6 +2082,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. * [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. +* [gothanks](https://github.com/psampaz/gothanks) - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. From dfb30473f5d14958c3ea62d6f6bdda00e87a8171 Mon Sep 17 00:00:00 2001 From: "A. Stoewer" Date: Mon, 25 Nov 2019 22:07:33 +0100 Subject: [PATCH 1815/3440] Add package go-week to section 'Date and Time' (#2825) * Add package go-week to section Date and Time * Remove package goweek from section Date and Time Reasons for removal: - not actively maintained - less features than comparable packages - incorrect implementation to calculate the next week --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de6ff8b2425..a264af2c6bf 100644 --- a/README.md +++ b/README.md @@ -544,7 +544,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving... * [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). * [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. -* [goweek](https://github.com/grsmv/goweek) - Library for working with week entity in golang. +* [go-week](https://github.com/stoewer/go-week) - An efficient package to work with ISO8601 week dates. * [iso8601](https://github.com/relvacode/iso8601) - Efficiently parse ISO8601 date-times without regex. * [kair](https://github.com/GuilhermeCaruso/kair) - Date and Time - Golang Formatting Library. * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. From 029785b1ad1388c6538a0197d422ec76c87c47ab Mon Sep 17 00:00:00 2001 From: Sergey Treinis Date: Tue, 26 Nov 2019 00:21:39 +0300 Subject: [PATCH 1816/3440] Add qry tool (#2827) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a264af2c6bf..35ce209e181 100644 --- a/README.md +++ b/README.md @@ -465,6 +465,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. * [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. +* [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. From b59923cc0c7b1934080169a8b92687939e5ee312 Mon Sep 17 00:00:00 2001 From: Valentin P <7628998+w3st3ry@users.noreply.github.com> Date: Tue, 26 Nov 2019 00:02:31 +0100 Subject: [PATCH 1817/3440] Add CDS entry (#2830) Signed-off-by: Valentin Pichard <7628998+w3st3ry@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 35ce209e181..839e878f48d 100644 --- a/README.md +++ b/README.md @@ -301,6 +301,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for help with continuous integration.* +* [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. * [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. * [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. * [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. From 0b8d0190667da46cbfa827b8238f04455001e65e Mon Sep 17 00:00:00 2001 From: pj Date: Tue, 26 Nov 2019 10:05:56 +1100 Subject: [PATCH 1818/3440] update description (#2833) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 839e878f48d..0b322350ee0 100644 --- a/README.md +++ b/README.md @@ -362,7 +362,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. * [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree. -* [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching data (redis, memory, memcached etc). +* [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). * [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. * [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. @@ -1379,7 +1379,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [assocentity](https://github.com/ndabAP/assocentity) - Package assocentity returns the average distance from words to a given entity. * [bradleyterry](https://github.com/seanhagen/bradleyterry) - Provides a Bradley-Terry Model for pairwise comparisons. * [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. -* [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for Go for machine-learning and statistics (similar to pandas). +* [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for machine-learning and statistics (similar to pandas). * [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. From b6dbe51cb02ae81fa3acbe92141ed21c07608e0a Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Wed, 27 Nov 2019 10:32:34 +1100 Subject: [PATCH 1819/3440] =?UTF-8?q?Add=20Cl=C3=AEr=20(#2838)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0b322350ee0..31935316ec9 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line applications. * [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. +* [clîr](https://github.com/leaanthony/clir) - A Simple and Clear CLI library. Dependency free. * [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. * [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. From 455c79c5167dc7775c3aa677ab3eb6a2be57d47d Mon Sep 17 00:00:00 2001 From: Valentin P <7628998+w3st3ry@users.noreply.github.com> Date: Wed, 4 Dec 2019 04:31:35 +0100 Subject: [PATCH 1820/3440] Add uTask entry (#2829) Signed-off-by: Valentin Pichard <7628998+w3st3ry@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 31935316ec9..92cbeeaf25c 100644 --- a/README.md +++ b/README.md @@ -2147,6 +2147,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. * [terraform-provider-openapi](https://github.com/dikhan/terraform-provider-openapi) - Terraform provider plugin that dynamically configures itself at runtime based on an OpenAPI document (formerly known as swagger file) containing the definitions of the APIs exposed. * [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. +* [uTask](https://github.com/ovh/utask) - Automation engine that models and executes business processes declared in yaml. * [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. From 6db0761584fb3e8eed12c8d638983b17dffd5461 Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Wed, 4 Dec 2019 05:32:18 +0200 Subject: [PATCH 1821/3440] add posener/cmd (#2840) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92cbeeaf25c..d75a5de8ccb 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line applications. * [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. * [clîr](https://github.com/leaanthony/clir) - A Simple and Clear CLI library. Dependency free. +* [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idomatic way. * [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. * [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. From 8cceec24c2f6f51ae5352b242bf8285c65a7a487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Corrales=20Solera?= Date: Wed, 4 Dec 2019 04:33:05 +0100 Subject: [PATCH 1822/3440] feat: adding beyond as a new utility (#2843) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d75a5de8ccb..f835e3b3037 100644 --- a/README.md +++ b/README.md @@ -1730,6 +1730,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [apm](https://github.com/topfreegames/apm) - Process manager for Golang applications with an HTTP API. * [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. +* [beyond](https://github.com/wesovilabs/beyond) - The Go tool that will drive you to the AOP world! * [blank](https://github.com/Henry-Sarabia/blank) - Verify or remove blanks and whitespace from strings. * [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. * [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. From 3854292d9b5198f15708652dd04029afbc5247e6 Mon Sep 17 00:00:00 2001 From: Miles Croxford Date: Wed, 4 Dec 2019 03:33:31 +0000 Subject: [PATCH 1823/3440] add gospin (#2835) * add gospin * add fullstop --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f835e3b3037..9929fc01c99 100644 --- a/README.md +++ b/README.md @@ -1492,6 +1492,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. * [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. +* [gospin](https://github.com/m1/gospin) - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations. * [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. * [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. From 7fc1217744b1219cbfada62567769829cbacf934 Mon Sep 17 00:00:00 2001 From: psampaz Date: Fri, 6 Dec 2019 14:17:32 +0200 Subject: [PATCH 1824/3440] add slice (#2844) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9929fc01c99..bbcbdba6cdf 100644 --- a/README.md +++ b/README.md @@ -1832,6 +1832,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. * [shutdown](https://github.com/ztrue/shutdown) - App shutdown hooks for `os.Signal` handling. * [silk](https://github.com/chrispassas/silk) - Read silk netflow files. +* [slice](https://github.com/psampaz/slice) - Type-safe functions for common Go slice operations. * [sliceconv](https://github.com/Henry-Sarabia/sliceconv) - Slice conversion between primitive types. * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. From b60aa4f689a41724d01d294abe20cb5e235dd6a8 Mon Sep 17 00:00:00 2001 From: Zhenghao Zhang Date: Tue, 10 Dec 2019 22:24:39 +0800 Subject: [PATCH 1825/3440] update gorse in ML section (#2849) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bbcbdba6cdf..b670f14509c 100644 --- a/README.md +++ b/README.md @@ -1018,7 +1018,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Goptuna](https://github.com/c-bata/goptuna) - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized. * [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. * [gorgonia](https://github.com/gorgonia/gorgonia) - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms. -* [gorse](https://github.com/zhenghaoz/gorse) - A High Performance Recommender System Package based on Collaborative Filtering for Go. +* [gorse](https://github.com/zhenghaoz/gorse) - An offline recommender system backend based on collaborative filtering written in Go. * [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. * [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. From 63084db4077f31d9016b723a30b5d3a21bfd04bb Mon Sep 17 00:00:00 2001 From: Rakeki Date: Tue, 10 Dec 2019 14:25:59 +0000 Subject: [PATCH 1826/3440] Add gosocsvr (#2836) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b670f14509c..1b67fa3ae04 100644 --- a/README.md +++ b/README.md @@ -1239,6 +1239,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [gosocsvr](https://github.com/rakeki/gosocsvr) - Socket server made simple. * [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. @@ -1475,6 +1476,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [SFTPGo](https://github.com/drakkan/sftpgo) - Full featured and highly configurable SFTP server software. * [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. + ## Stream Processing *Libraries and tools for stream processing and reactive programming.* From 707972f9532d31f8117c6251e2e8cc77dbcbca48 Mon Sep 17 00:00:00 2001 From: Victor Dorneanu Date: Wed, 11 Dec 2019 12:36:57 +0100 Subject: [PATCH 1827/3440] pipe doesn't exist anymore (#2859) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 1b67fa3ae04..2210fa76823 100644 --- a/README.md +++ b/README.md @@ -2198,7 +2198,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [orange-cat](https://github.com/noraesae/orange-cat) - Markdown previewer written in Go. * [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. -* [Pipe](https://github.com/b3log/pipe) - A small and beautiful blogging platform. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. From ca1ba64814da9f86eb757fdbf7fa0b12540a329d Mon Sep 17 00:00:00 2001 From: Luis Morales Date: Wed, 11 Dec 2019 07:39:33 -0800 Subject: [PATCH 1828/3440] Add cookiecutter-golang (#2842) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2210fa76823..ef73e2787b0 100644 --- a/README.md +++ b/README.md @@ -1111,6 +1111,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Unofficial set of patterns for structuring projects.* +* [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. From 1a8906a726aa22a97c7c3f85ffbd80d984f0a309 Mon Sep 17 00:00:00 2001 From: Miles Croxford Date: Thu, 12 Dec 2019 13:54:47 +0000 Subject: [PATCH 1829/3440] add go-generate-password (#2858) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef73e2787b0..2ff80da9aff 100644 --- a/README.md +++ b/README.md @@ -1420,6 +1420,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. * [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. * [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. +* [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. * [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)". * [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. From 406fe7fd5402283ce40e1e9b37257b98b15dc305 Mon Sep 17 00:00:00 2001 From: disksing Date: Sat, 14 Dec 2019 00:08:13 +0800 Subject: [PATCH 1830/3440] add disksing/iter (#2852) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2ff80da9aff..6af70dae596 100644 --- a/README.md +++ b/README.md @@ -355,6 +355,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. * [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. +* [iter](https://github.com/disksing/iter) - Go implementation of C++ STL iterators and algorithms. * [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. From 0917a3cfdc558755e607fc9c5c46399ab029fb63 Mon Sep 17 00:00:00 2001 From: Patrick DeVivo Date: Fri, 13 Dec 2019 11:08:40 -0500 Subject: [PATCH 1831/3440] add a link to tickgit (#2851) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6af70dae596..49b9b335ff3 100644 --- a/README.md +++ b/README.md @@ -2050,6 +2050,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. * [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#. * [tarp](https://github.com/verygoodsoftwarenotvirus/tarp) - tarp finds functions and methods without direct unit tests in Go source code. +* [tickgit](https://github.com/augmentable-dev/tickgit) - CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`to identify the author. * [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. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 25157cc6631e5b59466a8bdc29df2b31c82ad151 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Friedrich=20Gro=C3=9Fe?= Date: Fri, 13 Dec 2019 17:08:55 +0100 Subject: [PATCH 1832/3440] add goe-joe (#2856) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 49b9b335ff3..0d4870192b7 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building and working with bots.* * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. +* [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. * [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. From f72520f8e684665ef806374e2b7b10fa639c591e Mon Sep 17 00:00:00 2001 From: Tom Wright Date: Fri, 13 Dec 2019 16:09:34 +0000 Subject: [PATCH 1833/3440] Add queryparam package to readme. (#2855) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0d4870192b7..e8b1d831871 100644 --- a/README.md +++ b/README.md @@ -712,6 +712,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [forms](https://github.com/albrow/forms) - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. * [nosurf](https://github.com/justinas/nosurf) - CSRF protection middleware for Go. +* [queryparam](https://github.com/tomwright/queryparam) - Decode `url.Values` into usable struct values of standard or custom types. ## Functional From c9cdfcd26e3a989a2233c49840dac09e2612853f Mon Sep 17 00:00:00 2001 From: Fergus Strange Date: Mon, 16 Dec 2019 01:33:01 +1100 Subject: [PATCH 1834/3440] Add fergusstrange/embedded-postgres (#2850) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e8b1d831871..45f448939bb 100644 --- a/README.md +++ b/README.md @@ -1529,6 +1529,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. * [endly](https://github.com/viant/endly) - Declarative end to end functional testing. * [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. * [frisby](https://github.com/verdverm/frisby) - REST API testing framework. From 1f083f12eea785c5a85de9403c8bd9b654c4079d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=C3=B6tzinger?= Date: Thu, 19 Dec 2019 20:35:19 +0100 Subject: [PATCH 1835/3440] Add ecommerce section with flamingo commerce (#2771) * add ecommerce section with flamingo commerce * Add fitting entries to new e-commerce section * Revert "Add fitting entries to new e-commerce section" This reverts commit f1815ec6a8d9e6891d8cfd00f955bdc82caca83a. * Revert "add ecommerce section with flamingo commerce" This reverts commit a81fdc344292676bdd23f4cf349258d37257af73. * Add Flamingo-Commerce --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 45f448939bb..07c8a3ffb73 100644 --- a/README.md +++ b/README.md @@ -1923,6 +1923,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. * [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. * [Flamingo](https://github.com/i-love-flamingo/flamingo) - Framework for pluggable web projects. Including a concept for modules and offering features for DI, Configareas, i18n, template engines, graphql, observability, security, events, routing & reverse routing etc. +* [Flamingo Commerce](https://github.com/i-love-flamingo/flamingo-commerce) - Providing e-commerce features using clean architecture like DDD and ports and adapters, that you can use to build flexible e-commerce applications. * [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. * [Ginrpc](https://github.com/xxjwxc/ginrpc) - Gin parameter automatic binding tool,gin rpc tools. * [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. From 15081e8a8af82295b2254e8ee1fbb50a058c896b Mon Sep 17 00:00:00 2001 From: Huy Dang Date: Fri, 20 Dec 2019 07:13:38 +0700 Subject: [PATCH 1836/3440] add fixedwidth (#2860) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 07c8a3ffb73..8bc10e21066 100644 --- a/README.md +++ b/README.md @@ -1448,6 +1448,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [cbor](https://github.com/fxamacker/cbor) - Small, safe, and easy CBOR encoding and decoding library. * [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. * [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. +* [fixedwidth](https://github.com/huydang284/fixedwidth) - Fixed-width text formatting (UTF-8 supported). * [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. * [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for 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. From 33021dd3764419dfe1fb80bf3ec1ef057746617a Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Thu, 26 Dec 2019 09:31:39 -0500 Subject: [PATCH 1837/3440] Added go-restful-api project (#2869) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8bc10e21066..b3c7456cded 100644 --- a/README.md +++ b/README.md @@ -1115,6 +1115,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Unofficial set of patterns for structuring projects.* * [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. +* [go-restful-api](https://github.com/qiangxue/go-restful-api) - An idiomatic Go RESTful API starter kit following SOLID principles and Clean Architecture with a common project layout. * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. From 00d85c6222225b550dadb9f8eb833d57154d7f2d Mon Sep 17 00:00:00 2001 From: Bastian Date: Thu, 26 Dec 2019 15:31:56 +0100 Subject: [PATCH 1838/3440] Add Dingo dependency injection (#2865) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3c7456cded..81538d25924 100644 --- a/README.md +++ b/README.md @@ -1104,6 +1104,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. * [container](https://github.com/golobby/container) - A powerful IoC Container with fluent and easy-to-use interface. * [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. +* [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. * [inject](https://github.com/defval/inject) - A reflection based dependency injection container with simple interface. From 9bd53da7e9c8426c5a2e9498a769554d875d6c67 Mon Sep 17 00:00:00 2001 From: Mario <45703291+mats9693@users.noreply.github.com> Date: Sun, 29 Dec 2019 09:31:46 -0600 Subject: [PATCH 1839/3440] add dp project to miscellaneous (#2872) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 81538d25924..86aaf298b90 100644 --- a/README.md +++ b/README.md @@ -2182,6 +2182,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. * [Docker](http://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. +* [dp](https://github.com/scryinfo/dp) - Through SDK for data exchange with blockchain, developers can get easy access to DAPP development. * [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. * [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. * [gfile](https://github.com/Antonito/gfile) - Securely transfer files between two computers, without any third party, over WebRTC. From a4c40f95fb6c1eda471e38860fd871551e8affa9 Mon Sep 17 00:00:00 2001 From: Cyro Dubeux Date: Sun, 29 Dec 2019 12:33:13 -0300 Subject: [PATCH 1840/3440] Added package tome to the utilities list (#2871) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 86aaf298b90..7c421916001 100644 --- a/README.md +++ b/README.md @@ -1852,6 +1852,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. * [Task](https://github.com/go-task/task) - simple "Make" alternative. +* [tome](https://github.com/cyruzin/tome) - Tome was designed to paginate simple RESTful APIs. * [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. From 3f103e02448b4e51a85fe8335d22977d364c61aa Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Tue, 31 Dec 2019 16:01:12 +0800 Subject: [PATCH 1841/3440] Update description of networking framework: gnet (#2882) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c421916001..686a83d1acb 100644 --- a/README.md +++ b/README.md @@ -1234,7 +1234,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). * [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. * [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. -* [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, nonblocking, event-loop networking library written in pure Go. +* [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. * [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. * [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. * [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. From 60691377bea73ab73b92ad06dace716bab73ef6d Mon Sep 17 00:00:00 2001 From: alcastle Date: Thu, 2 Jan 2020 12:57:48 -0800 Subject: [PATCH 1842/3440] Created new Dynamic DNS category, added existing projects and new project to the category. (#2841) --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 686a83d1acb..643ed235101 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Database Drivers](#database-drivers) - [Date and Time](#date-and-time) - [Distributed Systems](#distributed-systems) + - [Dynamic DNS](#dynamic-dns) - [Email](#email) - [Embeddable Scripting Languages](#embeddable-scripting-languages) - [Error Handling](#error-handling) @@ -604,6 +605,14 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. +## Dynamic DNS + +*Tools for updating dynamic DNS records.* + +* [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. +* [dyndns](https://gitlab.com/alcastle/dyndns) - Background Go process to regularly and automatically check your IP Address and make updates to (one or many) Dynamic DNS records for Google domains whenever your address changes. +* [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. + ## Email *Libraries and tools that implement email creation and sending.* @@ -2180,7 +2189,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Comcast](https://github.com/tylertreat/Comcast) - Simulate bad network connections. * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. * [croc](https://github.com/schollz/croc) - Easily and securely send files or folders from one computer to another. -* [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. * [Docker](http://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. * [dp](https://github.com/scryinfo/dp) - Through SDK for data exchange with blockchain, developers can get easy access to DAPP development. @@ -2191,7 +2199,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. * [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. -* [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. * [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. From 252e8c0e43c704126d1227273ffea88b5eab2ec6 Mon Sep 17 00:00:00 2001 From: malaschitz Date: Thu, 2 Jan 2020 22:00:52 +0100 Subject: [PATCH 1843/3440] randomforest library (#2847) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 643ed235101..b2aca9a1a0b 100644 --- a/README.md +++ b/README.md @@ -1039,6 +1039,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ocrserver](https://github.com/otiai10/ocrserver) - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. * [onnx-go](https://github.com/owulveryck/onnx-go) - Go Interface to Open Neural Network Exchange (ONNX). * [probab](https://github.com/ThePaw/probab) - Probability distribution functions. Bayesian inference. Written in pure Go. +* [randomforest](https://github.com/malaschitz/randomForest) - Easy to use Random Forest library 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. * [tfgo](https://github.com/galeone/tfgo) - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python. From bf8df761e24c19f4cc92fe65e5c32c9608fde040 Mon Sep 17 00:00:00 2001 From: Ilya Kaznacheev Date: Fri, 3 Jan 2020 00:04:37 +0300 Subject: [PATCH 1844/3440] Add cleanenv configuration library (#2848) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b2aca9a1a0b..04c56e5da43 100644 --- a/README.md +++ b/README.md @@ -266,6 +266,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for configuration parsing.* +* [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). * [config](https://github.com/golobby/config) - A lightweight yet powerful config package for Go projects. * [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. From 173e3091041afa0792242714998ebc269016ddc0 Mon Sep 17 00:00:00 2001 From: Streppel Date: Thu, 2 Jan 2020 18:09:43 -0300 Subject: [PATCH 1845/3440] Add Curitiba meetup (#2863) * Update README adding meetup group for the city of Curitiba - Brazil * fixing alphabetical order of meetup --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 04c56e5da43..af870c873a8 100644 --- a/README.md +++ b/README.md @@ -2327,6 +2327,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Bulgaria](https://www.meetup.com/Golang-Bulgaria/) * [Golang Cardiff, UK](https://www.meetup.com/Cardiff-Go-Meetup/) * [Golang Copenhagen](https://www.meetup.com/Go-Cph/) +* [Golang Curitiba - Brazil](https://www.meetup.com/GolangCWB/) * [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) * [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) * [Golang Gurgaon, India](https://www.meetup.com/Gurgaon-Go-Meetup/) From fb4782f73096fa5d0adfb12516aed694413c698f Mon Sep 17 00:00:00 2001 From: Miles Croxford Date: Thu, 2 Jan 2020 21:11:01 +0000 Subject: [PATCH 1846/3440] add go-localize (#2868) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af870c873a8..d6c49317d44 100644 --- a/README.md +++ b/README.md @@ -1196,6 +1196,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. * [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. +* [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. * [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. * [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. * [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. From 03d911c41395e3a7e8ba8065c08d0db872ff3772 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Fri, 3 Jan 2020 04:26:05 +0700 Subject: [PATCH 1847/3440] Added "ptr" package to miscellaneous (#2873) * Added "ptr" package to miscellaneous * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d6c49317d44..0a521263839 100644 --- a/README.md +++ b/README.md @@ -1838,6 +1838,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool. * [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. +* [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. * [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. From 20f78a5f3db81cfd904dd7d26e5670eae7732284 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 2 Jan 2020 23:29:26 +0200 Subject: [PATCH 1848/3440] Add Language Detection API Go client (#2874) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0a521263839..ab5133a80e2 100644 --- a/README.md +++ b/README.md @@ -1194,6 +1194,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with human languages.* +* [detectlanguage](https://github.com/detectlanguage/detectlanguage-go) - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection. * [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. * [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. * [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. From 7bc3bc4cde738df9f160b91fd7441df4587e4a47 Mon Sep 17 00:00:00 2001 From: sumeet jain Date: Thu, 2 Jan 2020 16:33:45 -0500 Subject: [PATCH 1849/3440] Add rotisserie/eris (#2878) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ab5133a80e2..daed4bc042c 100644 --- a/README.md +++ b/README.md @@ -661,6 +661,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for handling errors.* * [emperror](https://github.com/emperror/emperror) - Error handling tools and best practices for Go libraries and applications. +* [eris](https://github.com/rotisserie/eris) - A better way to handle, trace, and log errors in Go. Compatible with the standard error library and github.com/pkg/errors. * [errlog](https://github.com/snwfdhmp/errlog) - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place. * [errors](https://github.com/emperror/errors) - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. From 6e78516fdee7154807c449c0fe7d42866b116b62 Mon Sep 17 00:00:00 2001 From: ayazmumtaz Date: Sat, 4 Jan 2020 16:12:36 -0500 Subject: [PATCH 1850/3440] Add tracedb to readme file (#2886) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index daed4bc042c..fe5a99a4435 100644 --- a/README.md +++ b/README.md @@ -422,6 +422,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. +* [tracedb](https://github.com/unit-io/tracedb) - Fast timeseries database for IoT, realtime messaging applications. Access tracedb with pubsub over tcp or websocket using github.com/unit-io/trace application. * [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. * [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. From edd4cf73b25d0c919a46fa1882e8f3f882044129 Mon Sep 17 00:00:00 2001 From: xxj <346944475@qq.com> Date: Sun, 5 Jan 2020 05:13:49 +0800 Subject: [PATCH 1851/3440] gormt (#2881) mysql database to golang gorm struct --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fe5a99a4435..6e1a30e205a 100644 --- a/README.md +++ b/README.md @@ -1327,6 +1327,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. * [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. +* [gormt](https://github.com/xxjwxc/gormt) - Mysql database to golang gorm struct. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. * [grimoire](https://github.com/Fs02/grimoire) - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3). * [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. From 351e4811b8c23d66a26c1b1c6d0f672121f80e23 Mon Sep 17 00:00:00 2001 From: Muhammad Surya Date: Sun, 5 Jan 2020 04:15:07 +0700 Subject: [PATCH 1852/3440] add-rel (#2887) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6e1a30e205a..e352a7d6519 100644 --- a/README.md +++ b/README.md @@ -1335,6 +1335,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pop/soda](https://github.com/gobuffalo/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. +* [rel](https://github.com/Fs02/rel) - Golang SQL Repository Layer for Clean (Onion) Architecture. * [SQLBoiler](https://github.com/volatiletech/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. From 4622f612b7476ebfa6bad659cb39a3b3b06bd90f Mon Sep 17 00:00:00 2001 From: Ian Lopshire Date: Sat, 4 Jan 2020 16:58:39 -0500 Subject: [PATCH 1853/3440] Add go-ssm-config (#2889) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e352a7d6519..0404267f8c3 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [envh](https://github.com/antham/envh) - Helpers to manage environment variables. * [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. * [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. +* [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). * [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. * [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from 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`). From a26bb016142cc03677103b8353e3f973b013061f Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Tue, 7 Jan 2020 18:13:29 +0800 Subject: [PATCH 1854/3440] Update description of ants (#2892) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0404267f8c3..4851e0b4688 100644 --- a/README.md +++ b/README.md @@ -803,7 +803,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for managing and working with Goroutines.* -* [ants](https://github.com/panjf2000/ants) - A high-performance goroutine pool for golang. +* [ants](https://github.com/panjf2000/ants) - A high-performance and low-cost goroutine pool in Go. * [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. From 057ee11f8409afceda0c1cc4d4eaa7379f3668ed Mon Sep 17 00:00:00 2001 From: Mehran Poursadeghi Date: Thu, 9 Jan 2020 04:43:36 +0330 Subject: [PATCH 1855/3440] Add mgm package (#2893) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4851e0b4688..d574fe6a554 100644 --- a/README.md +++ b/README.md @@ -516,6 +516,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. + * [mgm](https://github.com/kamva/mgm) - MongoDB model-based ODM for Go (based on official MongoDB driver). * [mgo](https://github.com/globalsign/mgo) - (unmaintained) 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. * [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. * [neo4j](https://github.com/cihangir/neo4j) - Neo4j Rest API Bindings for Golang. From fe50b625e7e2f6f2ab1bdd6116a19400c8cd6405 Mon Sep 17 00:00:00 2001 From: wzshiming Date: Thu, 9 Jan 2020 09:13:58 +0800 Subject: [PATCH 1856/3440] Add httpproxy (#2891) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d574fe6a554..b26b91e5b2d 100644 --- a/README.md +++ b/README.md @@ -1267,6 +1267,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grab](https://github.com/cavaliercoder/grab) - Go package for managing file downloads. * [graval](https://github.com/koofr/graval) - Experimental FTP server framework. * [HTTPLab](https://github.com/gchaincl/httplab) - HTTPLabs let you inspect HTTP requests and forge responses. +* [httpproxy](https://github.com/wzshiming/httpproxy) - HTTP proxy handler and dialer. * [iplib](https://github.com/c-robinson/iplib) - Library for working with IP addresses (net.IP, net.IPNet), inspired by python [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html) * [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. From 62c29d154ba1eeeae8a40d530010f1ebf5e711a1 Mon Sep 17 00:00:00 2001 From: Benjamin Yolken <54862872+yolken-segment@users.noreply.github.com> Date: Fri, 10 Jan 2020 10:55:37 -0800 Subject: [PATCH 1857/3440] Add golines (#2896) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b26b91e5b2d..c1e64aafc3a 100644 --- a/README.md +++ b/README.md @@ -2069,6 +2069,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [GolangCI](https://golangci.com/) - GolangCI is an automated Golang code review service for GitHub pull requests. Service is open source and it's free for open source projects. +* [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. * [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. From 0dd9627d534e3cd80ce08c09657390f05f8d3f50 Mon Sep 17 00:00:00 2001 From: Andrew Koltyakov Date: Sat, 11 Jan 2020 05:33:13 +0300 Subject: [PATCH 1858/3440] Add gosip, client library for SharePoint API (#2894) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c1e64aafc3a..7c0e8c02452 100644 --- a/README.md +++ b/README.md @@ -1722,6 +1722,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [google-analytics](https://github.com/chonthu/go-google-analytics) - Simple wrapper for easy google analytics reporting. * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. * [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). +* [gosip](https://github.com/koltyakov/gosip) - Go client library SharePoint API. * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. * [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. From 90b09170ec8ef90ffe9f8c8fa37966516ad76b72 Mon Sep 17 00:00:00 2001 From: Lucas Scaravelli Date: Fri, 10 Jan 2020 23:33:34 -0300 Subject: [PATCH 1859/3440] Add lucassscaravelli/ej (#2895) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7c0e8c02452..6659c72ef56 100644 --- a/README.md +++ b/README.md @@ -946,6 +946,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with JSON.* * [ajson](https://github.com/spyzhov/ajson) - Abstract JSON for golang with JSONPath support. +* [ej](https://github.com/lucassscaravelli/ej) - Write and read JSON from different sources succinctly. * [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. * [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. * [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is ment to allow us to easily create json response errors that follow the JsonApi spec. From 3b1c670a6e7336be1e562a60ae9b3a6395fafa5a Mon Sep 17 00:00:00 2001 From: ITcathyh <30283922+ITcathyh@users.noreply.github.com> Date: Sat, 11 Jan 2020 10:33:57 +0800 Subject: [PATCH 1860/3440] Added conexec package to Goroutines (#2880) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6659c72ef56..edbced90493 100644 --- a/README.md +++ b/README.md @@ -808,6 +808,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. +* [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way.It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. From 20132c7a970cbddfefff91c8da2985959798ed29 Mon Sep 17 00:00:00 2001 From: Oleg Zaytsev Date: Wed, 15 Jan 2020 05:12:37 +0100 Subject: [PATCH 1861/3440] Add github.com/cabify/timex to Testing/Mocks (#2901) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index edbced90493..7e59e026baa 100644 --- a/README.md +++ b/README.md @@ -1602,6 +1602,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httpmock](https://github.com/jarcoal/httpmock) - Easy mocking of HTTP responses from external resources. * [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. + * [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. * Fuzzing and delta-debugging/reducing/shrinking. * [go-fuzz](https://github.com/dvyukov/go-fuzz) - Randomized testing system. From ffe7c6605eb82a9b0b3a87b3b18ecd1576fcf0be Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Wed, 15 Jan 2020 04:12:56 +0000 Subject: [PATCH 1862/3440] Update Fyne description to match new release info (#2902) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7e59e026baa..66e77c70ed7 100644 --- a/README.md +++ b/README.md @@ -843,7 +843,7 @@ 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. -* [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go, rendered using EFL. Supports: Linux, macOS, Windows. +* [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. * [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-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. From a40fda78c4cd640d7651cfa2dc5eb5f847b9407e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=96=87=E6=85=A7?= Date: Sat, 18 Jan 2020 23:18:04 +0800 Subject: [PATCH 1863/3440] add database bbolt (#2908) * add database bbolt bolt is archived by the owner * remove the archived repo bolt --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 66e77c70ed7..9ad557048ed 100644 --- a/README.md +++ b/README.md @@ -387,10 +387,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Databases implemented in Go.* * [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. +* [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go. * [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. * [Bitcask](https://github.com/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). -* [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. * [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. * [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. From fc0f5adbc7aa2235f895abdebee77e37901a2a17 Mon Sep 17 00:00:00 2001 From: Dirk Pahl Date: Sat, 18 Jan 2020 16:18:32 +0100 Subject: [PATCH 1864/3440] Add kyoo (#2899) * Add kyoo * Fix CI --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ad557048ed..ea234162dbe 100644 --- a/README.md +++ b/README.md @@ -823,6 +823,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. * [Hunch](https://github.com/AaronJan/Hunch) - Hunch provides functions like: `All`, `First`, `Retry`, `Waterfall` etc., that makes asynchronous flow control more intuitive. +* [kyoo](https://github.com/dirkaholic/kyoo) - Provides an unlimited job queue and concurrent worker pools. * [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. * [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. * [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. From 89461c096072cbfba0f415d00e1906ca6f9d16f9 Mon Sep 17 00:00:00 2001 From: Andrey Kuzmin Date: Sat, 18 Jan 2020 18:18:54 +0300 Subject: [PATCH 1865/3440] Add Ami. (#2903) * Add Ami. * Correct sort order. It is case insensitive. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ea234162dbe..4ed02d19fbc 100644 --- a/README.md +++ b/README.md @@ -1057,6 +1057,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement messaging systems.* +* [ami](https://github.com/kak-tus/ami) - Go client to reliable queues based on Redis Cluster Streams. * [APNs2](https://github.com/sideshow/apns2) - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. * [Beaver](https://github.com/Clivern/Beaver) - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. * [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. From 2959ed1cbedbce5c825078c815bee30d673c3413 Mon Sep 17 00:00:00 2001 From: Dat Hoang Date: Sat, 18 Jan 2020 22:19:13 +0700 Subject: [PATCH 1866/3440] Add dathoangnd/gonet (#2905) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4ed02d19fbc..9f92f59742b 100644 --- a/README.md +++ b/README.md @@ -1035,6 +1035,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [golinear](https://github.com/danieldk/golinear) - liblinear bindings for Go. * [GoMind](https://github.com/surenderthakran/gomind) - A simplistic Neural Network Library in Go. * [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go. +* [gonet](https://github.com/dathoangnd/gonet) - Neural Network for Go. * [Goptuna](https://github.com/c-bata/goptuna) - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized. * [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. * [gorgonia](https://github.com/gorgonia/gorgonia) - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms. From ba47d00d314ca4e18562e10120e0e859b3e134d3 Mon Sep 17 00:00:00 2001 From: Razon Yang Date: Sat, 18 Jan 2020 23:19:29 +0800 Subject: [PATCH 1867/3440] Add JSend (#2907) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f92f59742b..c379b700668 100644 --- a/README.md +++ b/README.md @@ -1829,6 +1829,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [intrinsic](https://github.com/mengzhuo/intrinsic) - Use x86 SIMD without writing any assembly code. +* [jsend](https://github.com/clevergo/jsend) - JSend's implementation writen in Go. * [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. * [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. * [limiters](https://github.com/mennanov/limiters) - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks. From 335f9c03d8820623610807abc5f91034ec5e96f3 Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Wed, 29 Jan 2020 02:18:13 -0500 Subject: [PATCH 1868/3440] add entry to databases (#2911) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c379b700668..9f121ece69c 100644 --- a/README.md +++ b/README.md @@ -407,6 +407,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 Go. * [gorocksdb](https://github.com/kapitan-k/gorocksdb) - Gorocksdb is a wrapper for [RocksDB](https://rocksdb.org) written in Go. +* [gostore](https://github.com/twharmon/gostore) - Gostore is a simple, durable, embedded key-value storage engine written in 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. * [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. From 81702ef7cb79f95cf6ef65922668e117ca6d7012 Mon Sep 17 00:00:00 2001 From: Miles Croxford Date: Wed, 29 Jan 2020 07:19:08 +0000 Subject: [PATCH 1869/3440] add go-finnhub (#2910) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f121ece69c..ee7e07fe3aa 100644 --- a/README.md +++ b/README.md @@ -708,6 +708,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. * [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. * [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. +* [go-finnhub](https://github.com/m1/go-finnhub) - Client for stock market, forex and crypto data from finnhub.io. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges. * [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). * [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. From 4a908baee1515dd3db64fa41b20a1a7d934a4bc7 Mon Sep 17 00:00:00 2001 From: stirlingx Date: Wed, 29 Jan 2020 01:20:57 -0600 Subject: [PATCH 1870/3440] Add gostl (#2912) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ee7e07fe3aa..7e1f8a42558 100644 --- a/README.md +++ b/README.md @@ -355,6 +355,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. +* [gostl](https://github.com/liyue201/gostl) - Data structure and algorithm library for go, designed to provide functions similar to C++ STL. * [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. * [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. From ed3deb3910f6a444d3305b63c3fbd163a470c3bb Mon Sep 17 00:00:00 2001 From: Liu Peng <952109@qq.com> Date: Wed, 29 Jan 2020 15:22:16 +0800 Subject: [PATCH 1871/3440] Add go-pdu (#2914) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7e1f8a42558..ccd09c567f3 100644 --- a/README.md +++ b/README.md @@ -588,6 +588,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service. * [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. * [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. +* [go-pdu](https://github.com/pdupub/go-pdu) - A decentralized identity-based social network. * [go-sundheit](https://github.com/AppsFlyer/go-sundheit) - A library built to provide support for defining async service health checks for golang services. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. From 5fd1dbc98dc2d2b114d1c56373958daf7f3df68b Mon Sep 17 00:00:00 2001 From: Daniel Pasch Date: Thu, 30 Jan 2020 14:33:04 +0100 Subject: [PATCH 1872/3440] Add go-twitch-irc (#2925) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ccd09c567f3..cb48cc01cd4 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. * [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. +* [go-twitch-irc](https://github.com/gempir/go-twitch-irc) - Libary to write bots for twitch.tv chat * [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. * [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. * [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. From 4c8d5f2802fed1ea80fa04e0507fe63ff0a38fe5 Mon Sep 17 00:00:00 2001 From: Ferenc Fabian Date: Thu, 30 Jan 2020 14:36:03 +0100 Subject: [PATCH 1873/3440] Add github.com/PumpkinSeed/errors (#2898) * Add github.com/PumpkinSeed/errors * Alphabetic order * Remove extra new line --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cb48cc01cd4..dfe8f1d0e96 100644 --- a/README.md +++ b/README.md @@ -673,6 +673,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [errors](https://github.com/emperror/errors) - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives. * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. * [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. +* [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. * [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. * [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. From d7689abb0a44151a587d3bfe4ac3e2b2b1a94aca Mon Sep 17 00:00:00 2001 From: Sung Won Cho Date: Tue, 4 Feb 2020 13:22:08 +1000 Subject: [PATCH 1874/3440] Update outdated description (#2941) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dfe8f1d0e96..5de3a78959e 100644 --- a/README.md +++ b/README.md @@ -204,7 +204,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. -* [Dnote](https://github.com/dnote/dnote) - A simple and end-to-end encrypted notebook for developers. +* [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync. * [docopt.go](https://github.com/docopt/docopt.go) - Command-line arguments parser that will make you smile. * [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. From 87d9ea1b00fe39182a70c6f3fc0030253d818571 Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Tue, 4 Feb 2020 12:24:17 +0900 Subject: [PATCH 1875/3440] Remove tools which are not found (#2938) * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [go-restful-api](https://github.com/qiangxue/go-restful-api) - An idiomatic Go RESTful API starter kit following SOLID principles and Clean Architecture with a common project layout. * [sreq](https://github.com/winterssy/sreq) - A simple, user-friendly and concurrent safe HTTP request library for Go. * [sslice](https://github.com/yaa110/sslice) - Create a slice which is always sorted. --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 5de3a78959e..c60752bc49c 100644 --- a/README.md +++ b/README.md @@ -478,7 +478,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. -* [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. * [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. * [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries. @@ -1142,7 +1141,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Unofficial set of patterns for structuring projects.* * [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. -* [go-restful-api](https://github.com/qiangxue/go-restful-api) - An idiomatic Go RESTful API starter kit following SOLID principles and Clean Architecture with a common project layout. * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. @@ -1318,7 +1316,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. * [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. -* [sreq](https://github.com/winterssy/sreq) - A simple, user-friendly and concurrent safe HTTP request library for Go. ## OpenGL @@ -1883,7 +1880,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. * [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. -* [sslice](https://github.com/yaa110/sslice) - Create a slice which is always sorted. * [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. * [Task](https://github.com/go-task/task) - simple "Make" alternative. From 487f3c292b0c2fed2d4b2955e101fd6234c20244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Wamej?= Date: Tue, 4 Feb 2020 04:37:22 +0100 Subject: [PATCH 1876/3440] add GoCracow (Krakow, Poland) meetup (#2934) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c60752bc49c..b6559ef8022 100644 --- a/README.md +++ b/README.md @@ -2338,6 +2338,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go Toronto](https://www.meetup.com/go-toronto/) * [Go User Group Atlanta](https://www.meetup.com/Go-Users-Group-Atlanta/) * [GoBridge, San Francisco, CA](https://www.meetup.com/gobridge/) +* [GoCracow - Krakow, Poland](https://www.meetup.com/GoCracow/) * [GoJakarta](https://www.meetup.com/GoJakarta/) * [Golang Amsterdam](https://www.meetup.com/golang-amsterdam/) * [Golang Argentina](https://www.meetup.com/Golang-Argentina/) From 174421f73defb5eaf90a6d400b4bddc247a0fc48 Mon Sep 17 00:00:00 2001 From: Jonah Date: Tue, 4 Feb 2020 13:57:44 +0100 Subject: [PATCH 1877/3440] add social media section incl. reddit (#2917) --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b6559ef8022..a928930910e 100644 --- a/README.md +++ b/README.md @@ -2383,7 +2383,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Add the group of your city/country here (send **PR**)* -## Twitter +## Social Media +### Twitter * [@golang](https://twitter.com/golang) * [@golang_news](https://twitter.com/golang_news) @@ -2391,6 +2392,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [@golangflow](https://twitter.com/golangflow) * [@golangweekly](https://twitter.com/golangweekly) +### Reddit + * [r/golang](https://www.reddit.com/r/golang/) + ## Websites * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. From 571954ec2e9491d9da87bc3d772e466b2df28178 Mon Sep 17 00:00:00 2001 From: Sergey Gladkovskiy Date: Fri, 7 Feb 2020 11:38:03 +0300 Subject: [PATCH 1878/3440] adding mpath package (#2909) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a928930910e..7024bd22d24 100644 --- a/README.md +++ b/README.md @@ -475,6 +475,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. +* [mpath](https://github.com/spacetab-io/mpath-go) - MPTT (Modified Preorder Tree Traversal) package for SQL records - materialized path realisation. * [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. From e8524b1094ab9de79563da46c1839f9853a6d913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Bret=C3=A9cher?= Date: Fri, 7 Feb 2020 09:38:21 +0100 Subject: [PATCH 1879/3440] Add go-postman-collection (#2915) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7024bd22d24..13460649c09 100644 --- a/README.md +++ b/README.md @@ -1717,6 +1717,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). * [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. * [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. * [go-telegraph](https://gitlab.com/toby3d/telegraph) - Telegraph publishing platform API client. From 04f2fabcf9b03eec11d3768b07f06defdad1e7b2 Mon Sep 17 00:00:00 2001 From: biter777 <33280398+biter777@users.noreply.github.com> Date: Fri, 7 Feb 2020 11:39:23 +0300 Subject: [PATCH 1880/3440] Add countries package (#2918) * Add countries package Add countries package: https://github.com/biter777/countries Countries - ISO 3166 (ISO3166-1, ISO3166, Digit, Alpha-2, Alpha-3) countries codes and names (on eng and rus), ISO 4217 currency designators, ITU-T E.164 IDD calling phone codes, countries capitals, UN M.49 regions codes, IANA ccTLD countries domains, IOC/NOC and FIFA codes, VERY FAST, NO maps[], NO slices[], NO external links/files/data, NO interface{}, NO specific dependencies, Databases compatible, Emoji countries flags and currencies support, full support ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. Full support ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 13460649c09..9bec5cc545b 100644 --- a/README.md +++ b/README.md @@ -1784,6 +1784,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. +* [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. * [ctop](https://github.com/bcicen/ctop) - [Top-like](http://ctop.sh) interface (e.g. htop) for container metrics. * [ctxutil](https://github.com/posener/ctxutil) - A collection of utility functions for contexts. * [dbt](https://github.com/nikogura/dbt) - A framework for running self-updating signed binaries from a central, trusted repository. From 3b79b162a9be56e5185430c41d460e7d723dbe88 Mon Sep 17 00:00:00 2001 From: Hiromu OCHIAI Date: Fri, 7 Feb 2020 17:39:37 +0900 Subject: [PATCH 1881/3440] Add "copy" package (#2921) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9bec5cc545b..47799cd157a 100644 --- a/README.md +++ b/README.md @@ -688,6 +688,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [afs](https://github.com/viant/afs) - Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go. * [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client. * [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5 and SHA256, for large files. +* [copy](https://github.com/otiai10/copy) - Copy directory recursively. * [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. From d170fdde73ff390523de1ce3e0ce5cf3ded9da57 Mon Sep 17 00:00:00 2001 From: Alexander Pantyukhin Date: Fri, 7 Feb 2020 12:39:52 +0400 Subject: [PATCH 1882/3440] Add pattern matching lib. (#2923) * Add pattern matching lib. * fix order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 47799cd157a..9490172ae76 100644 --- a/README.md +++ b/README.md @@ -1858,6 +1858,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. * [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. +* [pattern-match](https://github.com/alexpantyukhin/go-pattern-match) - Pattern matching libray. * [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool. * [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. From 170b5cf0912b8cdc0e91c32426244901c03d63a6 Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Fri, 7 Feb 2020 03:40:19 -0500 Subject: [PATCH 1883/3440] Add Goweb to web frameworks (#2924) * add entry to databases * add goweb * edit description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9490172ae76..e5281dc5506 100644 --- a/README.md +++ b/README.md @@ -1975,6 +1975,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. * [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. * [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. From 7af390d7c0bdbfcf9024dc290128dcbcca608bf8 Mon Sep 17 00:00:00 2001 From: xtaci Date: Fri, 7 Feb 2020 16:40:38 +0800 Subject: [PATCH 1884/3440] Update README.md (#2930) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e5281dc5506..74a95a7d46e 100644 --- a/README.md +++ b/README.md @@ -1260,6 +1260,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http. * [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [gaio](https://github.com/xtaci/gaio) - High performance async-io networking for Golang in proactor mode. * [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. * [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. * [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. From b0f3825d8abb13720d4623637acc159ba3709308 Mon Sep 17 00:00:00 2001 From: superxin Date: Fri, 7 Feb 2020 16:41:05 +0800 Subject: [PATCH 1885/3440] Add typeregistry (#2931) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74a95a7d46e..84900ec48ae 100644 --- a/README.md +++ b/README.md @@ -783,6 +783,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. * [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. * [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection. +* [typeregistry](https://github.com/xiaoxin01/typeregistry) - A library to create type dynamically. ## Geographic From b6e6f03f20d086106fc63809e22fe3f2a5846df4 Mon Sep 17 00:00:00 2001 From: Dustin Blackman Date: Fri, 7 Feb 2020 03:41:26 -0500 Subject: [PATCH 1886/3440] Add github.com/dustinblackman/gomodrun (#2936) * add gomodrun * fix sorting --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84900ec48ae..6f94bfe919a 100644 --- a/README.md +++ b/README.md @@ -2143,6 +2143,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. * [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. * [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. +* [gomodrun](https://github.com/dustinblackman/gomodrun/) - Go tool that executes and caches binaries included in go.mod files. * [gothanks](https://github.com/psampaz/gothanks) - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. From 74cf07b0208f96439f53ba8a1cbdfccbd0d9c36d Mon Sep 17 00:00:00 2001 From: Santiago De la Cruz <51337247+xhit@users.noreply.github.com> Date: Fri, 7 Feb 2020 04:41:45 -0400 Subject: [PATCH 1887/3440] Add go-str2duration (#2937) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6f94bfe919a..671343ff8f4 100644 --- a/README.md +++ b/README.md @@ -557,6 +557,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [durafmt](https://github.com/hako/durafmt) - Time duration formatting library for Go. * [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving... * [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). +* [go-str2duration](https://github.com/xhit/go-str2duration) - Convert string to duration. Support time.Duration returned string and more. * [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. * [go-week](https://github.com/stoewer/go-week) - An efficient package to work with ISO8601 week dates. * [iso8601](https://github.com/relvacode/iso8601) - Efficiently parse ISO8601 date-times without regex. From 7296ef829d452fa165c3055230a17719ecc8ac4a Mon Sep 17 00:00:00 2001 From: Cyro Dubeux Date: Sat, 8 Feb 2020 04:14:53 -0300 Subject: [PATCH 1888/3440] Add golang-tmdb wrapper (#2943) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 671343ff8f4..624b5c76b97 100644 --- a/README.md +++ b/README.md @@ -1730,6 +1730,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. +* [golang-tmdb](https://github.com/cyruzin/golang-tmdb) - Golang wrapper for The Movie Database API v3. * [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. * [gomalshare](https://github.com/MonaxGT/gomalshare) - Go library MalShare API [malshare.com](http://www.malshare.com/) * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - Go MusicBrainz WS2 client library. From c777bda6f03e2300c9638fde4d00216dd28b3aca Mon Sep 17 00:00:00 2001 From: Joshua Bezaleel Abednego Date: Sat, 8 Feb 2020 14:18:34 +0700 Subject: [PATCH 1889/3440] Add GoBandung in Meetups (#2946) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 624b5c76b97..1769190834d 100644 --- a/README.md +++ b/README.md @@ -2348,6 +2348,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go London User Group](https://www.meetup.com/Go-London-User-Group/) * [Go Toronto](https://www.meetup.com/go-toronto/) * [Go User Group Atlanta](https://www.meetup.com/Go-Users-Group-Atlanta/) +* [GoBandung](https://www.meetup.com/GoBandung/) * [GoBridge, San Francisco, CA](https://www.meetup.com/gobridge/) * [GoCracow - Krakow, Poland](https://www.meetup.com/GoCracow/) * [GoJakarta](https://www.meetup.com/GoJakarta/) From bb617b33c31523e3c2434f0fe9d157c0709ee337 Mon Sep 17 00:00:00 2001 From: Fenny <08jadez@gmail.com> Date: Tue, 11 Feb 2020 07:04:07 -0500 Subject: [PATCH 1890/3440] Add Fiber to Web Frameworks (#2940) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1769190834d..db0240d54be 100644 --- a/README.md +++ b/README.md @@ -389,7 +389,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Databases implemented in Go.* * [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. -* [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go. +* [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go. * [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. * [Bitcask](https://github.com/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). @@ -1965,6 +1965,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! * [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. +* [Fiber](https://github.com/gofiber/fiber) - An Express.js inspired web framework build on Fasthttp. * [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. * [Flamingo](https://github.com/i-love-flamingo/flamingo) - Framework for pluggable web projects. Including a concept for modules and offering features for DI, Configareas, i18n, template engines, graphql, observability, security, events, routing & reverse routing etc. * [Flamingo Commerce](https://github.com/i-love-flamingo/flamingo-commerce) - Providing e-commerce features using clean architecture like DDD and ports and adapters, that you can use to build flexible e-commerce applications. From 5ac25bff4d88bf6c5c0b0ceaa9dcb567505c9fef Mon Sep 17 00:00:00 2001 From: James Ranson Date: Tue, 11 Feb 2020 16:26:04 -0700 Subject: [PATCH 1891/3440] add trickster to awesome-go:performance (#2952) * add trickster to awesome-go:performance * relocate trickster to Server Applications --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index db0240d54be..344698c4626 100644 --- a/README.md +++ b/README.md @@ -1515,6 +1515,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [SFTPGo](https://github.com/drakkan/sftpgo) - Full featured and highly configurable SFTP server software. +* [Trickster](https://github.com/Comcast/trickster) - HTTP reverse proxy cache and time series accelerator. * [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. From 978e8ff1f860e046670a88f0ae52418575d9ff6c Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Fri, 14 Feb 2020 08:50:34 -0500 Subject: [PATCH 1892/3440] add govalid (#2949) * add govalid * update description of govalid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 344698c4626..2ca76501337 100644 --- a/README.md +++ b/README.md @@ -1920,6 +1920,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for validation.* * [checkdigit](https://github.com/osamingo/checkdigit) - Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators (ISBN, EAN, JAN, UPC, etc.). +* [govalid](https://github.com/twharmon/govalid) - Fast, tag-based validation for structs. * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. * [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. * [jio](https://github.com/faceair/jio) - jio is a json schema validator similar to [joi](https://github.com/hapijs/joi). From 7b5db8d72f6ddd80ec84f91fcb439f339f638c39 Mon Sep 17 00:00:00 2001 From: Nomadic Date: Sat, 15 Feb 2020 06:16:55 +0200 Subject: [PATCH 1893/3440] twitter-scraper (#2959) https://github.com/n0madic/twitter-scraper https://godoc.org/github.com/n0madic/twitter-scraper https://gocover.io/github.com/n0madic/twitter-scraper [![Go Report Card](https://goreportcard.com/badge/github.com/n0madic/twitter-scraper)](https://goreportcard.com/report/github.com/n0madic/twitter-scraper) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2ca76501337..c0f691ec80c 100644 --- a/README.md +++ b/README.md @@ -1767,6 +1767,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Trello](https://github.com/adlio/trello) - Go wrapper for the Trello API. * [TripAdvisor](https://github.com/mrbenosborne/tripadvisor-golang) - Go wrapper for the TripAdvisor API. * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. +* [twitter-scraper](https://github.com/n0madic/twitter-scraper) - Scrape the Twitter Frontend API without authentication and limits. * [uptimerobot](https://github.com/bitfield/uptimerobot) - Go wrapper and command-line client for the Uptime Robot v2 API. * [vl-go](https://github.com/verifid/vl-go) - Go client library around the VerifID identity verification layer API. * [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. From 6b184031bb1874e679bd43c7830bf111eb6aca55 Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Sat, 15 Feb 2020 07:17:26 +0300 Subject: [PATCH 1894/3440] Add mbtileserver (#2957) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c0f691ec80c..11df8ed6563 100644 --- a/README.md +++ b/README.md @@ -793,6 +793,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. * [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. * [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver. +* [mbtileserver](https://github.com/consbio/mbtileserver) - A simple Go-based server for map tiles stored in mbtiles format. * [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. * [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. * [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. From fe3c976b43517ed34daf566a48a096c6f1e8b478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Paix=C3=A3o?= Date: Sat, 15 Feb 2020 04:47:56 -0300 Subject: [PATCH 1895/3440] Added gody package (#2950) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 11df8ed6563..dab3f41a34e 100644 --- a/README.md +++ b/README.md @@ -1922,6 +1922,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for validation.* * [checkdigit](https://github.com/osamingo/checkdigit) - Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators (ISBN, EAN, JAN, UPC, etc.). +* [gody](https://github.com/guiferpa/gody) - :balloon: A lightweight struct validator for Go. * [govalid](https://github.com/twharmon/govalid) - Fast, tag-based validation for structs. * [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. * [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. From fddd6b2a7775b1ddfaa5c2c1abf8091bf0266a68 Mon Sep 17 00:00:00 2001 From: Eric Duncan Date: Sun, 16 Feb 2020 00:48:17 -0500 Subject: [PATCH 1896/3440] Add Podcast, iTunes and RSS 2.0 Podcast Generator in Golang (#2960) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dab3f41a34e..6e55d7d53c4 100644 --- a/README.md +++ b/README.md @@ -1674,6 +1674,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. * [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separeted Value)](http://ltsv.org/) reader for Go. * [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. + * [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang * [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. * [sh](https://github.com/mvdan/sh) - Shell parser and formatter. * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. From 5dd758a568113eb50dbf1cd786cd208d0537ddac Mon Sep 17 00:00:00 2001 From: Horst Rutter Date: Wed, 19 Feb 2020 14:14:29 +0100 Subject: [PATCH 1897/3440] Update repo url for pdfcpu (#2962) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e55d7d53c4..cd77a97f32f 100644 --- a/README.md +++ b/README.md @@ -698,7 +698,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. * [parquet](https://github.com/parsyl/parquet) - Read and write [parquet](https://parquet.apache.org) files. -* [pdfcpu](https://github.com/hhrutter/pdfcpu) - PDF processor. +* [pdfcpu](https://github.com/pdfcpu/pdfcpu) - PDF processor. * [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. * [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. * [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. From 2e4b4253598d6a72c45a930df435a47fee819d4c Mon Sep 17 00:00:00 2001 From: Nathan Davies Date: Wed, 19 Feb 2020 13:15:00 +0000 Subject: [PATCH 1898/3440] Add golang north east meetup (#2966) A simple change to the readme to add the local meetup I help run --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd77a97f32f..2c1677ae746 100644 --- a/README.md +++ b/README.md @@ -2382,6 +2382,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Melbourne](https://www.meetup.com/golang-mel/) * [Golang Mountain View](https://www.meetup.com/Golang-Mountain-View/) * [Golang New York](https://www.meetup.com/nycgolang/) +* [Golang North East](https://www.meetup.com/en-AU/Golang-North-East/) * [Golang Paris](https://www.meetup.com/Golang-Paris/) * [Golang Pune](https://www.meetup.com/Golang-Pune/) * [Golang Singapore](https://www.meetup.com/golangsg/) From bd907258e8f61308342b36a94e4487fe375e94f2 Mon Sep 17 00:00:00 2001 From: Havrileck Alexandre Date: Wed, 19 Feb 2020 14:15:20 +0100 Subject: [PATCH 1899/3440] Add s3-proxy project (#2963) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c1677ae746..cb5d10542f4 100644 --- a/README.md +++ b/README.md @@ -2207,6 +2207,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Pewpew](https://github.com/bengadbois/pewpew) - Flexible HTTP command line stress tester. * [Pomerium](https://github.com/pomerium/pomerium) - Pomerium is an identity-aware access proxy. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. +* [s3-proxy](https://github.com/oxyno-zeta/s3-proxy) - S3 Proxy with GET, PUT and DELETE methods and authentication (OpenID Connect and Basic Auth). * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). * [script](https://github.com/bitfield/script) - Making it easy to write shell-like scripts in Go for DevOps and system administration tasks. From 36710902c90bb11b49ed3bac8e01abc4d36b5c74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85ke=20M=2E=20Persson?= Date: Wed, 19 Feb 2020 14:15:43 +0100 Subject: [PATCH 1900/3440] add mapslice-json package to json section (#2967) * add mapslice-json package to json section * fix alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cb5d10542f4..49770571cbf 100644 --- a/README.md +++ b/README.md @@ -974,6 +974,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. +* [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. ## Logging From e18d38c80574b18ca54e6a89cb0e8a5df7c7d58c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Angel=20=E2=98=95?= <53369766+an63@users.noreply.github.com> Date: Fri, 21 Feb 2020 11:04:01 +0800 Subject: [PATCH 1901/3440] Add gut/yos in Files section (#2964) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 49770571cbf..93c68217efb 100644 --- a/README.md +++ b/README.md @@ -695,6 +695,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. * [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. +* [gut/yos](https://github.com/1set/gut) - Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. * [parquet](https://github.com/parsyl/parquet) - Read and write [parquet](https://parquet.apache.org) files. From 65bf38f6a7971c024efbd008c35ae39b60e1cfe1 Mon Sep 17 00:00:00 2001 From: SystemGlitch Date: Fri, 21 Feb 2020 04:04:20 +0100 Subject: [PATCH 1902/3440] Add Goyave web framework (#2968) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 93c68217efb..7de5f212cda 100644 --- a/README.md +++ b/README.md @@ -1989,6 +1989,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. +* [Goyave](https://github.com/System-Glitch/goyave) - Feature-complete web framework aimed at clean code and fast development, with powerful built-in functionalities. * [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. * [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. From af3cf8493e505cd83af3c3fcd51af729c7e6706f Mon Sep 17 00:00:00 2001 From: Yuli Date: Sun, 23 Feb 2020 08:56:43 +0200 Subject: [PATCH 1903/3440] Add Paranoidguy Databunker project (#2890) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7de5f212cda..daa160f70d6 100644 --- a/README.md +++ b/README.md @@ -401,6 +401,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Coffer](https://github.com/claygod/coffer) - Simple ACID key-value database that supports transactions. * [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. * [CovenantSQL](https://github.com/CovenantSQL/CovenantSQL) - CovenantSQL is a SQL database on blockchain. +* [Databunker](https://github.com/paranoidguy/databunker) - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. * [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. * [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. From bef0c444835408a340eaf91ced164f89dbf33583 Mon Sep 17 00:00:00 2001 From: Alexander Gehres Date: Sun, 23 Feb 2020 07:57:02 +0100 Subject: [PATCH 1904/3440] Update README.md (#2956) add httpretry to awesome go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index daa160f70d6..1649a022f27 100644 --- a/README.md +++ b/README.md @@ -1321,6 +1321,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. * [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. * [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. +* [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. From af44bf58187584b60b29203f1677ae12fb4a91a3 Mon Sep 17 00:00:00 2001 From: Javier Peletier Date: Fri, 28 Feb 2020 17:53:51 +0100 Subject: [PATCH 1905/3440] Added elastic (#2973) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1649a022f27..7052e7781b4 100644 --- a/README.md +++ b/README.md @@ -1488,6 +1488,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [cbor](https://github.com/fxamacker/cbor) - Small, safe, and easy CBOR encoding and decoding library. * [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. * [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. +* [elastic](https://github.com/epiclabs-io/elastic) - Convert slices, maps or any other unknown value across different types at run-time, no matter what. * [fixedwidth](https://github.com/huydang284/fixedwidth) - Fixed-width text formatting (UTF-8 supported). * [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. * [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for go. From 71555da7257fa600f70990a42b714492a0437d2c Mon Sep 17 00:00:00 2001 From: Island 5 <58663527+is5@users.noreply.github.com> Date: Sat, 29 Feb 2020 00:55:07 +0800 Subject: [PATCH 1906/3440] Add is5/r in utilities section (#2971) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7052e7781b4..0270717a9a7 100644 --- a/README.md +++ b/README.md @@ -1876,6 +1876,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. +* [r](https://github.com/is5/r) - Python-like `range()` experience for Go. * [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. From 729348b0cc23e77c17ad5a28a42f22e0947b7d89 Mon Sep 17 00:00:00 2001 From: Yad Smood Date: Sat, 29 Feb 2020 01:55:40 +0900 Subject: [PATCH 1907/3440] Add rod (#2969) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0270717a9a7..7d52a27ec09 100644 --- a/README.md +++ b/README.md @@ -1631,6 +1631,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. + * [rod](https://github.com/ysmood/rod) - A chrome devtools controller that is easy and safe to use. * [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. * Fail injection From d577b291b2431ed2b9cd949156c95deec86dcfed Mon Sep 17 00:00:00 2001 From: Avinash Utekar Date: Sat, 14 Mar 2020 07:54:39 +0530 Subject: [PATCH 1908/3440] added github.com/utekaravinash/gopaapi5 repo (#2996) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7d52a27ec09..3f67b9148f3 100644 --- a/README.md +++ b/README.md @@ -1747,6 +1747,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [google-analytics](https://github.com/chonthu/go-google-analytics) - Simple wrapper for easy google analytics reporting. * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. * [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). +* [gopaapi5](https://github.com/utekaravinash/gopaapi5) - Go Client Library for [Amazon Product Advertising API 5.0](https://webservices.amazon.com/paapi5/documentation/). * [gosip](https://github.com/koltyakov/gosip) - Go client library SharePoint API. * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. * [hipchat](https://github.com/andybons/hipchat) - This project implements a golang client library for the Hipchat API. From 0487857a6a85b95432a307b7ee7e69036e342b57 Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Sat, 14 Mar 2020 11:57:09 +0800 Subject: [PATCH 1909/3440] Replace godoc.org with pkg.go.dev in contributing guideline --- .github/PULL_REQUEST_TEMPLATE.md | 6 +++--- CONTRIBUTING.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index fd8ba8bdaf9..474c2e075a2 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,9 +3,9 @@ Please check if what you want to add to `awesome-go` list meets [quality standar **Please provide package links to:** - github.com repo: -- godoc.org: +- pkg.go.dev: - goreportcard.com: -- coverage service link ([gocover](http://gocover.io/), [coveralls](https://coveralls.io/) etc.) +- coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.) Very good coverage @@ -16,7 +16,7 @@ Very good coverage - [ ] 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 pkg.go.dev 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). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 96aecf580fa..83ab6c540e3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -31,7 +31,7 @@ To be on the list, project repositories should adhere to these quality standards - Regular, recent commits - Or, for finished projects, issues and pull requests are responded to - Stable or progressing toward stable -- Thoroughly documented (README, godoc comments, etc.) in english language, so everyone is able to understand the project's intention and how it works +- Thoroughly documented (README, pkg.go.dev doc comments, etc.) in english language, so everyone is able to understand the project's intention and how it works - Tests, where practical. If the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. **Notice**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results. ## Congrats, your project got accepted - what now? From 9a888f02c2ab78dedc2f87cf714568b644509396 Mon Sep 17 00:00:00 2001 From: pj Date: Sat, 14 Mar 2020 18:34:40 +1100 Subject: [PATCH 1910/3440] - add github.com/pjebs/optimus-go (#2920) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f67b9148f3..7ae57183b58 100644 --- a/README.md +++ b/README.md @@ -1471,6 +1471,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. +* [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. * [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. From 0b301f8bd027d944e5d68c674b267376c54c7b1c Mon Sep 17 00:00:00 2001 From: Martin Fillafer Date: Sat, 14 Mar 2020 09:35:06 +0100 Subject: [PATCH 1911/3440] add go-mpd (#2975) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ae57183b58..172d866258e 100644 --- a/README.md +++ b/README.md @@ -1962,6 +1962,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). * [go-astits](https://github.com/asticode/go-astits) - Parse and demux MPEG Transport Streams (.ts) natively in GO. * [go-m3u8](https://github.com/quangngotan95/go-m3u8) - Parser and generator library for Apple m3u8 playlists. +* [go-mpd](https://github.com/unki2aut/go-mpd) - Parser and generator library for MPEG-DASH manifest files. * [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. From 22d70bda0d25e60550eacd85dc88bff6404833f9 Mon Sep 17 00:00:00 2001 From: Ken Hibino Date: Sat, 14 Mar 2020 19:52:01 -0700 Subject: [PATCH 1912/3440] Add Asynq package. (#3004) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 172d866258e..a5affbc550b 100644 --- a/README.md +++ b/README.md @@ -1073,6 +1073,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ami](https://github.com/kak-tus/ami) - Go client to reliable queues based on Redis Cluster Streams. * [APNs2](https://github.com/sideshow/apns2) - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. +* [Asynq](https://github.com/hibiken/asynq) - A simple, reliable, and efficient distributed task queue for Go built on top of Redis. * [Beaver](https://github.com/Clivern/Beaver) - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. * [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. * [Bus](https://github.com/mustafaturan/bus) - Minimalist message bus implementation for internal communication. From f8d5f02279892c69aba3feaf5e5c2721a420718e Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Sun, 15 Mar 2020 05:01:49 +0200 Subject: [PATCH 1913/3440] Add posener/compare (#3013) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a5affbc550b..faae6ffad46 100644 --- a/README.md +++ b/README.md @@ -1801,6 +1801,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. * [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. +* [compare](https://github.com/posener/compare) - Enables more readable and easier comparison tasks. * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. * [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. * [ctop](https://github.com/bcicen/ctop) - [Top-like](http://ctop.sh) interface (e.g. htop) for container metrics. From 9b2fe65970da8cd507929559660a3ddd2433dbf7 Mon Sep 17 00:00:00 2001 From: Nomadic Date: Mon, 16 Mar 2020 17:57:55 +0200 Subject: [PATCH 1914/3440] google-play-scraper (#2955) * A bit of my API scrapers * Remove twitter-scraper --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index faae6ffad46..3f3992c204b 100644 --- a/README.md +++ b/README.md @@ -1749,6 +1749,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [google-analytics](https://github.com/chonthu/go-google-analytics) - Simple wrapper for easy google analytics reporting. * [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. * [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). +* [google-play-scraper](https://github.com/n0madic/google-play-scraper) - Get data from Google Play Store. * [gopaapi5](https://github.com/utekaravinash/gopaapi5) - Go Client Library for [Amazon Product Advertising API 5.0](https://webservices.amazon.com/paapi5/documentation/). * [gosip](https://github.com/koltyakov/gosip) - Go client library SharePoint API. * [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. From 45a715709083e9b1a85a7f29d57d37b041e0131e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serhat=20=C5=9Eevki=20Din=C3=A7er?= Date: Tue, 17 Mar 2020 03:14:03 +0300 Subject: [PATCH 1915/3440] add jfcg/sorty (#2906) * add jfcg/sorty * put sorty under Utilities --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f3992c204b..cf6db87df89 100644 --- a/README.md +++ b/README.md @@ -1903,6 +1903,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [slice](https://github.com/psampaz/slice) - Type-safe functions for common Go slice operations. * [sliceconv](https://github.com/Henry-Sarabia/sliceconv) - Slice conversion between primitive types. * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. +* [sorty](https://github.com/jfcg/sorty) - Fast Concurrent / Parallel Sorting. * [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. From ee7e19be674ebc67849f21e967acc1926ba19f10 Mon Sep 17 00:00:00 2001 From: Timofey Koolin Date: Tue, 17 Mar 2020 03:16:19 +0300 Subject: [PATCH 1916/3440] Add lets proxy2 (#2951) * Add lets-proxy2 * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cf6db87df89..3424081da51 100644 --- a/README.md +++ b/README.md @@ -1516,6 +1516,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. * [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. +* [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. From 6029dd7dc0fe3ecc2dc46a7bb08e849c428af543 Mon Sep 17 00:00:00 2001 From: Dmitrii Okunev Date: Tue, 17 Mar 2020 00:17:01 +0000 Subject: [PATCH 1917/3440] Add https://github.com/xaionaro-go/secureio (#2993) Co-authored-by: Dmitry Yu Okunev --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3424081da51..549591dbf93 100644 --- a/README.md +++ b/README.md @@ -1475,6 +1475,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. * [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. +* [secureio](https://github.com/xaionaro-go/secureio) - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519. * [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. * [sslmgr](https://github.com/adrianosela/sslmgr) - SSL certificates made easy with a high level wrapper around acme/autocert. From 263999a13a9e196ab70a468f2fa107916fd69584 Mon Sep 17 00:00:00 2001 From: Tanel Puhu Date: Tue, 17 Mar 2020 02:17:20 +0200 Subject: [PATCH 1918/3440] added Golang Estonia (#2999) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 549591dbf93..e238ffef2d7 100644 --- a/README.md +++ b/README.md @@ -2389,6 +2389,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Curitiba - Brazil](https://www.meetup.com/GolangCWB/) * [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) * [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) +* [Golang Estonia](https://www.meetup.com/Golang-Estonia/) * [Golang Gurgaon, India](https://www.meetup.com/Gurgaon-Go-Meetup/) * [Golang Hamburg - Germany](https://www.meetup.com/Go-User-Group-Hamburg/) * [Golang Israel](https://www.meetup.com/Go-Israel/) From 1daa59b77184b9cbbfba1478684f7f134f56646c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Jir=C3=A9nius?= Date: Tue, 17 Mar 2020 01:17:45 +0100 Subject: [PATCH 1919/3440] Add go-res to Messaging section (#3000) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e238ffef2d7..ed031887ad7 100644 --- a/README.md +++ b/README.md @@ -1088,6 +1088,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io). * [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-res](https://github.com/jirenius/go-res) - Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate. * [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. From bafb7e837e1856a6e95a2a42b4ee5eeae32738f9 Mon Sep 17 00:00:00 2001 From: Maxim Bovtunov Date: Tue, 17 Mar 2020 03:18:05 +0300 Subject: [PATCH 1920/3440] Replace archived defval/inject to goava/di (#3001) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ed031887ad7..2c447a20179 100644 --- a/README.md +++ b/README.md @@ -1138,11 +1138,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. * [container](https://github.com/golobby/container) - A powerful IoC Container with fluent and easy-to-use interface. +* [di](https://github.com/goava/di) - A dependency injection container for go programming language. * [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. * [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. -* [inject](https://github.com/defval/inject) - A reflection based dependency injection container with simple interface. * [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. From 84de4d3280400a10fad3728c8d598980a6e39fe5 Mon Sep 17 00:00:00 2001 From: Eric Wohltman Date: Mon, 16 Mar 2020 20:18:41 -0400 Subject: [PATCH 1921/3440] Add https://github.com/ewohltman/ephemeral-roles (#3002) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c447a20179..19618881b9a 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building and working with bots.* +* [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. * [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. From b9404cda4a90bea1702bed59c97e1c16cd4c8e48 Mon Sep 17 00:00:00 2001 From: Bogdan Daragan <19273017+BoRuDar@users.noreply.github.com> Date: Tue, 17 Mar 2020 01:19:04 +0100 Subject: [PATCH 1922/3440] Configuration library. (#3007) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 19618881b9a..b1c01c96b35 100644 --- a/README.md +++ b/README.md @@ -272,6 +272,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [config](https://github.com/golobby/config) - A lightweight yet powerful config package for Go projects. * [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. +* [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. * [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. * [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. * [conflate](https://github.com/the4thamigo-uk/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. From 1b94c1d2d9e38eb59b411a4b3255700f4d9edcda Mon Sep 17 00:00:00 2001 From: Furkan Bozdag Date: Fri, 20 Mar 2020 18:39:54 +0300 Subject: [PATCH 1923/3440] Add go-http-client package (#3006) * Update README.md * Update README.md * Edit row line * Change the line --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b1c01c96b35..8dcb4cd4a6f 100644 --- a/README.md +++ b/README.md @@ -1323,6 +1323,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for making HTTP requests.* * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. +* [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. * [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. * [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. * [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. From 4f4b401240663e383215ec15251997b4d7f5c458 Mon Sep 17 00:00:00 2001 From: Michael Wolber Date: Mon, 23 Mar 2020 10:18:14 +0100 Subject: [PATCH 1924/3440] Added Mule (https://github.com/wlbr/mule) (#2926) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8dcb4cd4a6f..df708163295 100644 --- a/README.md +++ b/README.md @@ -1418,6 +1418,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [mule](https://github.com/wlbr/mule) - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focussed on simplicity. * [packr](https://github.com/gobuffalo/packr) - The simple and easy way to embed static files into Go binaries. * [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. From 488b2a71e0fd4f8a33a69452666413f69548c9c6 Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Mon, 23 Mar 2020 17:18:49 +0800 Subject: [PATCH 1925/3440] Renew the pending days for a PR (#3012) The current amount of pending days for a PR is too long, which will easily produce lots of inactive open PRs on the list. I suggest reducing this amount for a cleaner PR list. Actually 15 days are enough for a PR owner to resolve requested changes and respond. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 83ab6c540e3..05f11159410 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,7 +50,7 @@ You are an awesome project now! Feel encouraged to tell others about it by addin To make sure every PR is checked, we have [team maintainers](MAINTAINERS). Every PR MUST be reviewed by at least one maintainer before it can get merged. The maintainers will review your PR and notify you and tag it in case any -information is still missing. They will wait 30 days for your interaction, after +information is still missing. They will wait 15 days for your interaction, after that the PR will be closed. From 54d455291359320ccfe610ddecdcab3ab4a9a293 Mon Sep 17 00:00:00 2001 From: xuri Date: Mon, 23 Mar 2020 17:19:52 +0800 Subject: [PATCH 1926/3440] Add xgen (#3015) --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index df708163295..62256f58b3f 100644 --- a/README.md +++ b/README.md @@ -1496,7 +1496,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [cbor](https://github.com/fxamacker/cbor) - Small, safe, and easy CBOR encoding and decoding library. * [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. * [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. -* [elastic](https://github.com/epiclabs-io/elastic) - Convert slices, maps or any other unknown value across different types at run-time, no matter what. +* [elastic](https://github.com/epiclabs-io/elastic) - Convert slices, maps or any other unknown value across different types at run-time, no matter what. * [fixedwidth](https://github.com/huydang284/fixedwidth) - Fixed-width text formatting (UTF-8 supported). * [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. * [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for go. @@ -1522,7 +1522,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. * [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. -* [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. +* [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. @@ -2161,6 +2161,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [hasgo](https://github.com/DylanMeeus/hasgo) - Generate Haskell inspired functions for your slices. * [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. * [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly. +* [xgen](https://github.com/xuri/xgen) - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator. ## Go Tools From 647d011467aed74fd3b1b5a5ae46fd5a95ac406b Mon Sep 17 00:00:00 2001 From: Tim Heckman Date: Mon, 23 Mar 2020 02:25:00 -0700 Subject: [PATCH 1927/3440] Add yacspin (#3017) Yet Another CLi Spinner --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 62256f58b3f..5eced6e5d0d 100644 --- a/README.md +++ b/README.md @@ -263,6 +263,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. * [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. * [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data. +* [yacspin](https://github.com/theckman/yacspin) - Yet Another CLi Spinner package, for working with terminal spinners. ## Configuration From 4387c6724cabf32321dfa0839e577ae996f9a2ad Mon Sep 17 00:00:00 2001 From: Tommy F <46322567+TomFern@users.noreply.github.com> Date: Tue, 24 Mar 2020 06:03:25 -0300 Subject: [PATCH 1928/3440] Add Gorilla Mux tutorial (#3019) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5eced6e5d0d..bbcabe4fdc6 100644 --- a/README.md +++ b/README.md @@ -2480,6 +2480,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [A Guide to Golang E-Commerce](https://snipcart.com/blog/golang-ecommerce-ponzu-cms-demo?utm_term=golang-ecommerce-ponzu-cms-demo) - Building a Golang site for e-commerce (demo included). * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. * [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. +* [Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL](https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql) - We’ll write an API with the help of the powerful Gorilla Mux. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. * [Caching Slow Database Queries](https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9) - How to cache slow database queries. * [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. From 184f15d173f03b9da2bb8b823cd9c86ea5f61da3 Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 24 Mar 2020 10:03:51 +0100 Subject: [PATCH 1929/3440] Add go-localstack (#3016) * Add go-localstack * Correct order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bbcabe4fdc6..93bc51e35d1 100644 --- a/README.md +++ b/README.md @@ -1621,6 +1621,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * Mock * [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects. + * [go-localstack](https://github.com/elgohr/go-localstack) - Tool for using localstack in AWS testing. * [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. From 0640c332c1c43684576804601f715305d973c918 Mon Sep 17 00:00:00 2001 From: Tobias Salzmann <796084+Eun@users.noreply.github.com> Date: Tue, 24 Mar 2020 10:04:06 +0100 Subject: [PATCH 1930/3440] add github.com/Eun/go-convert (#2947) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add github.com/Eun/go-convert * duh 🤦‍♂️ * moved to Utilities --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 93bc51e35d1..c74f9a05535 100644 --- a/README.md +++ b/README.md @@ -1834,6 +1834,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-bsdiff](https://github.com/gabstv/go-bsdiff) - Pure Go bsdiff and bspatch libraries and CLI tools. +* [go-convert](https://github.com/Eun/go-convert) - Package go-convert enbles you to convert a value into another type. * [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-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. From 365f98fba61e87dc29309251609b0f807e947355 Mon Sep 17 00:00:00 2001 From: cayter Date: Wed, 25 Mar 2020 12:20:35 +0800 Subject: [PATCH 1931/3440] Add `appy` web framework (#3022) * Add `appy` web framework * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c74f9a05535..0f79cdf66d3 100644 --- a/README.md +++ b/README.md @@ -1991,6 +1991,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go. * [Aero](https://github.com/aerogo/aero) - High-performance web framework for Go, reaches top scores in Lighthouse. * [Air](https://github.com/aofei/air) - An ideally refined web framework for Go. +* [appy](https://github.com/appist/appy) - An opinionated productive web framework that helps scaling business easier. * [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! From ed3a733c956a955e981e53418e47c092eae3b3d6 Mon Sep 17 00:00:00 2001 From: Anton Medvedev Date: Sat, 28 Mar 2020 12:34:37 +0300 Subject: [PATCH 1932/3440] Update expr description (#3024) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0f79cdf66d3..aa3d4844498 100644 --- a/README.md +++ b/README.md @@ -653,7 +653,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). * [cel-go](https://github.com/google/cel-go) - Fast, portable, non-Turing complete expression evaluation with gradual typing. -* [expr](https://github.com/antonmedv/expr) - an engine that can evaluate expressions. +* [expr](https://github.com/antonmedv/expr) - Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing. * [gentee](https://github.com/gentee/gentee) - Embeddable scripting programming language. * [gisp](https://github.com/jcla1/gisp) - Simple LISP in Go. * [go-duktape](https://github.com/olebedev/go-duktape) - Duktape JavaScript engine bindings for Go. From 19f124de6508d18bedb13576418effacdc7b388e Mon Sep 17 00:00:00 2001 From: Monaco Date: Sat, 28 Mar 2020 17:34:59 +0800 Subject: [PATCH 1933/3440] add module [https://github.com/monaco-io/request] (#3023) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aa3d4844498..180c92ce28e 100644 --- a/README.md +++ b/README.md @@ -1329,6 +1329,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. * [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. +* [request](https://github.com/monaco-io/request) - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. * [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. From 0d3504325ef499494578cda76e241805d7aa920b Mon Sep 17 00:00:00 2001 From: Hugo Lageneste Date: Sat, 28 Mar 2020 15:08:23 +0100 Subject: [PATCH 1934/3440] add olivia-ai/olivia to the bot building section (#3020) * add olivia-ai/olivia to the bot building section * add the final dot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 180c92ce28e..55b8bc7211b 100644 --- a/README.md +++ b/README.md @@ -179,6 +179,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Kelp](https://github.com/stellar/kelp) - official trading and market-making bot for the [Stellar](https://www.stellar.org/) DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies. * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. +* [olivia](https://github.com/olivia-ai/olivia) - A chatbot built with an artificial neural network. * [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. * [slackscot](https://github.com/alexandre-normand/slackscot) - Another framework for building Slack bots. * [tbot](https://github.com/yanzay/tbot) - Telegram bot server with API similar to net/http. From 50efdc60e37e6d2eb9c74eba5412bf4054b3ca9c Mon Sep 17 00:00:00 2001 From: Arthur Kushman Date: Mon, 30 Mar 2020 15:24:17 +0300 Subject: [PATCH 1935/3440] Add Go database query builder library for PostgreSQL (#2994) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 55b8bc7211b..ddab58da959 100644 --- a/README.md +++ b/README.md @@ -473,6 +473,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *SQL query builder, libraries for building and using SQL.* +* [buildsqlx](https://github.com/arthurkushman/buildsqlx) - Go database query builder library for PostgreSQL. * [dbq](https://github.com/rocketlaunchr/dbq) - Zero boilerplate database operations for Go. * [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use them with ease. * [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder. From 4c52e46ba2c68c6fcd6b0a9c72b4ab246d84477f Mon Sep 17 00:00:00 2001 From: seokchan Date: Tue, 31 Mar 2020 12:26:06 +0900 Subject: [PATCH 1936/3440] Add google/uuid (#3008) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddab58da959..193701918ec 100644 --- a/README.md +++ b/README.md @@ -1942,6 +1942,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [uniq](https://gitlab.com/skilstak/code/go/uniq) - No hassle safe, fast unique identifiers with commands. * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. * [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. +* [uuid](https://github.com/google/uuid) - Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. ## Validation From 5e51f42583f97849a3881ac7f970f5a5746e6315 Mon Sep 17 00:00:00 2001 From: Tommy F <46322567+TomFern@users.noreply.github.com> Date: Tue, 31 Mar 2020 00:26:24 -0300 Subject: [PATCH 1937/3440] add tutorial 'How to Deploy a Go Web Application with Docker' (#3027) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 193701918ec..ce903dd8b6f 100644 --- a/README.md +++ b/README.md @@ -2503,6 +2503,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. +* [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. * [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. From 5d6f107b2c29faa4744fd27477b6f86a5287dfbf Mon Sep 17 00:00:00 2001 From: Leonidas Maroulis Date: Tue, 31 Mar 2020 06:26:38 +0300 Subject: [PATCH 1938/3440] Add s2-geojson (#3026) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ce903dd8b6f..1b6fb5d8cf6 100644 --- a/README.md +++ b/README.md @@ -803,6 +803,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mbtileserver](https://github.com/consbio/mbtileserver) - A simple Go-based server for map tiles stored in mbtiles format. * [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. * [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. +* [S2 geojson](https://github.com/pantrif/s2-geojson) - Convert geojson to s2 cells & demonstrating some S2 geometry features on map. * [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. * [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. * [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM). From dafb8b683f4034ef16c6c3bdaaeba2ad2f30054e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCrkan=20Kaymak?= <7164005+gurkankaymak@users.noreply.github.com> Date: Tue, 31 Mar 2020 06:26:53 +0300 Subject: [PATCH 1939/3440] added gurkankaymak/hocon to configuration category (#3025) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1b6fb5d8cf6..e9e5967c146 100644 --- a/README.md +++ b/README.md @@ -294,6 +294,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. * [harvester](https://github.com/beatlabs/harvester) - Harvester, a easy to use static and dynamic configuration package supportig seeding, env vars and Consul integration. * [hjson](https://github.com/hjson/hjson-go) - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. +* [hocon](https://github.com/gurkankaymak/hocon) - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files. * [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file. * [ini](https://github.com/go-ini/ini) - Go package to 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. From a22b8b4d1e3229c05b429e09db64e1cf389ea63a Mon Sep 17 00:00:00 2001 From: Andrey Skurlatov Date: Mon, 6 Apr 2020 20:22:10 +0300 Subject: [PATCH 1940/3440] added argon2-hashing package (#3035) * added argon2-hashing package * Fixed alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9e5967c146..3602d16b1cf 100644 --- a/README.md +++ b/README.md @@ -1470,6 +1470,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [acmetool](https://github.com/hlandau/acme) - ACME (Let's Encrypt) client tool with automatic renewal. * [acra](https://github.com/cossacklabs/acra) - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system. +* [argon2-hashing](https://github.com/andskur/argon2-hashing) - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package. * [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. * [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. From e7f761408182960d74d79cdd5ab433f7902935c5 Mon Sep 17 00:00:00 2001 From: gonutz Date: Tue, 7 Apr 2020 17:13:03 +0200 Subject: [PATCH 1941/3440] Add prototype game library (#2939) Co-authored-by: lars --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3602d16b1cf..c1696ff3ff3 100644 --- a/README.md +++ b/README.md @@ -773,6 +773,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Oak](https://github.com/oakmound/oak) - Pure Go game engine. * [Pitaya](https://github.com/topfreegames/pitaya) - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. * [Pixel](https://github.com/faiface/pixel) - Hand-crafted 2D game library in Go. +* [prototype](https://github.com/gonutz/prototype) - Cross-platform (Windows/Linux/Mac) library for creating desktop games using a minimal API. * [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. From cfc2853697b8160cf8e7beb992dba94bf1de9db1 Mon Sep 17 00:00:00 2001 From: Gram Date: Wed, 8 Apr 2020 11:35:42 +0200 Subject: [PATCH 1942/3440] Add WebAssembly category (#3030) --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index c1696ff3ff3..285dc05f75b 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Actual middlewares](#actual-middlewares) - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) - [Routers](#routers) + - [WebAssembly](#webassembly) - [Windows](#windows) - [XML](#xml) @@ -2094,6 +2095,15 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [xmux](https://github.com/rs/xmux) - High performance muxer based on `httprouter` with `net/context` support. * [xujiajun/gorouter](https://github.com/xujiajun/gorouter) - A simple and fast HTTP router for Go. +## WebAssembly + +* [dom](https://github.com/dennwc/dom) - DOM library. +* [go-canvas](https://github.com/markfarnan/go-canvas) - Library to use HTML5 Canvas, with all drawing within go code. +* [tinygo](https://github.com/tinygo-org/tinygo) - Go compiler for small places. Microcontrollers, WebAssembly, and command-line tools. Based on LLVM. +* [vert](https://github.com/norunners/vert) - Interop between Go and JS values. +* [wasmbrowsertest](https://github.com/agnivade/wasmbrowsertest) - Run Go WASM tests in your browser. +* [webapi](https://github.com/gowebapi/webapi) - Bindings for DOM and HTML generated from WebIDL. + ## Windows * [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9. From 7b891d478e98602b1be3757a53ae054182090f39 Mon Sep 17 00:00:00 2001 From: Alejandro Durante Date: Wed, 15 Apr 2020 16:26:14 -0300 Subject: [PATCH 1943/3440] Add pond library (#3033) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 285dc05f75b..124c0c2f4b2 100644 --- a/README.md +++ b/README.md @@ -847,6 +847,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [kyoo](https://github.com/dirkaholic/kyoo) - Provides an unlimited job queue and concurrent worker pools. * [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. * [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. +* [pond](https://github.com/alitto/pond) - Minimalistic and High-performance goroutine worker pool written in Go. * [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. * [queue](https://github.com/AnikHasibul/queue) - Gives you a `sync.WaitGroup` like queue group accessibility. Helps you to throttle and limit goroutines, wait for the end of the all goroutines and much more. * [routine](https://github.com/x-mod/routine) - go routine control with context, support: Main, Go, Pool and some useful Executors. From 05777cc305d09274b8eabfb63832f4261566ca53 Mon Sep 17 00:00:00 2001 From: pj Date: Thu, 16 Apr 2020 05:38:37 +1000 Subject: [PATCH 1944/3440] - add igo (github.com/rocketlaunchr/igo) (#3036) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 124c0c2f4b2..d47142186bf 100644 --- a/README.md +++ b/README.md @@ -2200,6 +2200,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. * [gomodrun](https://github.com/dustinblackman/gomodrun/) - Go tool that executes and caches binaries included in go.mod files. * [gothanks](https://github.com/psampaz/gothanks) - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. +* [igo](https://github.com/rocketlaunchr/igo) - An igo to go transpiler (new language features for Go language!) * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. From 2caf418f146e9fb965bffd9b7e4e22c6f236bdd0 Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Wed, 15 Apr 2020 15:40:35 -0400 Subject: [PATCH 1945/3440] Add gosql (#3037) * Add gosql * Refine description * Fix alphabetical order Co-authored-by: Travis Harmon --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d47142186bf..2bbf065b7cf 100644 --- a/README.md +++ b/README.md @@ -481,6 +481,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder. * [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. * [goqu](https://github.com/doug-martin/goqu) - Idiomatic SQL builder and query library. +* [gosql](https://github.com/twharmon/gosql) - SQL Query builder with better null values support. * [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. * [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. * [mpath](https://github.com/spacetab-io/mpath-go) - MPTT (Modified Preorder Tree Traversal) package for SQL records - materialized path realisation. From 0fe2d35953fc17bb8b369ce22816708f2366369a Mon Sep 17 00:00:00 2001 From: arunsworld <42399533+arunsworld@users.noreply.github.com> Date: Thu, 16 Apr 2020 01:12:26 +0530 Subject: [PATCH 1946/3440] Add nursery - structured concurrency library (#3038) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2bbf065b7cf..f0f190d03c4 100644 --- a/README.md +++ b/README.md @@ -846,6 +846,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. * [Hunch](https://github.com/AaronJan/Hunch) - Hunch provides functions like: `All`, `First`, `Retry`, `Waterfall` etc., that makes asynchronous flow control more intuitive. * [kyoo](https://github.com/dirkaholic/kyoo) - Provides an unlimited job queue and concurrent worker pools. +* [nursery](https://github.com/arunsworld/nursery) - Structured concurrency in Go. * [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. * [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. * [pond](https://github.com/alitto/pond) - Minimalistic and High-performance goroutine worker pool written in Go. From 96544987d20243e8d14f334341e0d35500492b2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=2E=20=C4=B0brahim=20G=C3=BCng=C3=B6r?= Date: Wed, 15 Apr 2020 22:49:35 +0300 Subject: [PATCH 1947/3440] Add s5cmd - Blazing fast S3 and local filesystem execution tool (#3039) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0f190d03c4..3bc2acb5587 100644 --- a/README.md +++ b/README.md @@ -2258,6 +2258,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. * [s3-proxy](https://github.com/oxyno-zeta/s3-proxy) - S3 Proxy with GET, PUT and DELETE methods and authentication (OpenID Connect and Basic Auth). * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. +* [s5cmd](https://github.com/peak/s5cmd) - Blazing fast S3 and local filesystem execution tool. * [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). * [script](https://github.com/bitfield/script) - Making it easy to write shell-like scripts in Go for DevOps and system administration tasks. * [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the response code and data between each call for specific server stress based on its previous response. From 598be6bc8d7efad843a9b84a94e8ce73eb9d271b Mon Sep 17 00:00:00 2001 From: DUANCKHAM <1646498+duanckham@users.noreply.github.com> Date: Thu, 16 Apr 2020 03:50:55 +0800 Subject: [PATCH 1948/3440] Add hands (#3040) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3bc2acb5587..b8eb1e756b4 100644 --- a/README.md +++ b/README.md @@ -844,6 +844,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gowp](https://github.com/xxjwxc/gowp) - gowp is concurrency limiting goroutine pool. * [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. +* [hands](https://github.com/duanckham/hands) - A process controller used to control the execution and return strategies of multiple goroutines. * [Hunch](https://github.com/AaronJan/Hunch) - Hunch provides functions like: `All`, `First`, `Retry`, `Waterfall` etc., that makes asynchronous flow control more intuitive. * [kyoo](https://github.com/dirkaholic/kyoo) - Provides an unlimited job queue and concurrent worker pools. * [nursery](https://github.com/arunsworld/nursery) - Structured concurrency in Go. From 11399672e49d69ced66fb2f9ae1fa2b2f4e526ef Mon Sep 17 00:00:00 2001 From: Tupteq Date: Wed, 15 Apr 2020 21:55:33 +0200 Subject: [PATCH 1949/3440] Removed unmaintained (5+ years inactive) gamedev libraries (#3042) --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index b8eb1e756b4..4831d2954c1 100644 --- a/README.md +++ b/README.md @@ -762,10 +762,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Ebiten](https://github.com/hajimehoshi/ebiten) - dead 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. * [g3n](https://github.com/g3n/engine) - Go 3D Game Engine. -* [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-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. From cc6bef41ba7d40429d319b4d686dd045415281c2 Mon Sep 17 00:00:00 2001 From: Sherif Abdel-Naby Date: Wed, 15 Apr 2020 22:00:27 +0200 Subject: [PATCH 1950/3440] Add sherifabdlnaby/configuro (#3043) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4831d2954c1..92e7a070233 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. * [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. * [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. +* [configuro](https://github.com/sherifabdlnaby/configuro) - opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications. * [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. * [conflate](https://github.com/the4thamigo-uk/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. * [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). From f3a54d0e7549e9067b425e78a0d46a87133f538b Mon Sep 17 00:00:00 2001 From: Sahel Jalal Date: Wed, 15 Apr 2020 13:04:15 -0700 Subject: [PATCH 1951/3440] Add nostromo (#3046) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92e7a070233..e208755f595 100644 --- a/README.md +++ b/README.md @@ -1893,6 +1893,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. +* [nostromo](https://github.com/pokanop/nostromo) - CLI for building powerful aliases. * [okrun](https://github.com/xta/okrun) - go run error steamroller. * [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. * [onecache](https://github.com/adelowo/onecache) - Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc). From 19b45fc524db5c7f6b03bc115e9677e6647286fb Mon Sep 17 00:00:00 2001 From: Gustavo Date: Wed, 15 Apr 2020 22:15:57 +0200 Subject: [PATCH 1952/3440] Add hostctl to Utilities (#3050) * Add hostctl to Utilities * Fix alphabetical order for hostctl --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e208755f595..2a7133ce02c 100644 --- a/README.md +++ b/README.md @@ -1870,6 +1870,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. * [gubrak](https://github.com/novalagung/gubrak) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [handy](https://github.com/miguelpragier/handy) - Many utilities and helpers like string handlers/formatters and validators. +* [hostctl](https://github.com/guumaster/hostctl) - A CLI tool to manage /etc/hosts with easy commands. * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. * [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. From 5021daef463a5b9f1d0b0ddbe6b615ad426a7348 Mon Sep 17 00:00:00 2001 From: mehanizm Date: Wed, 15 Apr 2020 23:19:12 +0300 Subject: [PATCH 1953/3440] Add Airtable to Third-party APIs (#3051) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2a7133ce02c..e1ac0c9edcd 100644 --- a/README.md +++ b/README.md @@ -1725,6 +1725,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for accessing third party APIs.* +* [airtable](https://github.com/mehanizm/airtable) - Go client library for the [Airtable API](https://airtable.com/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. From a69171475b7867ba4bcf9997825ede603afb3388 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Apr 2020 11:33:19 -0300 Subject: [PATCH 1954/3440] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index fe768cc78d1..2e37c15466b 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ github: avelino -patreon: avelinosource +patreon: avelinorun From 5996165140c59d8bdfe7c5cdc7266d5c50edf1eb Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 17 Apr 2020 08:18:35 -0300 Subject: [PATCH 1955/3440] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e1ac0c9edcd..41e86085c5a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@ [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) -[![patreon avelino](https://c5.patreon.com/external/logo/become_a_patron_button@2x.png)](https://www.patreon.com/avelinosource) financial support to Awesome Go +[![patreon avelino](https://c5.patreon.com/external/logo/become_a_patron_button@2x.png)](https://www.patreon.com/avelinorun) +Financial support to Awesome Go +**We have no monthly cost**_, but we have employees **hard working** to maintain the Awesome Go, with money raised we can repay the effort of each person involved!_ A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 3e51624019cb303f1d158c03b36d379adb156f7e Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 17 Apr 2020 08:18:52 -0300 Subject: [PATCH 1956/3440] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 41e86085c5a..16b7a8be663 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) [![patreon avelino](https://c5.patreon.com/external/logo/become_a_patron_button@2x.png)](https://www.patreon.com/avelinorun) + Financial support to Awesome Go + **We have no monthly cost**_, but we have employees **hard working** to maintain the Awesome Go, with money raised we can repay the effort of each person involved!_ A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 81659affeaa3cc35d80479eab24e706143b4df39 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 24 Apr 2020 16:03:13 -0400 Subject: [PATCH 1957/3440] add ccbrown/api-fu (#3031) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 16b7a8be663..c11e934eb6b 100644 --- a/README.md +++ b/README.md @@ -1416,6 +1416,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Query Language +* [api-fu](https://github.com/ccbrown/api-fu) - Comprehensive GraphQL implementation. * [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. From 8b20e04ec6ba102b81a46e59752813bc2ac80bf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rk=20S=C3=A1gi-Kaz=C3=A1r?= Date: Fri, 24 Apr 2020 22:04:48 +0200 Subject: [PATCH 1958/3440] Add logur (#3032) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c11e934eb6b..0340916dfd1 100644 --- a/README.md +++ b/README.md @@ -1026,6 +1026,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [logrus](https://github.com/Sirupsen/logrus) - Structured logger for Go. * [logrusiowriter](https://github.com/cabify/logrusiowriter) - `io.Writer` implementation using [logrus](https://github.com/sirupsen/logrus) logger. * [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). +* [logur](https://github.com/logur/logur) - An opinionated logger interface and collection of logging best practices with adapters and integrations for well-known libraries ([logrus](https://github.com/sirupsen/logrus), [go-kit log](https://github.com/go-kit/kit/tree/master/log), [zap](https://github.com/uber-go/zap), [zerolog](https://github.com/rs/zerolog), etc). * [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. * [logxi](https://github.com/mgutz/logxi) - 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. From 6d82650a98aea4e4846e1b81d4a502a587546539 Mon Sep 17 00:00:00 2001 From: Simon Aronsson Date: Fri, 24 Apr 2020 22:06:09 +0200 Subject: [PATCH 1959/3440] add shoutrrr (#3048) also add a `uncategorized` category to make it clearer that it's not a continuation of the `strings` category. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 0340916dfd1..1e8f3b023e0 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Dependency Injection](#dependency-injection) - [Project Layout](#project-layout) - [Strings](#strings) + - [Uncategorized](#uncategorized) - [Natural Language Processing](#natural-language-processing) - [Networking](#networking) - [HTTP Clients](#http-clients) @@ -1179,6 +1180,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [strutil](https://github.com/ozgio/strutil) - String utilities. * [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. +### Uncategorized + *These libraries were placed here because none of the other categories seemed to fit.* * [anagent](https://github.com/mudler/anagent) - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection. @@ -1221,6 +1224,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sandid](https://github.com/aofei/sandid) - Every grain of sand on earth has its own ID. * [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. * [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. +* [shoutrrr](https://github.com/containrrr/shoutrrr) - Notification library providing easy access to various messaging services like slack, mattermost, gotify and smtp among others. * [stateless](https://github.com/qmuntal/stateless) - A fluent library for creating state machines. * [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... * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. From 8ff242b672be6580aded8687dd1762782fb065d0 Mon Sep 17 00:00:00 2001 From: Ishan Mukherjee Date: Fri, 24 Apr 2020 13:09:50 -0700 Subject: [PATCH 1960/3440] Add Pixie to performance (#3049) Hi All, we've launched our community beta this week and would be great to add to share with community. Best, Ishan --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1e8f3b023e0..99bf0edd50c 100644 --- a/README.md +++ b/README.md @@ -1416,6 +1416,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Performance * [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. +* [pixie](https://github.com/pixie-labs/pixie) - No instrumentation tracing for Golang applications via eBPF. * [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. * [tracer](https://github.com/kamilsk/tracer) - Simple, lightweight tracing. From 07bc77e519ec4627f496b4f1914ab33926f0ce43 Mon Sep 17 00:00:00 2001 From: Chris Passas Date: Fri, 24 Apr 2020 16:13:02 -0400 Subject: [PATCH 1961/3440] Add silk and nfdump modules (#3047) * Add silk and nfdump modules * fixed duplicate link * removed line return --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 99bf0edd50c..dd3ab4810f3 100644 --- a/README.md +++ b/README.md @@ -1906,6 +1906,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. +* [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. +* [nfdump](https://github.com/chrispassas/nfdump) - Read nfdump netflow files. * [nostromo](https://github.com/pokanop/nostromo) - CLI for building powerful aliases. * [okrun](https://github.com/xta/okrun) - go run error steamroller. * [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. From 08f7249ee309adcd312328ca46941545bc0dd8df Mon Sep 17 00:00:00 2001 From: Oleksandr Ivanchenko Date: Sat, 9 May 2020 11:59:49 +0200 Subject: [PATCH 1962/3440] Added transliterator (#3053) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dd3ab4810f3..dad612587e0 100644 --- a/README.md +++ b/README.md @@ -1270,6 +1270,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [transliterator](https://github.com/alexsergivan/transliterator) - Provides one-way string transliteration with supporting of language-specific transliteration rules. * [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. From f50ea14cd089cbde4704849530b2dba6feb60e66 Mon Sep 17 00:00:00 2001 From: Roshan Ranabhat Date: Sat, 9 May 2020 15:45:04 +0545 Subject: [PATCH 1963/3440] Add Stringy a string manipulation library (#3059) * Add Stringy a string manipulation library * Blank line added between repo and category. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dad612587e0..67dbf1247dc 100644 --- a/README.md +++ b/README.md @@ -1177,6 +1177,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with strings.* +* [gobeam/Stringy](https://github.com/gobeam/Stringy) - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. * [strutil](https://github.com/ozgio/strutil) - String utilities. * [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. From 4519e3cf8c7ca84a981de871a787bc543cc50293 Mon Sep 17 00:00:00 2001 From: Sarjono Mukti Aji Date: Sat, 9 May 2020 17:00:18 +0700 Subject: [PATCH 1964/3440] add sqldb-logger (#3060) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 67dbf1247dc..f215e7b8eb4 100644 --- a/README.md +++ b/README.md @@ -1037,6 +1037,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. * [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. * [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. +* [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. * [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. From ed4675d448f292deee76918e0508a3ead6002937 Mon Sep 17 00:00:00 2001 From: Link Dupont Date: Sat, 9 May 2020 06:00:32 -0400 Subject: [PATCH 1965/3440] Add go-ini (#3080) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f215e7b8eb4..c83a223020b 100644 --- a/README.md +++ b/README.md @@ -292,6 +292,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [envh](https://github.com/antham/envh) - Helpers to manage environment variables. * [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. * [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. +* [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. * [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). * [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. * [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. From 8b1ac070c402baeb34497e87e495602e8f761601 Mon Sep 17 00:00:00 2001 From: Albert Nigmatzianov Date: Sat, 9 May 2020 12:31:51 +0200 Subject: [PATCH 1966/3440] Change id3v2 description (#3071) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c83a223020b..d16cb544ae6 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 powerful ID3 decoding and encodung library written completely in Go. * [malgo](https://github.com/gen2brain/malgo) - Mini audio library. * [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library. * [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. From fb84a71d34854460458bf35f4be9ff9b3700eafe Mon Sep 17 00:00:00 2001 From: Marco Muratori Date: Sat, 9 May 2020 12:44:48 +0200 Subject: [PATCH 1967/3440] Remove `sprbox` package (which has been archived) in favor of `swap` package which replace it. (#3065) * Remove 'sprbox' in favor of 'swap'. I have archived 'sprbox', it has been entirely revised / simplified in a new project (https://github.com/oblq/swap), it does basically the same things, it's just more intuitive. * Reorder alphabetically. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d16cb544ae6..763760115ff 100644 --- a/README.md +++ b/README.md @@ -312,8 +312,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. * [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. * [onion](http://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. -* [sprbox](https://github.com/oblq/sprbox) - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). * [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. +* [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). * [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). From a2fa68bb161b673953ff7748be0401f86f4aec3a Mon Sep 17 00:00:00 2001 From: Artem Krylysov Date: Sat, 9 May 2020 06:45:02 -0400 Subject: [PATCH 1968/3440] Add pogreb to Database section (#3075) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 763760115ff..69d0b381841 100644 --- a/README.md +++ b/README.md @@ -432,6 +432,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. * [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. * [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. +* [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. * [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. From 8f3299746bcf4dff414ab2c195f8ef3f8d83dd6e Mon Sep 17 00:00:00 2001 From: foolin Date: Sun, 10 May 2020 10:09:02 +0800 Subject: [PATCH 1969/3440] Add [pagser] project to Text Processing (#3056) * Add [pagser] project to Text Processing * Update the pagser description * Update pagser description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 69d0b381841..279422706bd 100644 --- a/README.md +++ b/README.md @@ -1717,6 +1717,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. * [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separeted Value)](http://ltsv.org/) reader for Go. * [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. + * [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. * [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang * [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. * [sh](https://github.com/mvdan/sh) - Shell parser and formatter. From 072a18e7e27ac8c0ef2d390e01318d46bd9c786f Mon Sep 17 00:00:00 2001 From: Roshan Ranabhat Date: Sun, 10 May 2020 07:54:21 +0545 Subject: [PATCH 1970/3440] Add paginitaion utility for official MongoDB driver mongodb/mongo-go-driver (#3063) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 279422706bd..2542601ca13 100644 --- a/README.md +++ b/README.md @@ -1909,6 +1909,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. * [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels. +* [mongo-go-pagination](https://github.com/gobeam/mongo-go-pagination) - Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines. * [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. * [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. * [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. From 019114718dbd1b204cfa59ac67f4080a4e11a309 Mon Sep 17 00:00:00 2001 From: Abdelrahman Ahmed Date: Sun, 10 May 2020 04:09:40 +0200 Subject: [PATCH 1971/3440] add gearbox (#3073) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2542601ca13..1fe2554e8fc 100644 --- a/README.md +++ b/README.md @@ -2034,6 +2034,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. * [Flamingo](https://github.com/i-love-flamingo/flamingo) - Framework for pluggable web projects. Including a concept for modules and offering features for DI, Configareas, i18n, template engines, graphql, observability, security, events, routing & reverse routing etc. * [Flamingo Commerce](https://github.com/i-love-flamingo/flamingo-commerce) - Providing e-commerce features using clean architecture like DDD and ports and adapters, that you can use to build flexible e-commerce applications. +* [Gearbox](https://github.com/abahmed/gearbox) - A web framework written in Go with a focus on high performance and memory optimization. * [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. * [Ginrpc](https://github.com/xxjwxc/ginrpc) - Gin parameter automatic binding tool,gin rpc tools. * [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. From 5d87c56c11a48f2d7b7fb5a0f088a1b2f644a200 Mon Sep 17 00:00:00 2001 From: Tai-Li Shih Date: Sun, 10 May 2020 10:09:55 +0800 Subject: [PATCH 1972/3440] request to add go-lock to awesome-go (#3076) * request to awesome-go for go-lock * Fix comment: move go-lock to Utilities --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1fe2554e8fc..e47f574984c 100644 --- a/README.md +++ b/README.md @@ -1867,6 +1867,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-funk](https://github.com/thoas/go-funk) - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...). * [go-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. * [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. +* [go-lock](https://github.com/viney-shih/go-lock) - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation. * [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. * [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. From b6cc49c1678ab0018bfa523bc1e805a3160cd6ad Mon Sep 17 00:00:00 2001 From: xxj <346944475@qq.com> Date: Sun, 10 May 2020 10:10:43 +0800 Subject: [PATCH 1973/3440] gmsec (#3077) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e47f574984c..544bda940ab 100644 --- a/README.md +++ b/README.md @@ -604,6 +604,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package. * [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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. +* [gmsec](https://github.com/gmsec/micro) - A Go distributed systems development framework. * [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service. * [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. * [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. From ab875573a3fb413159b2e7e361ec8ed762947019 Mon Sep 17 00:00:00 2001 From: Jared Davis <1060000+Jared-Prime@users.noreply.github.com> Date: Mon, 11 May 2020 00:03:21 -0500 Subject: [PATCH 1974/3440] Add Meetup link for "Go Remote Meetup" (#3055) * add Meetup link for "Go Remote Meetup" About the meetup: "Welcome Gophers! Go Remote Meetup is a remote-first group for Go developers worldwide. We're part of the Go Developer Network, and we're excited to connect with you all, no matter where you're located." * fix ordering --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 544bda940ab..efbadec160f 100644 --- a/README.md +++ b/README.md @@ -2429,6 +2429,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Canberra Gophers](https://www.meetup.com/Canberra-Gophers/) * [Go Language NYC](https://www.meetup.com/golanguagenewyork/) * [Go London User Group](https://www.meetup.com/Go-London-User-Group/) +* [Go Remote Meetup](https://www.meetup.com/Go-Remote-Meetup/) * [Go Toronto](https://www.meetup.com/go-toronto/) * [Go User Group Atlanta](https://www.meetup.com/Go-Users-Group-Atlanta/) * [GoBandung](https://www.meetup.com/GoBandung/) From 1459d9a8468bd80c9d112a6ee1f4d5130cbf1244 Mon Sep 17 00:00:00 2001 From: Raed Shomali Date: Mon, 11 May 2020 01:04:17 -0400 Subject: [PATCH 1975/3440] Add Gridder (#3057) * Add Gridder * Added alphabetically --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index efbadec160f..7a1fc021639 100644 --- a/README.md +++ b/README.md @@ -926,6 +926,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. * [goimghdr](https://github.com/corona10/goimghdr) - The imghdr module determines the type of image contained in a file for Go. * [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. +* [gridder](https://github.com/shomali11/gridder) - A Grid based 2D Graphics library. * [image2ascii](https://github.com/qeesung/image2ascii) - Convert image to ASCII. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. * [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. From 85a8bfec4106ad2a1cba9d9840ad4a7116b08901 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Tue, 19 May 2020 00:15:22 +0200 Subject: [PATCH 1976/3440] Fix #3069 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a1fc021639..43c0c3905fc 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Email](#email) - [Embeddable Scripting Languages](#embeddable-scripting-languages) - [Error Handling](#error-handling) - - [Files](#files) + - [Files](#Files) - [Financial](#financial) - [Forms](#forms) - [Functional](#functional) From 68a55faf1ff3b2ca73f9c375ad6ec98a291231d7 Mon Sep 17 00:00:00 2001 From: Mohamad Rostami Date: Tue, 19 May 2020 00:20:52 +0200 Subject: [PATCH 1977/3440] Add consistenthash repo (#3064) Co-authored-by: Mohamed Rostrami --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 43c0c3905fc..2e3fc7007cd 100644 --- a/README.md +++ b/README.md @@ -592,6 +592,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. * [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. +* [consistenthash](https://github.com/mbrostami/consistenthash) - Consistent hashing with configurable replicas. * [dht](https://github.com/anacrolix/dht) - BitTorrent Kademlia DHT implementation. * [digota](https://github.com/digota/digota) - grpc ecommerce microservice. * [dot](https://github.com/dotchain/dot/) - distributed sync using operational transformation/OT. From 0e9487f77a1fffbe5bdcde56d311e615db9cef96 Mon Sep 17 00:00:00 2001 From: Ayaz <3712860+ayazans@users.noreply.github.com> Date: Mon, 18 May 2020 21:59:29 -0400 Subject: [PATCH 1978/3440] Rename tracedb to unitdb (#3081) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e3fc7007cd..968ce6da838 100644 --- a/README.md +++ b/README.md @@ -441,7 +441,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. -* [tracedb](https://github.com/unit-io/tracedb) - Fast timeseries database for IoT, realtime messaging applications. Access tracedb with pubsub over tcp or websocket using github.com/unit-io/trace application. +* [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. * [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. * [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. From 5153d89fa0fc31e990f05878929b8bc859c280ba Mon Sep 17 00:00:00 2001 From: psampaz Date: Wed, 20 May 2020 05:38:56 +0300 Subject: [PATCH 1979/3440] add gophersnippets.com (#3094) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 968ce6da838..3c65f3a5483 100644 --- a/README.md +++ b/README.md @@ -2549,6 +2549,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. +* [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. From 9e978ba5796a69c194ff6bb9df753984366fee4a Mon Sep 17 00:00:00 2001 From: kkyr <58787538+kkyr@users.noreply.github.com> Date: Wed, 20 May 2020 02:39:33 +0000 Subject: [PATCH 1980/3440] Add fig - a configuration library (#3090) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3c65f3a5483..b0886ff5ade 100644 --- a/README.md +++ b/README.md @@ -290,6 +290,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [envconf](https://github.com/ian-kent/envconf) - Configuration from environment. * [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. * [envh](https://github.com/antham/envh) - Helpers to manage environment variables. +* [fig](https://github.com/kkyr/fig) - Tiny library for reading configuration from a file and from environment variables (with validation & defaults). * [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. * [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. * [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. From a4f93bc394963445c77209f8b83fe1c482555101 Mon Sep 17 00:00:00 2001 From: mlboy Date: Fri, 22 May 2020 19:47:31 +0800 Subject: [PATCH 1981/3440] add an orm: gosql (#3089) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update README.md add a orm :gosql * Update README.md add an ORM go-sql * 增加go-sql,调整顺序 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b0886ff5ade..e964ab89eef 100644 --- a/README.md +++ b/README.md @@ -1378,6 +1378,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. * [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. * [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. +* [go-sql](https://github.com/rushteam/gosql) - A easy ORM for mysql. * [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. * [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. * [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. From 9435e06bab5dc9332ceb94693315971385f6f81b Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Thu, 28 May 2020 20:51:25 -0400 Subject: [PATCH 1982/3440] MAINTAINERS: update Dmitri's email and username They've changed; see https://dmitri.shuralyov.com/about and https://twitter.com/dmitshur/status/1021266582834634752. --- MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index aedcfdb4bc8..b09a3e671c9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1,6 +1,6 @@ Avelino (@avelino) Duke (@dukex) -Dmitri Shuralyov (@shurcooL) +Dmitri Shuralyov (@dmitshur) Dobrosław Żybort (@matrixik) Dean Karn (@joeybloggs) Kirill Danshin (@kirillDanshin) From 0f2ecc0145ca4452a0b82e8545a6b367bbb9c88a Mon Sep 17 00:00:00 2001 From: Lex Sapkota Date: Sun, 31 May 2020 21:27:41 +1000 Subject: [PATCH 1983/3440] Update URL for Go Playground App (#3110) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e964ab89eef..ddc83df191a 100644 --- a/README.md +++ b/README.md @@ -2545,7 +2545,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. -* [Go Playground for iOS](https://itunes.apple.com/us/app/go-playground/id1437518275?ls=1&mt=8) - Interactively edit & play Go snippets on your mobile device. +* [Go Playground for iOS](https://codeplayground.app) - Interactively edit & play Go snippets on your mobile device. * [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) * [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. * [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. From b92378f9279c85f104da0b38c1de5c7e832f5a88 Mon Sep 17 00:00:00 2001 From: mehanizm Date: Thu, 11 Jun 2020 19:03:55 +0300 Subject: [PATCH 1984/3440] Add iuliia-go to Natural Language Processing (#3067) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddc83df191a..ecbb93954dc 100644 --- a/README.md +++ b/README.md @@ -1261,6 +1261,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. * [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. * [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. +* [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. * [kagome](https://github.com/ikawaha/kagome) - JP morphological analyzer written in pure Go. * [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. From e5ba79d26607a5122b56d3e8a86dd1608b509a10 Mon Sep 17 00:00:00 2001 From: Tim S <59554630+timsolov@users.noreply.github.com> Date: Thu, 11 Jun 2020 19:11:12 +0300 Subject: [PATCH 1985/3440] add rqp package to README.md (#3098) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ecbb93954dc..f87bfe70b31 100644 --- a/README.md +++ b/README.md @@ -1441,6 +1441,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. * [jsonslice](https://github.com/bhmj/jsonslice) - Jsonpath queries with advanced filters. * [rql](https://github.com/a8m/rql) - Resource Query Language for REST API. +* [rqp](https://github.com/timsolov/rest-query-parser) - Query Parser for REST API. Filtering, validations, both `AND`, `OR` operations are supported directly in the query. * [straf](https://github.com/SonicRoshan/straf) - Easily Convert Golang structs to GraphQL objects. ## Resource Embedding From 744c27cc53af2339ae24281179c631ddaf684630 Mon Sep 17 00:00:00 2001 From: Sean Lingren Date: Thu, 11 Jun 2020 11:12:46 -0500 Subject: [PATCH 1986/3440] Add go-fault (#3099) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f87bfe70b31..b3e04a17e17 100644 --- a/README.md +++ b/README.md @@ -2082,6 +2082,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [client-timing](https://github.com/posener/client-timing) - An HTTP client for Server-Timing header. * [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API. * [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. +* [go-fault](https://github.com/github/go-fault) - Fault injection middleware for Go. * [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. * [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. * [ln-paywall](https://github.com/philippgille/ln-paywall) - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin). From cad29568e6b652f3927913ee95e897cc4590f2c7 Mon Sep 17 00:00:00 2001 From: Yevhen Terentiev Date: Thu, 11 Jun 2020 19:15:23 +0300 Subject: [PATCH 1987/3440] Adds taskctl to list (#3102) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3e04a17e17..1340b7d4ce6 100644 --- a/README.md +++ b/README.md @@ -1960,6 +1960,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. * [Task](https://github.com/go-task/task) - simple "Make" alternative. +* [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. * [tome](https://github.com/cyruzin/tome) - Tome was designed to paginate simple RESTful APIs. * [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. From d7d7fa025c9a1869825a7f1bad9a6b7635e5c349 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 11 Jun 2020 19:15:39 +0300 Subject: [PATCH 1988/3440] Added go-mq (#3104) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1340b7d4ce6..6247e85d613 100644 --- a/README.md +++ b/README.md @@ -1110,6 +1110,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-mq](https://github.com/cheshir/go-mq) - RabbitMQ client with declarative configuration. * [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-res](https://github.com/jirenius/go-res) - Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate. From cce34ec1d405b30b5e6878fda748e519c784c4e7 Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Fri, 12 Jun 2020 01:15:56 +0900 Subject: [PATCH 1989/3440] Remove not found tools and fix a link (#3112) --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 6247e85d613..b3ff1f5b233 100644 --- a/README.md +++ b/README.md @@ -1509,7 +1509,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. * [Interpol](https://bitbucket.org/vahidi/interpol) - Rule-based data generator for fuzzing and penetration testing. -* [lego](https://github.com/xenolf/lego) - Pure Go ACME client library and CLI tool (for use with Let's Encrypt). +* [lego](https://github.com/go-acme/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. * [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. * [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. @@ -1566,7 +1566,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [SFTPGo](https://github.com/drakkan/sftpgo) - Full featured and highly configurable SFTP server software. * [Trickster](https://github.com/Comcast/trickster) - HTTP reverse proxy cache and time series accelerator. -* [yakvs](https://git.sci4me.com/sci4me/yakvs) - Small, networked, in-memory key-value store. ## Stream Processing @@ -1847,7 +1846,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. * [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. -* [compare](https://github.com/posener/compare) - Enables more readable and easier comparison tasks. * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. * [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. * [ctop](https://github.com/bcicen/ctop) - [Top-like](http://ctop.sh) interface (e.g. htop) for container metrics. From 939a4428ca9a9fa9c7f8d92485b7d2948f1b295e Mon Sep 17 00:00:00 2001 From: Stefan Bourlon Date: Thu, 11 Jun 2020 09:16:10 -0700 Subject: [PATCH 1990/3440] Add go-lctree (#3114) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3ff1f5b233..fa206449f9b 100644 --- a/README.md +++ b/README.md @@ -1536,6 +1536,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. * [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for 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. +* [go-lctree](https://github.com/sbourlon/go-lctree) - Provides a CLI and primitives to serialize and deserialize [LeetCode binary trees](https://support.leetcode.com/hc/en-us/articles/360011883654-What-does-1-null-2-3-mean-in-binary-tree-representation). * [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". From fee010af64a49f1de982875762080baff7751e08 Mon Sep 17 00:00:00 2001 From: Bui Thang Date: Thu, 11 Jun 2020 23:17:24 +0700 Subject: [PATCH 1991/3440] Add goccm (#3117) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa206449f9b..eea84cc542c 100644 --- a/README.md +++ b/README.md @@ -845,6 +845,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. * [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. * [go-waitgroup](https://github.com/pieterclaerhout/go-waitgroup) - Like `sync.WaitGroup` with error handling and concurrency control. +* [goccm](https://github.com/zenthangplus/goccm) - Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently. * [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. * [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. * [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. From 6c44248e5ba50a83bde11f5145f6a03e3329289c Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Fri, 12 Jun 2020 10:52:03 +0800 Subject: [PATCH 1992/3440] Fix the wrong URL of quality standards --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 474c2e075a2..3057f72ee1f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,4 @@ -Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard) before sending pull request. Thanks! +Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! **Please provide package links to:** From e83d39689322904cc27c559c5345b84b71a36936 Mon Sep 17 00:00:00 2001 From: Asim Aslam Date: Fri, 12 Jun 2020 04:00:04 +0100 Subject: [PATCH 1993/3440] Update the description of micro and add go-micro (#3121) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index eea84cc542c..0b5f0b6293d 100644 --- a/README.md +++ b/README.md @@ -610,6 +610,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service. * [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. * [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. +* [go-micro](https://github.com/micro/go-micro) - A distributed systems development framework. * [go-pdu](https://github.com/pdupub/go-pdu) - A decentralized identity-based social network. * [go-sundheit](https://github.com/AppsFlyer/go-sundheit) - A library built to provide support for defining async service health checks for golang services. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. @@ -619,7 +620,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. -* [micro](https://github.com/micro/micro) - Pluggable microservice toolkit and distributed systems platform. +* [micro](https://github.com/micro/micro) - A distributed systems runtime for the cloud and beyond. * [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems. * [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. * [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. From d85e3f0654e535f77038d05b231822c8f06aa538 Mon Sep 17 00:00:00 2001 From: Roger Welin Date: Fri, 12 Jun 2020 05:00:39 +0200 Subject: [PATCH 1994/3440] add cassowary (#3120) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0b5f0b6293d..1199c09460c 100644 --- a/README.md +++ b/README.md @@ -2254,6 +2254,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Blast](https://github.com/dave/blast) - A simple tool for API load testing and batch jobs. * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. +* [cassowary](https://github.com/rogerwelin/cassowary) - Modern cross-platform HTTP load-testing tool written in Go. * [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. * [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). From fe2627d3c7a9e19af82f3ba37e37e51b9d1d4b1a Mon Sep 17 00:00:00 2001 From: Christoph Vilsmeier Date: Fri, 12 Jun 2020 05:00:53 +0200 Subject: [PATCH 1995/3440] add Sqinn-Go to Database Drivers (#3118) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1199c09460c..8de0cfc0949 100644 --- a/README.md +++ b/README.md @@ -520,6 +520,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goracle](https://github.com/go-goracle/goracle) - Oracle driver for Go, using the ODPI-C driver. * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. + * [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. * NoSQL Databases * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. From ada2575e051121cf2ed1a847ea2ca6f76c93c114 Mon Sep 17 00:00:00 2001 From: Max Ivanov Date: Fri, 12 Jun 2020 06:01:08 +0300 Subject: [PATCH 1996/3440] add gogtrends unofficial google trends api (#3105) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8de0cfc0949..ddd0c4bf545 100644 --- a/README.md +++ b/README.md @@ -1789,6 +1789,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. +* [gogtrends](https://github.com/groovili/gogtrends) - Google Trends Unofficial API. * [golang-tmdb](https://github.com/cyruzin/golang-tmdb) - Golang wrapper for The Movie Database API v3. * [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. * [gomalshare](https://github.com/MonaxGT/gomalshare) - Go library MalShare API [malshare.com](http://www.malshare.com/) From 647240881518663d32537298ff0cef11b38d6f3f Mon Sep 17 00:00:00 2001 From: Sanad Haj Yahya <65346528+shaj13@users.noreply.github.com> Date: Tue, 16 Jun 2020 02:15:59 +0300 Subject: [PATCH 1997/3440] add go-guardian (#3106) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddd0c4bf545..f9defd2393f 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [branca](https://github.com/hako/branca) - Golang implementation of Branca Tokens. * [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. * [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. +* [go-guardian](https://goreportcard.com/report/github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token and Certificate based authentication. * [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - Standalone, specification-compliant, OAuth2 server written in Golang. * [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. From 5d39c35643c2af400965abbd3a5eae838bd50480 Mon Sep 17 00:00:00 2001 From: Ryan David Sheasby Date: Wed, 17 Jun 2020 09:59:55 +0200 Subject: [PATCH 1998/3440] Remove "GoSlaves" dead link (#3131) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f9defd2393f..81a4c47a9f5 100644 --- a/README.md +++ b/README.md @@ -851,7 +851,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goccm](https://github.com/zenthangplus/goccm) - Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently. * [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. * [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. -* [GoSlaves](https://github.com/themester/GoSlaves) - Simple and Asynchronous Goroutine pool library. * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. * [gowp](https://github.com/xxjwxc/gowp) - gowp is concurrency limiting goroutine pool. * [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. From d00a6244bc0c7561c55b73d337ca54236d04034c Mon Sep 17 00:00:00 2001 From: Robus Gauli Date: Fri, 19 Jun 2020 07:01:00 +0545 Subject: [PATCH 1999/3440] Quick typo fix (#3132) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 81a4c47a9f5..6b2fb79c2e7 100644 --- a/README.md +++ b/README.md @@ -1726,7 +1726,7 @@ 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. * [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. * [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. - * [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separeted Value)](http://ltsv.org/) reader for Go. + * [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. * [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. * [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. * [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang From 99cf64bc537497279cd936a7707f6a77084fb286 Mon Sep 17 00:00:00 2001 From: James Ranson Date: Mon, 29 Jun 2020 09:46:28 -0600 Subject: [PATCH 2000/3440] update trickster organization (#3144) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6b2fb79c2e7..0f35da43313 100644 --- a/README.md +++ b/README.md @@ -1569,7 +1569,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [SFTPGo](https://github.com/drakkan/sftpgo) - Full featured and highly configurable SFTP server software. -* [Trickster](https://github.com/Comcast/trickster) - HTTP reverse proxy cache and time series accelerator. +* [Trickster](https://github.com/tricksterproxy/trickster) - HTTP reverse proxy cache and time series accelerator. ## Stream Processing From b5cdc1fa1d3e055f274a3185a5a67b83b42f7958 Mon Sep 17 00:00:00 2001 From: Durairaj Subramaniam Date: Fri, 3 Jul 2020 11:33:24 +0100 Subject: [PATCH 2001/3440] Added Confluent Kafka Golang client (#3095) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0f35da43313..20429ac6e18 100644 --- a/README.md +++ b/README.md @@ -1106,6 +1106,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Bus](https://github.com/mustafaturan/bus) - Minimalist message bus implementation for internal communication. * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. * [Commander](https://github.com/jeroenrinzema/commander) - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka. +* [Confluent Kafka Golang Client](https://github.com/confluentinc/confluent-kafka-go) - confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. * [drone-line](https://github.com/appleboy/drone-line) - Sending [Line](https://at.line.me/en) 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. From 669de956f0f12b4f54f2375499eda3a7469fb3cb Mon Sep 17 00:00:00 2001 From: Ioannis Georgoulas Date: Fri, 3 Jul 2020 11:37:06 +0100 Subject: [PATCH 2002/3440] Add go-aws-ssm package (#3124) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20429ac6e18..097e03b5fce 100644 --- a/README.md +++ b/README.md @@ -294,6 +294,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [fig](https://github.com/kkyr/fig) - Tiny library for reading configuration from a file and from environment variables (with validation & defaults). * [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. * [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. +* [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store. * [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. * [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). * [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. From 97e96e52b9fff1e8f1ca65973251662dd3415970 Mon Sep 17 00:00:00 2001 From: Mehrdad Arshad Rad Date: Fri, 3 Jul 2020 03:37:28 -0700 Subject: [PATCH 2003/3440] add vssh (#3125) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 097e03b5fce..74296e230d6 100644 --- a/README.md +++ b/README.md @@ -1347,6 +1347,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tcp_server](https://github.com/firstrow/tcp_server) - Go library for building tcp servers faster. * [tspool](https://github.com/two/tspool) - A TCP Library use worker pool to improve performance and protect your server. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. +* [vssh](https://github.com/yahoo/vssh) - Go library for building network and server automation over SSH protocol. * [water](https://github.com/songgao/water) - Simple TUN/TAP library. * [webrtc](https://github.com/pions/webrtc) - A pure Go implementation of the WebRTC API. * [winrm](https://github.com/masterzen/winrm) - Go WinRM client to remotely execute commands on Windows machines. From a660101efcaba9f58f811f473c71a0e2ec9cb237 Mon Sep 17 00:00:00 2001 From: Blas Rodriguez Irizar Date: Fri, 3 Jul 2020 12:37:47 +0200 Subject: [PATCH 2004/3440] Add E-Book Spaceship Go (#3128) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74296e230d6..20128217dee 100644 --- a/README.md +++ b/README.md @@ -2417,6 +2417,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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/) +* [Spaceship Go A Journey to the Standard Library](https://blasrodri.github.io/spaceship-go-gh-pages/) * [The Go Programming Language](http://www.gopl.io/) * [The Golang Standard Library by Example (Chinese)](https://github.com/polaris1119/The-Golang-Standard-Library-by-Example) * [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) From 79f5b8f07f1abf72479aa3503e22c7f28f8489af Mon Sep 17 00:00:00 2001 From: Luca Sepe Date: Fri, 3 Jul 2020 12:38:09 +0200 Subject: [PATCH 2005/3440] Add CLI tool to Generate High Level microservices Architecture diagrams using simple YAML syntax (#3136) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20128217dee..51f5b833a71 100644 --- a/README.md +++ b/README.md @@ -919,6 +919,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [cameron](https://github.com/aofei/cameron) - An avatar generator for Go. * [canvas](https://github.com/tdewolff/canvas) - Vector graphics to PDF, SVG or rasterized image. * [darkroom](https://github.com/gojek/darkroom) - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency. +* [draft](https://github.com/lucasepe/draft) - Generate High Level Microservice Architecture diagrams for GraphViz using simple YAML syntax. * [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. * [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. * [gift](https://github.com/disintegration/gift) - Package of image processing filters. From aa2687cd7dfad1e1f4a7bd74c2dc93dc911e02f8 Mon Sep 17 00:00:00 2001 From: Dmytro Titov Date: Fri, 3 Jul 2020 12:38:26 +0200 Subject: [PATCH 2006/3440] Add goioc/di (#3137) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 51f5b833a71..ed2823b963c 100644 --- a/README.md +++ b/README.md @@ -1174,6 +1174,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. +* [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. * [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. From 83a23abfd8ed20ac20744bd74cbdf24b93f6abdc Mon Sep 17 00:00:00 2001 From: Tal Date: Fri, 3 Jul 2020 13:38:44 +0300 Subject: [PATCH 2007/3440] add mediary a middleware for http.Client (#3140) Co-authored-by: Tal Gendler --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed2823b963c..c0519aba868 100644 --- a/README.md +++ b/README.md @@ -2107,6 +2107,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. * [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs. * [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang. +* [mediary](https://github.com/HereMobilityDevelopers/mediary) - add interceptors to `http.Client` to allow dumping/shaping/tracing/... of requests/responses. * [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. From 41d6168efab8f0c2fc5147e0fcb40e5a5788e8fc Mon Sep 17 00:00:00 2001 From: Sanket Date: Fri, 3 Jul 2020 10:43:45 +0000 Subject: [PATCH 2008/3440] Adding go-mysql-lock (#3123) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c0519aba868..0deb0d04af5 100644 --- a/README.md +++ b/README.md @@ -614,6 +614,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. * [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. * [go-micro](https://github.com/micro/go-micro) - A distributed systems development framework. +* [go-mysql-lock](https://github.com/sanketplus/go-mysql-lock) - MySQL based distributed lock. * [go-pdu](https://github.com/pdupub/go-pdu) - A decentralized identity-based social network. * [go-sundheit](https://github.com/AppsFlyer/go-sundheit) - A library built to provide support for defining async service health checks for golang services. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. From 0394645e54f7f5dd346f4ca5c70b508ec91e6f00 Mon Sep 17 00:00:00 2001 From: "Daniel T. Gorski" Date: Fri, 3 Jul 2020 16:33:30 +0200 Subject: [PATCH 2009/3440] Added typex (#3138) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0deb0d04af5..a3e3d12befa 100644 --- a/README.md +++ b/README.md @@ -2250,6 +2250,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. +* [typex](https://github.com/dtgorski/typex) - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration. ## Software Packages From 33555f632a6da48205df85027553e494d686bdc8 Mon Sep 17 00:00:00 2001 From: Eugene R Date: Sat, 4 Jul 2020 06:15:22 +0300 Subject: [PATCH 2010/3440] add equalizer library (#3142) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3e3d12befa..868ba8770c5 100644 --- a/README.md +++ b/README.md @@ -1866,6 +1866,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. * [delve](https://github.com/derekparker/delve) - Go debugger. * [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. +* [equalizer](https://github.com/reugn/equalizer) - Quota manager and rate limiter collection for Go. * [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. * [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. * [filetype](https://github.com/h2non/filetype) - Small package to infer the file type checking the magic numbers signature. From 1ee29299e09baae00e427ce5ceda0c468cdc8aaf Mon Sep 17 00:00:00 2001 From: Yad Smood Date: Sat, 4 Jul 2020 12:16:14 +0900 Subject: [PATCH 2011/3440] Update the link address and description of rod (#3143) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 868ba8770c5..5bdaf30c7df 100644 --- a/README.md +++ b/README.md @@ -1685,7 +1685,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. - * [rod](https://github.com/ysmood/rod) - A chrome devtools controller that is easy and safe to use. + * [rod](https://github.com/go-rod/rod) - A Devtools driver to make web automation and scraping easy. * [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. * Fail injection From eb6b4578038fe585d3bfe1fb74323146e0113aec Mon Sep 17 00:00:00 2001 From: pj Date: Sat, 4 Jul 2020 13:20:46 +1000 Subject: [PATCH 2012/3440] - add how to benchmark (#3146) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5bdaf30c7df..3e00ed16f45 100644 --- a/README.md +++ b/README.md @@ -2572,6 +2572,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. * [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. +* [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM. * [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. From 39b3949b84faf23fd5b5124e748bd9a0e1390ef6 Mon Sep 17 00:00:00 2001 From: Zaba505 Date: Fri, 3 Jul 2020 23:25:24 -0400 Subject: [PATCH 2013/3440] feat: add github.com/Zaba505/gws (#3147) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3e00ed16f45..0fb08be27da 100644 --- a/README.md +++ b/README.md @@ -1448,6 +1448,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. * [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. +* [gws](https://github.com/Zaba505/gws) - Apollos' "GraphQL over Websocket" client and server implementation. * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. * [jsonslice](https://github.com/bhmj/jsonslice) - Jsonpath queries with advanced filters. * [rql](https://github.com/a8m/rql) - Resource Query Language for REST API. From 9828902f31da1290a0881ec34b2851f93d79dffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vic=20Sh=C3=B3stak?= Date: Sat, 4 Jul 2020 06:27:22 +0300 Subject: [PATCH 2014/3440] Add create-go-app/cli project to Utilities section (#3148) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0fb08be27da..ed651231056 100644 --- a/README.md +++ b/README.md @@ -1860,6 +1860,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. * [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. +* [create-go-app](https://github.com/create-go-app/cli) - A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command. * [ctop](https://github.com/bcicen/ctop) - [Top-like](http://ctop.sh) interface (e.g. htop) for container metrics. * [ctxutil](https://github.com/posener/ctxutil) - A collection of utility functions for contexts. * [dbt](https://github.com/nikogura/dbt) - A framework for running self-updating signed binaries from a central, trusted repository. From 22d995b095e737a03b3dedffce87732c8f047658 Mon Sep 17 00:00:00 2001 From: Diego Marangoni Date: Sat, 4 Jul 2020 00:47:29 -0300 Subject: [PATCH 2015/3440] add typenv into configuration category (#3149) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed651231056..c1ea89acdd2 100644 --- a/README.md +++ b/README.md @@ -317,6 +317,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [onion](http://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. * [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. * [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). +* [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library. * [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). From f19b81861a820ea6ffd0f96cf52277955acfaa5e Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Sat, 4 Jul 2020 11:48:49 +0800 Subject: [PATCH 2016/3440] Added github.com/nikolaydubina/calendarheatmap (#3153) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c1ea89acdd2..65e428a046a 100644 --- a/README.md +++ b/README.md @@ -1476,7 +1476,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [assocentity](https://github.com/ndabAP/assocentity) - Package assocentity returns the average distance from words to a given entity. * [bradleyterry](https://github.com/seanhagen/bradleyterry) - Provides a Bradley-Terry Model for pairwise comparisons. -* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. +* [calendarheatmap](https://github.com/nikolaydubina/calendarheatmap) - Calendar heatmap in plain Go inspired by Github contribution activity. +* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. * [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for machine-learning and statistics (similar to pandas). * [evaler](https://github.com/soniah/evaler) - Simple floating point arithmetic expression evaluator. * [ewma](https://github.com/VividCortex/ewma) - Exponentially-weighted moving averages. From a4a524c6d10831a56e2b9001dfc31fe10d2fa595 Mon Sep 17 00:00:00 2001 From: Prashant Gupta Date: Fri, 3 Jul 2020 23:34:10 -0700 Subject: [PATCH 2017/3440] add firewalld-rest library (#3141) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 65e428a046a..ba8c9eb4214 100644 --- a/README.md +++ b/README.md @@ -1516,6 +1516,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. * [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. * [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. +* [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. * [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. * [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)". * [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. From 780b854b7cbbef25c5aba88690319dd32c9b100e Mon Sep 17 00:00:00 2001 From: Jeroen Rinzema Date: Sun, 5 Jul 2020 12:35:24 +0200 Subject: [PATCH 2018/3440] Added Maestro (#3145) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ba8c9eb4214..0249f2dc1b3 100644 --- a/README.md +++ b/README.md @@ -625,6 +625,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. +* [Maestro](https://github.com/jexia/maestro) - A straightforward (micro) service orchestrator. * [micro](https://github.com/micro/micro) - A distributed systems runtime for the cloud and beyond. * [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems. * [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. From 49c59d01022a92ddfeaeedb9e244b997afb15a5b Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 8 Jul 2020 14:07:47 -0300 Subject: [PATCH 2019/3440] add carbonads on awesome-go website Signed-off-by: Avelino --- tmpl/assets/awesome-go.css | 75 +++++++++++++++++++++++++++++++++++++- tmpl/tmpl.html | 1 + 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/tmpl/assets/awesome-go.css b/tmpl/assets/awesome-go.css index 5dd55395cd9..eae76812a5e 100644 --- a/tmpl/assets/awesome-go.css +++ b/tmpl/assets/awesome-go.css @@ -40,4 +40,77 @@ h1 > a img { #content * { word-wrap: break-word; } -} \ No newline at end of file +} + +/** ADs + * */ +#ads { + max-width: 330px; + width: 100%; + margin: auto; + margin-top: auto; + margin-right: auto; + margin-bottom: auto; + margin-left: auto; + display: block; +} + +#carbonads { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, + Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +#carbonads { + display: flex; + max-width: 330px; + background-color: hsl(0, 0%, 98%); + box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, .1); +} + +#carbonads a { + color: inherit; + text-decoration: none; +} + +#carbonads a:hover { + color: inherit; +} + +#carbonads span { + position: relative; + display: block; + overflow: hidden; +} + +#carbonads .carbon-wrap { + display: flex; +} + +.carbon-img { + display: block; + margin: 0; + line-height: 1; +} + +.carbon-img img { + display: block; +} + +.carbon-text { + font-size: 13px; + padding: 10px; + line-height: 1.5; + text-align: left; +} + +.carbon-poweredby { + display: block; + padding: 8px 10px; + background: repeating-linear-gradient(-45deg, transparent, transparent 5px, hsla(0, 0%, 0%, .025) 5px, hsla(0, 0%, 0%, .025) 10px) hsla(203, 11%, 95%, .4); + text-align: center; + text-transform: uppercase; + letter-spacing: .5px; + font-weight: 600; + font-size: 9px; + line-height: 1; +} diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index 94ebe6dbd3f..411a57e67c1 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -21,6 +21,7 @@ +

{{.Body}} From b98edd4ed2db4eb53675510b10e04630db2ed0f0 Mon Sep 17 00:00:00 2001 From: Qishuai Liu Date: Thu, 9 Jul 2020 01:10:13 +0800 Subject: [PATCH 2020/3440] Add sqlingo (#3158) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0249f2dc1b3..951ec8003e2 100644 --- a/README.md +++ b/README.md @@ -501,6 +501,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. * [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. +* [sqlingo](https://github.com/lqs/sqlingo) - A lightweight DSL to build SQL in Go. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. * [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries. * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. From 3866f679f029eadd364a72eb0f0b1c1c473ef8e5 Mon Sep 17 00:00:00 2001 From: ANDO Yasushi Date: Thu, 9 Jul 2020 02:11:42 +0900 Subject: [PATCH 2021/3440] add go-glmatrix in opengl section (#3157) Co-authored-by: ANDO Yasushi --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 951ec8003e2..a060a4b04a8 100644 --- a/README.md +++ b/README.md @@ -1380,6 +1380,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). * [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. +* [go-glmatrix](https://githumb.com/technohippy/go-glmatrix) - Go port of [glMatrix](http://glmatrix.net/) library. * [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). * [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. * [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. From af98967942135df3f71f42b930b7f0d395468af0 Mon Sep 17 00:00:00 2001 From: Roger Ng Date: Thu, 9 Jul 2020 01:12:51 +0800 Subject: [PATCH 2022/3440] Add facebookincubator/ent (#3156) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a060a4b04a8..d9391267d10 100644 --- a/README.md +++ b/README.md @@ -1390,6 +1390,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* * [beego orm](https://github.com/astaxie/beego/tree/master/orm) - Powerful orm framework for go. Support: pq/mysql/sqlite3. +* [ent](https://github.com/facebookincubator/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. * [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. * [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. * [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. From cc3d21411f41a6de022ccaa4c013d26d53421633 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 8 Jul 2020 14:34:14 -0300 Subject: [PATCH 2023/3440] used JS assets via CDN Signed-off-by: Avelino --- tmpl/assets/jquery-custom.min.js | 5 - tmpl/assets/marked.js | 1286 ------------------------------ tmpl/tmpl.html | 4 +- 3 files changed, 2 insertions(+), 1293 deletions(-) delete mode 100644 tmpl/assets/jquery-custom.min.js delete mode 100644 tmpl/assets/marked.js diff --git a/tmpl/assets/jquery-custom.min.js b/tmpl/assets/jquery-custom.min.js deleted file mode 100644 index ee49d986153..00000000000 --- a/tmpl/assets/jquery-custom.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery v3.0.0 -css,-css/addGetHookIf,-css/adjustCSS,-css/curCSS,-css/hiddenVisibleSelectors,-css/showHide,-effects,-effects/Tween,-effects/animatedSelector,-css/support,-css/var/cssExpand,-css/var/getStyles,-css/var/isHiddenWithinTree,-css/var/rmargin,-css/var/rnumnonpx,-css/var/swap,-dimensions,-offset,-deprecated,-event/alias,-wrap | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.0.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return a&&"[object Object]"===k.call(a)?(b=e(a))?(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n):!0:!1},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;d>f;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a)?(d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e):void 0},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"===c||r.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\x00-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\x00"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[0>c?c+b:c]}),even:pa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,e>i&&ya(a.slice(i,e)),f>e&&ya(a=a.slice(e)),f>e&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;d>b;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;d>b;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(f>b)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(1>=b&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){ -return j.call(r(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:X.test(c)?JSON.parse(c):c}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ca=/^$|\/(?:java|ecma)script/i,da={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function fa(a,b){for(var c=0,d=a.length;d>c;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var ga=/<|&#?\w+;/;function ha(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;o>n;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(ga.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ba.exec(f)||["",""])[1].toLowerCase(),i=da[h]||da._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ea(l.appendChild(f),"script"),j&&fa(g),c){k=0;while(f=g[k++])ca.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ia=d.documentElement,ja=/^key/,ka=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,la=/^([^.]*)(?:\.(.+)|)/;function ma(){return!0}function na(){return!1}function oa(){try{return d.activeElement}catch(a){}}function pa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)pa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=na;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ia,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=la.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=la.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;cc;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h\x20\t\r\n\f]*)[^>]*)\/>/gi,ra=/\s*$/g;function va(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function wa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function xa(a){var b=ta.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ya(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function za(a,b){var c=b.nodeName.toLowerCase();"input"===c&&aa.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Aa(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&sa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Aa(f,b,c,d)});if(m&&(e=ha(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ea(e,"script"),wa),i=h.length;m>l;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,ea(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,xa),l=0;i>l;l++)j=h[l],ca.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(ua,""),k))}return a}function Ba(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(ea(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(qa,"<$1>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ea(h),f=ea(a),d=0,e=f.length;e>d;d++)za(f[d],g[d]);if(b)if(c)for(f=f||ea(a),g=g||ea(h),d=0,e=f.length;e>d;d++)ya(f[d],g[d]);else ya(a,h);return g=ea(h,"script"),g.length>0&&fa(g,!i&&ea(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ba(this,a,!0)},remove:function(a){return Ba(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Aa(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=va(this,a);b.appendChild(a)}})},prepend:function(){return Aa(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=va(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Aa(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Aa(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ea(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ra.test(a)&&!da[(ba.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Aa(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}}),r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var Ca,Da=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?Ca:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),Ca={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=Da[b]||r.find.attr;Da[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=Da[g],Da[g]=e,e=null!=c(a,b,d)?g:null,Da[g]=f),e}});var Ea=/^(?:input|select|textarea|button)$/i,Fa=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):Ea.test(a.nodeName)||Fa.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var Ga=/[\t\r\n\f]/g;function Ha(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,Ha(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=Ha(c),d=1===c.nodeType&&(" "+e+" ").replace(Ga," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,Ha(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=Ha(c),d=1===c.nodeType&&(" "+e+" ").replace(Ga," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,Ha(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Ha(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Ha(c)+" ").replace(Ga," ").indexOf(b)>-1)return!0;return!1}});var Ia=/\r/g,Ja=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(Ia,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(Ja," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){return r.isArray(b)?a.checked=r.inArray(r(a).val(),b)>-1:void 0}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var Ka=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!Ka.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,Ka.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?r.event.trigger(a,b,c,!0):void 0}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var La=a.location,Ma=r.now(),Na=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var Oa=/\[\]$/,Pa=/\r?\n/g,Qa=/^(?:submit|button|image|reset|file)$/i,Ra=/^(?:input|select|textarea|keygen)/i;function Sa(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||Oa.test(a)?d(a,e):Sa(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Sa(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Sa(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&Ra.test(this.nodeName)&&!Qa.test(a)&&(this.checked||!aa.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(Pa,"\r\n")}}):{name:b.name,value:c.replace(Pa,"\r\n")}}).get()}});var Ta=/%20/g,Ua=/#.*$/,Va=/([?&])_=[^&]*/,Wa=/^(.*?):[ \t]*([^\r\n]*)$/gm,Xa=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ya=/^(?:GET|HEAD)$/,Za=/^\/\//,$a={},_a={},ab="*/".concat("*"),bb=d.createElement("a");bb.href=La.href;function cb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function db(a,b,c,d){var e={},f=a===_a;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function eb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function fb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function gb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:La.href,type:"GET",isLocal:Xa.test(La.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ab,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?eb(eb(a,r.ajaxSettings),b):eb(r.ajaxSettings,a)},ajaxPrefilter:cb($a),ajaxTransport:cb(_a),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Wa.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||La.href)+"").replace(Za,La.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=bb.protocol+"//"+bb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),db($a,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Ya.test(o.type),f=o.url.replace(Ua,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Ta,"+")):(n=o.url.slice(f.length),o.data&&(f+=(Na.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Va,""),n=(Na.test(f)?"&":"?")+"_="+Ma++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+ab+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=db(_a,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&300>b||304===b,d&&(v=fb(o,y,d)),v=gb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",0>b&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d, -d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var hb={0:200,1223:204},ib=r.ajaxSettings.xhr();o.cors=!!ib&&"withCredentials"in ib,o.ajax=ib=!!ib,r.ajaxTransport(function(b){var c,d;return o.cors||ib&&!b.crossDomain?{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(hb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}:void 0}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - + + +

+

+ +

{{.Body}} + + + Deploys by Netlify +
- - + + + From e9dad65590fa2a4b7b5efd4bf4696cddd3897ec6 Mon Sep 17 00:00:00 2001 From: Enes Furkan Olcay Date: Mon, 20 Jul 2020 23:51:09 +0300 Subject: [PATCH 2033/3440] add baraka (#3168) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7556844f70c..4dc07302909 100644 --- a/README.md +++ b/README.md @@ -715,6 +715,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. * [afs](https://github.com/viant/afs) - Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go. +* [baraka](https://github.com/xis/baraka) - A library for handling file uploads, simple, memory-friendly. * [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client. * [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5 and SHA256, for large files. * [copy](https://github.com/otiai10/copy) - Copy directory recursively. From 0e2a283b3ccbe2c2260aac66eb0a0ed345e5cc36 Mon Sep 17 00:00:00 2001 From: Henrique Vicente Date: Mon, 20 Jul 2020 22:53:39 +0200 Subject: [PATCH 2034/3440] Adding github.com/henvic/httpretty HTTP debugging package. (#3170) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4dc07302909..401c2f79589 100644 --- a/README.md +++ b/README.md @@ -1028,6 +1028,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Console, Simple Console, File or Elasticsearch. * [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. * [gone/log](https://github.com/One-com/gone/tree/master/log) - Fast, extendable, full-featured, std-lib source compatible log library. +* [httpretty](https://github.com/henvic/httpretty) - Pretty-prints your regular HTTP requests on your terminal for debugging (similar to http.DumpRequest). * [journald](https://github.com/ssgreg/journald) - Go implementation of systemd Journal's native API for logging. * [log](https://github.com/aerogo/log) - An O(1) logging system that allows you to connect one log to multiple writers (e.g. stdout, a file and a TCP connection). * [log](https://github.com/apex/log) - Structured logging package for Go. From 3ed3d3a7dabecf88aa9dcebaf5b751c90773da92 Mon Sep 17 00:00:00 2001 From: lrita Date: Tue, 21 Jul 2020 04:55:02 +0800 Subject: [PATCH 2035/3440] add cmap in datastructure (#3171) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 401c2f79589..f5d27518e47 100644 --- a/README.md +++ b/README.md @@ -351,6 +351,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [cmap](https://github.com/lrita/cmap) - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards. * [concurrent-writer](https://github.com/free/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. * [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. * [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). From 6d8e61e865ee53c1020ad9dec0485310cea71ed2 Mon Sep 17 00:00:00 2001 From: Kamaleshwar <1092882+bnkamalesh@users.noreply.github.com> Date: Tue, 21 Jul 2020 02:26:05 +0530 Subject: [PATCH 2036/3440] [patch] added github.com/bnkamalesh/errors (#3173) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f5d27518e47..d90f7ee60c9 100644 --- a/README.md +++ b/README.md @@ -704,6 +704,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. * [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. * [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. +* [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builting Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. * [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. * [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. From 87905b16c0728caade7c406edf1277e890235bb9 Mon Sep 17 00:00:00 2001 From: Jeroen Rinzema Date: Tue, 21 Jul 2020 17:04:11 +0200 Subject: [PATCH 2037/3440] Renamed project Maestro to Semaphore (#3176) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d90f7ee60c9..2b23077c612 100644 --- a/README.md +++ b/README.md @@ -627,7 +627,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. -* [Maestro](https://github.com/jexia/maestro) - A straightforward (micro) service orchestrator. * [micro](https://github.com/micro/micro) - A distributed systems runtime for the cloud and beyond. * [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems. * [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. @@ -639,6 +638,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [resgate](https://resgate.io/) - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly. * [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. +* [Semaphore](https://github.com/jexia/semaphore) - A straightforward (micro) service orchestrator. * [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. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. From dbef03fe476907119862866934831eda86cec15b Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 21 Jul 2020 13:51:11 -0300 Subject: [PATCH 2038/3440] add GitAds support Signed-off-by: Avelino --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2b23077c612..a8a13eb5b46 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) [![patreon avelino](https://c5.patreon.com/external/logo/become_a_patron_button@2x.png)](https://www.patreon.com/avelinorun) +[![GitAds Support](https://images.gitads.io/awesome-go)](https://tracking.gitads.io/?repo=awesome-go) Financial support to Awesome Go From 1b72d14d994ff5d3909ca30bf9e939e5e8d5f70e Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Jul 2020 08:47:12 -0300 Subject: [PATCH 2039/3440] sponsorship description update --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a8a13eb5b46..5928b6264b7 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,10 @@ [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) -[![patreon avelino](https://c5.patreon.com/external/logo/become_a_patron_button@2x.png)](https://www.patreon.com/avelinorun) -[![GitAds Support](https://images.gitads.io/awesome-go)](https://tracking.gitads.io/?repo=awesome-go) +## Sponsorships +> [![GitAds Support](https://images.gitads.io/awesome-go)](https://tracking.gitads.io/?repo=awesome-go) -Financial support to Awesome Go - -**We have no monthly cost**_, but we have employees **hard working** to maintain the Awesome Go, with money raised we can repay the effort of each person involved!_ +**We have no monthly cost**_, but we have employees **hard working** to maintain the Awesome Go, with money raised we can repay the effort of each person involved! All billing and distribution will be open to the entire community._ A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 1943808eb6d3adfca8d84ec0aece3bdc092da098 Mon Sep 17 00:00:00 2001 From: Damian Gryski Date: Wed, 22 Jul 2020 16:24:25 -0700 Subject: [PATCH 2040/3440] Style Guides: add section from dgryski/awesome-go-style (#3178) --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 5928b6264b7..65350553f3b 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [E-Books](#e-books) - [Gophers](#gophers) - [Meetups](#meetups) + - [Style Guides](#style-guides) - [Twitter](#twitter) - [Websites](#websites) - [Tutorials](#tutorials) @@ -2518,6 +2519,18 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Add the group of your city/country here (send **PR**)* +## Style Guides + +* [bahlo/go-styleguide](https://github.com/bahlo/go-styleguide) +* [CockroachDB](https://github.com/cockroachdb/cockroach/blob/master/docs/style.md) +* [Edge X Foundry](https://wiki.edgexfoundry.org/display/FA/Contributor%27s+Guide+-+Go+Lang) +* [GitLab](https://docs.gitlab.com/ee/development/go_guide/) +* [Hyperledger](https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/style-guides/go-style.rst) +* [Magnetico](https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification) +* [Sourcegraph](https://about.sourcegraph.com/handbook/engineering/go_style_guide) +* [Thanos](https://thanos.io/contributing/coding-style-guide.md/) +* [Uber](https://github.com/uber-go/guide/blob/master/style.md) + ## Social Media ### Twitter From 4695760f2dc6e37c089bf153c30fa941e827da4a Mon Sep 17 00:00:00 2001 From: Ceriath Date: Tue, 28 Jul 2020 04:13:33 +0200 Subject: [PATCH 2041/3440] Revert "Fix #3069" This reverts commit 4d97316980695f06a8da222a0daf83d721d4770e. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 65350553f3b..dfc10c3d415 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Email](#email) - [Embeddable Scripting Languages](#embeddable-scripting-languages) - [Error Handling](#error-handling) - - [Files](#Files) + - [Files](#files) - [Financial](#financial) - [Forms](#forms) - [Functional](#functional) From 09b91de8c6b138b8d4c23e16e31c00fef174a9fb Mon Sep 17 00:00:00 2001 From: Ceriath Date: Tue, 28 Jul 2020 04:18:03 +0200 Subject: [PATCH 2042/3440] Fix ##3096 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dfc10c3d415..308b6c37e89 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Email](#email) - [Embeddable Scripting Languages](#embeddable-scripting-languages) - [Error Handling](#error-handling) - - [Files](#files) + - [File Handling](#file-handling) - [Financial](#financial) - [Forms](#forms) - [Functional](#functional) @@ -711,7 +711,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. * [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. -## Files +## File Handling *Libraries for handling files and file systems.* From bd1380eb71ac6a2a1c0ad43375326d85b0731b51 Mon Sep 17 00:00:00 2001 From: "Liu,Lei" Date: Fri, 31 Jul 2020 16:37:58 +0800 Subject: [PATCH 2043/3440] Add qiniu goc (#3162) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 308b6c37e89..c0095ebdcc6 100644 --- a/README.md +++ b/README.md @@ -1649,6 +1649,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. * [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. + * [goc](https://github.com/qiniu/goc) - Goc is a comprehensive coverage testing system for The Go Programming Language. * [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. * [gocrest](https://github.com/corbym/gocrest) - Composable hamcrest-like matchers for Go assertions. From 68c6e32fac2da3221e64133f6fe06676969b2348 Mon Sep 17 00:00:00 2001 From: Derek Smith Date: Sun, 2 Aug 2020 13:43:01 -0500 Subject: [PATCH 2044/3440] add kemba (#3183) --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c0095ebdcc6..10cf1f1854f 100644 --- a/README.md +++ b/README.md @@ -294,7 +294,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [fig](https://github.com/kkyr/fig) - Tiny library for reading configuration from a file and from environment variables (with validation & defaults). * [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. * [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. -* [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store. +* [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store. * [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. * [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). * [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. @@ -1032,6 +1032,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gone/log](https://github.com/One-com/gone/tree/master/log) - Fast, extendable, full-featured, std-lib source compatible log library. * [httpretty](https://github.com/henvic/httpretty) - Pretty-prints your regular HTTP requests on your terminal for debugging (similar to http.DumpRequest). * [journald](https://github.com/ssgreg/journald) - Go implementation of systemd Journal's native API for logging. +* [kemba](https://github.com/clok/kemba) - A tiny debug logging tool inspired by [debug](https://github.com/visionmedia/debug), great for CLI tools and applications. * [log](https://github.com/aerogo/log) - An O(1) logging system that allows you to connect one log to multiple writers (e.g. stdout, a file and a TCP connection). * [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. @@ -1485,7 +1486,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [assocentity](https://github.com/ndabAP/assocentity) - Package assocentity returns the average distance from words to a given entity. * [bradleyterry](https://github.com/seanhagen/bradleyterry) - Provides a Bradley-Terry Model for pairwise comparisons. * [calendarheatmap](https://github.com/nikolaydubina/calendarheatmap) - Calendar heatmap in plain Go inspired by Github contribution activity. -* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. +* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. * [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for machine-learning and statistics (similar to pandas). * [decimal](https://github.com/db47h/decimal) - Package decimal implements arbitrary-precision decimal floating-point arithmetic. * [evaler](https://github.com/soniah/evaler) - Simple floating point arithmetic expression evaluator. From 4d65b07a5bd9fb987908ea55979f9d19712eb70c Mon Sep 17 00:00:00 2001 From: Oleg Kovalov Date: Sun, 2 Aug 2020 22:33:15 +0200 Subject: [PATCH 2045/3440] add cristalhq/jwt (#3185) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 10cf1f1854f..7304c5e0e25 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure and idiomatic web session management with pluggable backends. * [jwt](https://github.com/robbert229/jwt) - Clean and easy to use implementation of JSON Web Tokens (JWT). * [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. +* [jwt](https://github.com/cristalhq/jwt) - Safe, simple and fast JSON Web Tokens for Go. * [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. * [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. From bfb707cc9c08941b27f602abd2a39eac01847d43 Mon Sep 17 00:00:00 2001 From: Oleg Kovalov Date: Sun, 2 Aug 2020 22:33:44 +0200 Subject: [PATCH 2046/3440] add cristalhq/aconfig (#3184) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7304c5e0e25..ee73d0b20d0 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for configuration parsing.* +* [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader. * [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). * [config](https://github.com/golobby/config) - A lightweight yet powerful config package for Go projects. * [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. From 71c0f6ba15189bd035d026660ed11e3edfab2ecf Mon Sep 17 00:00:00 2001 From: Alexander Sniffin Date: Mon, 3 Aug 2020 06:10:00 -0400 Subject: [PATCH 2047/3440] Add gosd (#3190) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ee73d0b20d0..58aad75bc1e 100644 --- a/README.md +++ b/README.md @@ -1137,6 +1137,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple. * [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). +* [gosd](https://github.com/alexsniffin/gosd) - A library for scheduling when to dispatch a message to a channel. * [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. * [hub](https://github.com/leandro-lugaresi/hub) - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. * [jazz](https://github.com/socifi/jazz) - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. From 05b33db78e299874fbec108edc76273a1ddac3ea Mon Sep 17 00:00:00 2001 From: Rene Kroon Date: Tue, 4 Aug 2020 11:46:28 +0200 Subject: [PATCH 2048/3440] Update main location and description of ttlcache (#3186) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Kroon --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 58aad75bc1e..db5f3d15a03 100644 --- a/README.md +++ b/README.md @@ -400,7 +400,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. * [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. * [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. +* [ttlcache](https://github.com/ReneKroon/ttlcache) - In-memory string-interface{} cache with various time-based expiration options and callbacks. * [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. * [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. From 6929d7036db98592fefab5243c293df9aa510697 Mon Sep 17 00:00:00 2001 From: Andrey Kuzmin Date: Tue, 4 Aug 2020 12:56:34 +0300 Subject: [PATCH 2049/3440] Add nan. (#3192) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index db5f3d15a03..3a3d33e5244 100644 --- a/README.md +++ b/README.md @@ -387,6 +387,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. +* [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. * [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. * [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. From bd067087f648077156a0c644a138740a418dfe8b Mon Sep 17 00:00:00 2001 From: Vyacheslav Pryimak Date: Tue, 4 Aug 2020 19:51:03 +0300 Subject: [PATCH 2050/3440] Add goimports-reviser (#3195) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3a3d33e5244..ddd49156394 100644 --- a/README.md +++ b/README.md @@ -2231,6 +2231,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [gocode](https://github.com/nsf/gocode) - Autocompletion daemon for the Go programming language. +* [goimports-reviser](https://github.com/incu6us/goimports-reviser) - Formatting tool for imports. * [goprofiling](https://marketplace.visualstudio.com/items?itemName=MaxMedia.go-prof) - This extension adds benchmark profiling support for the Go language to VS Code. * [GoSublime](https://github.com/DisposaBoy/GoSublime) - Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features. * [gounit-vim](https://github.com/hexdigest/gounit-vim) - Vim plugin for generating Go tests based on the function's or method's signature. From 1d48e5fe17727af522a9f1954306e39ea0e823ce Mon Sep 17 00:00:00 2001 From: kenkyu392 <57144941+kenkyu392@users.noreply.github.com> Date: Wed, 5 Aug 2020 01:54:02 +0900 Subject: [PATCH 2051/3440] Add go-safe (#3197) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddd49156394..207da4234d2 100644 --- a/README.md +++ b/README.md @@ -1908,6 +1908,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-lock](https://github.com/viney-shih/go-lock) - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation. * [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. * [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. +* [go-safe](https://github.com/kenkyu392/go-safe) - Panic-safe sandbox. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. From 53d71a4af7022feea18490ed1099f32725e8fcf6 Mon Sep 17 00:00:00 2001 From: Henry Sarabia Date: Fri, 7 Aug 2020 13:15:44 -0700 Subject: [PATCH 2052/3440] Add kanka (#3201) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 207da4234d2..d6e562a1538 100644 --- a/README.md +++ b/README.md @@ -1830,6 +1830,7 @@ 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. * [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). +* [kanka](https://github.com/Henry-Sarabia/kanka) - Go client for the [Kanka API](https://kanka.io/en-US/docs/1.0). * [lastpass-go](https://github.com/ansd/lastpass-go) - Go client library for the [LastPass](https://www.lastpass.com/) API. * [libgoffi](https://github.com/clevabit/libgoffi) - Library adapter toolbox for native [libffi](http://sourceware.org/libffi/) integration * [Medium](https://github.com/Medium/medium-sdk-go) - Golang SDK for Medium's OAuth2 API. From b13a9569332ff2f8baa237e70130824e4bec75bf Mon Sep 17 00:00:00 2001 From: Johannes Kaufmann Date: Sat, 8 Aug 2020 12:28:11 +0200 Subject: [PATCH 2053/3440] add html-to-markdown (#3200) * add html-to-markdown to README.md * change order slightly --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d6e562a1538..293ca5398ee 100644 --- a/README.md +++ b/README.md @@ -1749,6 +1749,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goribot](https://github.com/zhshch2002/goribot) - A simple golang spider/scraping framework,build a spider in 3 lines. * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. + * [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. * [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. * [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. * [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. From fa4a9381625bcc4fa3706597e701d852f12ca3a4 Mon Sep 17 00:00:00 2001 From: Yaya Liu Date: Mon, 10 Aug 2020 17:57:53 +0800 Subject: [PATCH 2054/3440] Remove not found library (#3205) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 293ca5398ee..0c35c2f3956 100644 --- a/README.md +++ b/README.md @@ -712,7 +712,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. * [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. -* [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. ## File Handling From d71054df98368989cde67b094c819cdf10e8b33d Mon Sep 17 00:00:00 2001 From: Tony Kappen <32112423+mrKappen@users.noreply.github.com> Date: Mon, 10 Aug 2020 13:53:59 -0400 Subject: [PATCH 2055/3440] Update README.md (#3207) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c35c2f3956..ba2c16b6ee0 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ## Sponsorships > [![GitAds Support](https://images.gitads.io/awesome-go)](https://tracking.gitads.io/?repo=awesome-go) -**We have no monthly cost**_, but we have employees **hard working** to maintain the Awesome Go, with money raised we can repay the effort of each person involved! All billing and distribution will be open to the entire community._ +**We have no monthly cost**_, but we have employees **working hard** to maintain the Awesome Go, with money raised we can repay the effort of each person involved! All billing and distribution will be open to the entire community._ A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 05835de8c030936dd920a974dbc1850c3e57c697 Mon Sep 17 00:00:00 2001 From: jiangz222 Date: Tue, 11 Aug 2020 08:59:13 +0800 Subject: [PATCH 2056/3440] Add qiniu/qmgo (#3206) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ba2c16b6ee0..bdab3da1129 100644 --- a/README.md +++ b/README.md @@ -552,6 +552,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. + * [qmgo](https://github.com/qiniu/qmgo) - The MongoDB dirver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. * [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. * [redigo](https://github.com/gomodule/redigo) - Redigo is a Go client for the Redis database. * [redis](https://github.com/go-redis/redis) - Redis client for Golang. From 3e05ccedaba4b409c0e593da59b3e95b749d5a13 Mon Sep 17 00:00:00 2001 From: Eugene R Date: Tue, 11 Aug 2020 12:22:39 +0300 Subject: [PATCH 2057/3440] add go-quartz (#3188) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bdab3da1129..f530937de19 100644 --- a/README.md +++ b/README.md @@ -986,6 +986,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [clockwerk](http://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. * [clockwork](https://github.com/whiteShtef/clockwork) - Simple and intuitive job scheduling library in Go. * [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. * [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. From bfff11de317c19238c797a71cba2ef819760e0d9 Mon Sep 17 00:00:00 2001 From: Denis Sedchenko Date: Wed, 12 Aug 2020 17:13:06 +0300 Subject: [PATCH 2058/3440] Add "Better Go Playground" service (#3199) * add 'Better Go Playground' * Fix alphabetical ordering to fix Travis build --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f530937de19..9cff065df04 100644 --- a/README.md +++ b/README.md @@ -2347,6 +2347,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### Other Software +* [Better Go Playground](https://goplay.tools) - Go playground with syntax highlight, code completion and other features. * [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. From 6e78fdf9ecbaba926977042c52c6f7a11040fad9 Mon Sep 17 00:00:00 2001 From: Nicola Murino Date: Wed, 12 Aug 2020 16:31:36 +0200 Subject: [PATCH 2059/3440] update SFTPGo description (#3209) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9cff065df04..d181cd4d09a 100644 --- a/README.md +++ b/README.md @@ -1593,7 +1593,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [psql-streamer](https://github.com/blind-oracle/psql-streamer) - Stream database events from PostgreSQL to Kafka. * [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. -* [SFTPGo](https://github.com/drakkan/sftpgo) - Full featured and highly configurable SFTP server software. +* [SFTPGo](https://github.com/drakkan/sftpgo) - Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support. It can serve local filesystem and Cloud Storage backends such as S3 and Google Cloud Storage. * [Trickster](https://github.com/tricksterproxy/trickster) - HTTP reverse proxy cache and time series accelerator. From 97ac5ade358b3c55cd7ccecc4e6c280398030120 Mon Sep 17 00:00:00 2001 From: vixentael Date: Thu, 13 Aug 2020 13:41:57 +0300 Subject: [PATCH 2060/3440] Add Themis crypto library to Security (#3208) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d181cd4d09a..a542a50a671 100644 --- a/README.md +++ b/README.md @@ -1547,6 +1547,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [sslmgr](https://github.com/adrianosela/sslmgr) - SSL certificates made easy with a high level wrapper around acme/autocert. +* [themis](https://github.com/cossacklabs/themis) - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps. + ## Serialization From dbfab1fa6fa7e8e7a4d9842ffe044b5a3a7a6c4a Mon Sep 17 00:00:00 2001 From: Georgy Savva Date: Thu, 13 Aug 2020 13:42:51 +0300 Subject: [PATCH 2061/3440] Add scany to utilities section (#3179) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a542a50a671..51a01d97e25 100644 --- a/README.md +++ b/README.md @@ -1985,6 +1985,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. * [scan](https://github.com/blockloop/scan) - Scan golang `sql.Rows` directly to structs, slices, or primitive types. +* [scany](https://github.com/georgysavva/scany) - Library for scanning data from a database into Go structs and more. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. * [shutdown](https://github.com/ztrue/shutdown) - App shutdown hooks for `os.Signal` handling. * [silk](https://github.com/chrispassas/silk) - Read silk netflow files. From 457c85b66c7e6d3145d89f1df3bcb0c261bef8c3 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 13 Aug 2020 15:09:39 -0300 Subject: [PATCH 2062/3440] DO new awesome-go supporting ref: #3211 (to droplets) @digitalocean big thanks: https://twitter.com/avelinorun/status/1293969216417214466 Signed-off-by: Avelino --- README.md | 171 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 99 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index 51a01d97e25..3c86713baf6 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) ## Sponsorships +> [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) > [![GitAds Support](https://images.gitads.io/awesome-go)](https://tracking.gitads.io/?repo=awesome-go) **We have no monthly cost**_, but we have employees **working hard** to maintain the Awesome Go, with money raised we can repay the effort of each person involved! All billing and distribution will be open to the entire community._ @@ -18,78 +19,104 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ### Contents - [Awesome Go](#awesome-go) - - [Audio and Music](#audio-and-music) - - [Authentication and OAuth](#authentication-and-oauth) - - [Bot Building](#bot-building) - - [Command Line](#command-line) - - [Configuration](#configuration) - - [Continuous Integration](#continuous-integration) - - [CSS Preprocessors](#css-preprocessors) - - [Data Structures](#data-structures) - - [Database](#database) - - [Database Drivers](#database-drivers) - - [Date and Time](#date-and-time) - - [Distributed Systems](#distributed-systems) - - [Dynamic DNS](#dynamic-dns) - - [Email](#email) - - [Embeddable Scripting Languages](#embeddable-scripting-languages) - - [Error Handling](#error-handling) - - [File Handling](#file-handling) - - [Financial](#financial) - - [Forms](#forms) - - [Functional](#functional) - - [Game Development](#game-development) - - [Generation and Generics](#generation-and-generics) - - [Geographic](#geographic) - - [Go Compilers](#go-compilers) - - [Goroutines](#goroutines) - - [GUI](#gui) - - [Hardware](#hardware) - - [Images](#images) - - [IoT](#iot-internet-of-things) - - [Job Scheduler](#job-scheduler) - - [JSON](#json) - - [Logging](#logging) - - [Machine Learning](#machine-learning) - - [Messaging](#messaging) - - [Microsoft Office](#microsoft-office) - - [Microsoft Excel](#microsoft-excel) - - [Miscellaneous](#miscellaneous) - - [Dependency Injection](#dependency-injection) - - [Project Layout](#project-layout) - - [Strings](#strings) - - [Uncategorized](#uncategorized) - - [Natural Language Processing](#natural-language-processing) - - [Networking](#networking) - - [HTTP Clients](#http-clients) - - [OpenGL](#opengl) - - [ORM](#orm) - - [Package Management](#package-management) - - [Performance](#performance) - - [Query Language](#query-language) - - [Resource Embedding](#resource-embedding) - - [Science and Data Analysis](#science-and-data-analysis) - - [Security](#security) - - [Serialization](#serialization) - - [Server Applications](#server-applications) - - [Stream Processing](#stream-processing) - - [Template Engines](#template-engines) - - [Testing](#testing) - - [Text Processing](#text-processing) - - [Third-party APIs](#third-party-apis) - - [Utilities](#utilities) - - [UUID](#uuid) - - [Validation](#validation) - - [Version Control](#version-control) - - [Video](#video) - - [Web Frameworks](#web-frameworks) - - [Middlewares](#middlewares) - - [Actual middlewares](#actual-middlewares) - - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) - - [Routers](#routers) - - [WebAssembly](#webassembly) - - [Windows](#windows) - - [XML](#xml) + - [Sponsorships](#sponsorships) + - [Contributing](#contributing) + - [*If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!*](#if-you-see-a-package-or-project-here-that-is-no-longer-maintained-or-is-not-a-good-fit-please-submit-a-pull-request-to-improve-this-file-thank-you) + - [Contents](#contents) + - [Audio and Music](#audio-and-music) + - [Authentication and OAuth](#authentication-and-oauth) + - [Bot Building](#bot-building) + - [Command Line](#command-line) + - [Standard CLI](#standard-cli) + - [Advanced Console UIs](#advanced-console-uis) + - [Configuration](#configuration) + - [Continuous Integration](#continuous-integration) + - [CSS Preprocessors](#css-preprocessors) + - [Data Structures](#data-structures) + - [Database](#database) + - [Database Drivers](#database-drivers) + - [Date and Time](#date-and-time) + - [Distributed Systems](#distributed-systems) + - [Dynamic DNS](#dynamic-dns) + - [Email](#email) + - [Embeddable Scripting Languages](#embeddable-scripting-languages) + - [Error Handling](#error-handling) + - [File Handling](#file-handling) + - [Financial](#financial) + - [Forms](#forms) + - [Functional](#functional) + - [Game Development](#game-development) + - [Generation and Generics](#generation-and-generics) + - [Geographic](#geographic) + - [Go Compilers](#go-compilers) + - [Goroutines](#goroutines) + - [GUI](#gui) + - [Hardware](#hardware) + - [Images](#images) + - [IoT (Internet of Things)](#iot-internet-of-things) + - [Job Scheduler](#job-scheduler) + - [JSON](#json) + - [Logging](#logging) + - [Machine Learning](#machine-learning) + - [Messaging](#messaging) + - [Microsoft Office](#microsoft-office) + - [Microsoft Excel](#microsoft-excel) + - [Miscellaneous](#miscellaneous) + - [Dependency Injection](#dependency-injection) + - [Project Layout](#project-layout) + - [Strings](#strings) + - [Uncategorized](#uncategorized) + - [Natural Language Processing](#natural-language-processing) + - [Networking](#networking) + - [HTTP Clients](#http-clients) + - [OpenGL](#opengl) + - [ORM](#orm) + - [Package Management](#package-management) + - [Performance](#performance) + - [Query Language](#query-language) + - [Resource Embedding](#resource-embedding) + - [Science and Data Analysis](#science-and-data-analysis) + - [Security](#security) + - [Serialization](#serialization) + - [Server Applications](#server-applications) + - [Stream Processing](#stream-processing) + - [Template Engines](#template-engines) + - [Testing](#testing) + - [Text Processing](#text-processing) + - [Third-party APIs](#third-party-apis) + - [Utilities](#utilities) + - [UUID](#uuid) + - [Validation](#validation) + - [Version Control](#version-control) + - [Video](#video) + - [Web Frameworks](#web-frameworks) + - [Middlewares](#middlewares) + - [Actual middlewares](#actual-middlewares) + - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) + - [Routers](#routers) + - [WebAssembly](#webassembly) + - [Windows](#windows) + - [XML](#xml) +- [Tools](#tools) + - [Code Analysis](#code-analysis) + - [Editor Plugins](#editor-plugins) + - [Go Generate Tools](#go-generate-tools) + - [Go Tools](#go-tools) + - [Software Packages](#software-packages) + - [DevOps Tools](#devops-tools) + - [Other Software](#other-software) +- [Resources](#resources) + - [Benchmarks](#benchmarks) + - [Conferences](#conferences) + - [E-Books](#e-books) + - [Gophers](#gophers) + - [Meetups](#meetups) + - [Style Guides](#style-guides) + - [Social Media](#social-media) + - [Twitter](#twitter) + - [Reddit](#reddit) + - [Websites](#websites) + - [Tutorials](#tutorials) - [Tools](#tools) - [Code Analysis](#code-analysis) From d344c77e30e4d30588a3dc24b3a032187e6807e0 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 13 Aug 2020 15:36:31 -0300 Subject: [PATCH 2063/3440] fix editor auto lint problem, sorry Signed-off-by: Avelino --- README.md | 174 +++++++++++++++++++++++------------------------------- 1 file changed, 74 insertions(+), 100 deletions(-) diff --git a/README.md b/README.md index 3c86713baf6..98d461cec86 100644 --- a/README.md +++ b/README.md @@ -19,104 +19,78 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ### Contents - [Awesome Go](#awesome-go) - - [Sponsorships](#sponsorships) - - [Contributing](#contributing) - - [*If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!*](#if-you-see-a-package-or-project-here-that-is-no-longer-maintained-or-is-not-a-good-fit-please-submit-a-pull-request-to-improve-this-file-thank-you) - - [Contents](#contents) - - [Audio and Music](#audio-and-music) - - [Authentication and OAuth](#authentication-and-oauth) - - [Bot Building](#bot-building) - - [Command Line](#command-line) - - [Standard CLI](#standard-cli) - - [Advanced Console UIs](#advanced-console-uis) - - [Configuration](#configuration) - - [Continuous Integration](#continuous-integration) - - [CSS Preprocessors](#css-preprocessors) - - [Data Structures](#data-structures) - - [Database](#database) - - [Database Drivers](#database-drivers) - - [Date and Time](#date-and-time) - - [Distributed Systems](#distributed-systems) - - [Dynamic DNS](#dynamic-dns) - - [Email](#email) - - [Embeddable Scripting Languages](#embeddable-scripting-languages) - - [Error Handling](#error-handling) - - [File Handling](#file-handling) - - [Financial](#financial) - - [Forms](#forms) - - [Functional](#functional) - - [Game Development](#game-development) - - [Generation and Generics](#generation-and-generics) - - [Geographic](#geographic) - - [Go Compilers](#go-compilers) - - [Goroutines](#goroutines) - - [GUI](#gui) - - [Hardware](#hardware) - - [Images](#images) - - [IoT (Internet of Things)](#iot-internet-of-things) - - [Job Scheduler](#job-scheduler) - - [JSON](#json) - - [Logging](#logging) - - [Machine Learning](#machine-learning) - - [Messaging](#messaging) - - [Microsoft Office](#microsoft-office) - - [Microsoft Excel](#microsoft-excel) - - [Miscellaneous](#miscellaneous) - - [Dependency Injection](#dependency-injection) - - [Project Layout](#project-layout) - - [Strings](#strings) - - [Uncategorized](#uncategorized) - - [Natural Language Processing](#natural-language-processing) - - [Networking](#networking) - - [HTTP Clients](#http-clients) - - [OpenGL](#opengl) - - [ORM](#orm) - - [Package Management](#package-management) - - [Performance](#performance) - - [Query Language](#query-language) - - [Resource Embedding](#resource-embedding) - - [Science and Data Analysis](#science-and-data-analysis) - - [Security](#security) - - [Serialization](#serialization) - - [Server Applications](#server-applications) - - [Stream Processing](#stream-processing) - - [Template Engines](#template-engines) - - [Testing](#testing) - - [Text Processing](#text-processing) - - [Third-party APIs](#third-party-apis) - - [Utilities](#utilities) - - [UUID](#uuid) - - [Validation](#validation) - - [Version Control](#version-control) - - [Video](#video) - - [Web Frameworks](#web-frameworks) - - [Middlewares](#middlewares) - - [Actual middlewares](#actual-middlewares) - - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) - - [Routers](#routers) - - [WebAssembly](#webassembly) - - [Windows](#windows) - - [XML](#xml) -- [Tools](#tools) - - [Code Analysis](#code-analysis) - - [Editor Plugins](#editor-plugins) - - [Go Generate Tools](#go-generate-tools) - - [Go Tools](#go-tools) - - [Software Packages](#software-packages) - - [DevOps Tools](#devops-tools) - - [Other Software](#other-software) -- [Resources](#resources) - - [Benchmarks](#benchmarks) - - [Conferences](#conferences) - - [E-Books](#e-books) - - [Gophers](#gophers) - - [Meetups](#meetups) - - [Style Guides](#style-guides) - - [Social Media](#social-media) - - [Twitter](#twitter) - - [Reddit](#reddit) - - [Websites](#websites) - - [Tutorials](#tutorials) + - [Audio and Music](#audio-and-music) + - [Authentication and OAuth](#authentication-and-oauth) + - [Bot Building](#bot-building) + - [Command Line](#command-line) + - [Configuration](#configuration) + - [Continuous Integration](#continuous-integration) + - [CSS Preprocessors](#css-preprocessors) + - [Data Structures](#data-structures) + - [Database](#database) + - [Database Drivers](#database-drivers) + - [Date and Time](#date-and-time) + - [Distributed Systems](#distributed-systems) + - [Dynamic DNS](#dynamic-dns) + - [Email](#email) + - [Embeddable Scripting Languages](#embeddable-scripting-languages) + - [Error Handling](#error-handling) + - [File Handling](#file-handling) + - [Financial](#financial) + - [Forms](#forms) + - [Functional](#functional) + - [Game Development](#game-development) + - [Generation and Generics](#generation-and-generics) + - [Geographic](#geographic) + - [Go Compilers](#go-compilers) + - [Goroutines](#goroutines) + - [GUI](#gui) + - [Hardware](#hardware) + - [Images](#images) + - [IoT](#iot-internet-of-things) + - [Job Scheduler](#job-scheduler) + - [JSON](#json) + - [Logging](#logging) + - [Machine Learning](#machine-learning) + - [Messaging](#messaging) + - [Microsoft Office](#microsoft-office) + - [Microsoft Excel](#microsoft-excel) + - [Miscellaneous](#miscellaneous) + - [Dependency Injection](#dependency-injection) + - [Project Layout](#project-layout) + - [Strings](#strings) + - [Uncategorized](#uncategorized) + - [Natural Language Processing](#natural-language-processing) + - [Networking](#networking) + - [HTTP Clients](#http-clients) + - [OpenGL](#opengl) + - [ORM](#orm) + - [Package Management](#package-management) + - [Performance](#performance) + - [Query Language](#query-language) + - [Resource Embedding](#resource-embedding) + - [Science and Data Analysis](#science-and-data-analysis) + - [Security](#security) + - [Serialization](#serialization) + - [Server Applications](#server-applications) + - [Stream Processing](#stream-processing) + - [Template Engines](#template-engines) + - [Testing](#testing) + - [Text Processing](#text-processing) + - [Third-party APIs](#third-party-apis) + - [Utilities](#utilities) + - [UUID](#uuid) + - [Validation](#validation) + - [Version Control](#version-control) + - [Video](#video) + - [Web Frameworks](#web-frameworks) + - [Middlewares](#middlewares) + - [Actual middlewares](#actual-middlewares) + - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) + - [Routers](#routers) + - [WebAssembly](#webassembly) + - [Windows](#windows) + - [XML](#xml) - [Tools](#tools) - [Code Analysis](#code-analysis) @@ -2246,7 +2220,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. * [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. -* [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. +* [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) -Adds zero-value return statements to match the func return types. * [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. * [lint](https://github.com/surullabs/lint) - Run linters as part of go test. @@ -2651,4 +2625,4 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. -* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. +* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. From 502ac52b67d9c66c88317088e2b9a91254ed4c07 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 13 Aug 2020 15:45:04 -0300 Subject: [PATCH 2064/3440] fixed goreturns typo Signed-off-by: Avelino --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 98d461cec86..26dc5430e2f 100644 --- a/README.md +++ b/README.md @@ -2220,7 +2220,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. * [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. -* [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) -Adds zero-value return statements to match the func return types. +* [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [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. * [lint](https://github.com/surullabs/lint) - Run linters as part of go test. From 28db8d82ad33a29e282173664fbd75f79c7c583b Mon Sep 17 00:00:00 2001 From: Neil O'Toole Date: Tue, 18 Aug 2020 13:05:28 -0600 Subject: [PATCH 2065/3440] Add neilotoole/errgroup to Goroutines section (#3202) * Add neilotoole/errgroup to Goroutines section * neilotoole/errgroup entry had been alphabetized by the E in errgroup, instead of the N --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 26dc5430e2f..0f80a9ec8b8 100644 --- a/README.md +++ b/README.md @@ -870,6 +870,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [hands](https://github.com/duanckham/hands) - A process controller used to control the execution and return strategies of multiple goroutines. * [Hunch](https://github.com/AaronJan/Hunch) - Hunch provides functions like: `All`, `First`, `Retry`, `Waterfall` etc., that makes asynchronous flow control more intuitive. * [kyoo](https://github.com/dirkaholic/kyoo) - Provides an unlimited job queue and concurrent worker pools. +* [neilotoole/errgroup](https://github.com/neilotoole/errgroup) - Drop-in alternative to `sync/errgroup`, limited to a pool of N worker goroutines. * [nursery](https://github.com/arunsworld/nursery) - Structured concurrency in Go. * [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. * [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. From d038b38b0f93cf02b062d4b80bb9041482a0244d Mon Sep 17 00:00:00 2001 From: Danny Hadley Date: Mon, 24 Aug 2020 09:59:48 -0400 Subject: [PATCH 2066/3440] update marlow (#3216) the marlow code generation cli was moved into it's own github organization; the hope being that this would encourage people interested in the project to take ownership of it. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0f80a9ec8b8..a45d47517a2 100644 --- a/README.md +++ b/README.md @@ -1414,7 +1414,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. * [grimoire](https://github.com/Fs02/grimoire) - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3). * [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. -* [Marlow](https://github.com/dadleyy/marlow) - Generated ORM from project structs for compile time safety assurances. +* [marlow](https://github.com/marlow/marlow) - Generated ORM from project structs for compile time safety assurances. * [pop/soda](https://github.com/gobuffalo/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. From f37e05dd4ea9204f00f90186fae4c8fa1bac56f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Bustarret?= Date: Mon, 24 Aug 2020 16:00:43 +0200 Subject: [PATCH 2067/3440] add cocoonspace/dynjson (#3215) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a45d47517a2..06a393e2a4a 100644 --- a/README.md +++ b/README.md @@ -1000,6 +1000,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with JSON.* * [ajson](https://github.com/spyzhov/ajson) - Abstract JSON for golang with JSONPath support. +* [dynjson](https://github.com/cocoonspace/dynjson) - Client-customizable JSON formats for dynamic APIs. * [ej](https://github.com/lucassscaravelli/ej) - Write and read JSON from different sources succinctly. * [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. * [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. From 25336298d1bed9141b2f81bc4d930b58a22e10ca Mon Sep 17 00:00:00 2001 From: Navid Date: Mon, 24 Aug 2020 14:13:53 +0000 Subject: [PATCH 2068/3440] Add goterator (#3212) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06a393e2a4a..206ec3f35e7 100644 --- a/README.md +++ b/README.md @@ -379,6 +379,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. * [gostl](https://github.com/liyue201/gostl) - Data structure and algorithm library for go, designed to provide functions similar to C++ STL. * [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. +* [goterator](https://github.com/yaa110/goterator) - Iterator implementation to provide map and reduce functionalities. * [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. * [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. From 9a74ed6b9a518bc42992a56cee2a0eea38bc092a Mon Sep 17 00:00:00 2001 From: Prince Sumberia Date: Wed, 26 Aug 2020 23:27:42 +0530 Subject: [PATCH 2069/3440] Remove Dead Links (#3222) Links were returning 404. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 206ec3f35e7..dc574efa26f 100644 --- a/README.md +++ b/README.md @@ -432,7 +432,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. * [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 Go. -* [gorocksdb](https://github.com/kapitan-k/gorocksdb) - Gorocksdb is a wrapper for [RocksDB](https://rocksdb.org) written in Go. * [gostore](https://github.com/twharmon/gostore) - Gostore is a simple, durable, embedded key-value storage engine written in 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. @@ -1338,7 +1337,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [gosocsvr](https://github.com/rakeki/gosocsvr) - Socket server made simple. * [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. From 6398577727358ca2ec2acfd38e90679fbd02cd81 Mon Sep 17 00:00:00 2001 From: moshebe Date: Wed, 26 Aug 2020 21:27:03 +0300 Subject: [PATCH 2070/3440] Add Gebug (#3180) Gebug - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dc574efa26f..1725fdda6fd 100644 --- a/README.md +++ b/README.md @@ -2365,6 +2365,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dp](https://github.com/scryinfo/dp) - Through SDK for data exchange with blockchain, developers can get easy access to DAPP development. * [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. * [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. +* [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. * [gfile](https://github.com/Antonito/gfile) - Securely transfer files between two computers, without any third party, over WebRTC. * [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. * [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. From cb5c66cec1899dea6a000e3fc1e54fde82bb5f6b Mon Sep 17 00:00:00 2001 From: Bojan Zivanovic Date: Fri, 28 Aug 2020 22:24:53 +0200 Subject: [PATCH 2071/3440] Add bojanz/currency. (#3219) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1725fdda6fd..069941e063e 100644 --- a/README.md +++ b/README.md @@ -745,6 +745,7 @@ 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. +* [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. * [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. * [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. From 3e24e1e77e328a0a12b6d33381019ae678afefd5 Mon Sep 17 00:00:00 2001 From: Roger Ng Date: Sat, 29 Aug 2020 04:26:40 +0800 Subject: [PATCH 2072/3440] Update from facebookincubator/ent to facebook/ent (#3220) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 069941e063e..aef5515e792 100644 --- a/README.md +++ b/README.md @@ -1403,7 +1403,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries that implement Object-Relational Mapping or datamapping techniques.* * [beego orm](https://github.com/astaxie/beego/tree/master/orm) - Powerful orm framework for go. Support: pq/mysql/sqlite3. -* [ent](https://github.com/facebookincubator/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. +* [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. * [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. * [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. * [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. From 380ea6827e79265cd82c2012ebdbb24fb1b41bad Mon Sep 17 00:00:00 2001 From: Benno Date: Mon, 31 Aug 2020 22:22:35 +0800 Subject: [PATCH 2073/3440] Add covergates - Self-hosted code coverage report review and management service (#3218) * Add covergates - Self-hosted code coverage report review and management service * fix typo --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index aef5515e792..e68044457cf 100644 --- a/README.md +++ b/README.md @@ -1646,6 +1646,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. * [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. * [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. + * [covergates](https://github.com/covergates/covergates) - Self-hosted code coverage report review and management service. * [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. @@ -2353,7 +2354,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### Other Software -* [Better Go Playground](https://goplay.tools) - Go playground with syntax highlight, code completion and other features. +* [Better Go Playground](https://goplay.tools) - Go playground with syntax highlight, code completion and other features. * [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. @@ -2628,4 +2629,4 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. -* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. +* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. From 988a8e920ab0ce92b44b4503eb80114603f20430 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 3 Sep 2020 05:32:51 -0300 Subject: [PATCH 2074/3440] GitAds remove --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e68044457cf..611421dcc61 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ ## Sponsorships > [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) -> [![GitAds Support](https://images.gitads.io/awesome-go)](https://tracking.gitads.io/?repo=awesome-go) **We have no monthly cost**_, but we have employees **working hard** to maintain the Awesome Go, with money raised we can repay the effort of each person involved! All billing and distribution will be open to the entire community._ From e6e505c27ac83db847abf74b06ead0c8d4c68f4b Mon Sep 17 00:00:00 2001 From: Muhammad Hamza Farrukh Date: Sat, 5 Sep 2020 06:35:07 -0400 Subject: [PATCH 2075/3440] Updated vscode-go link (#3240) vscode-go moved from /Microsoft to /golang --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 611421dcc61..67b08c2f175 100644 --- a/README.md +++ b/README.md @@ -2248,7 +2248,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [theia-go-extension](https://github.com/theia-ide/theia-go-extension) - Go language support for the Theia IDE. * [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - Vim plugin to highlight syntax errors on save. * [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. -* [vscode-go](https://github.com/Microsoft/vscode-go) - Extension for Visual Studio Code (VS Code) which provides support for the Go language. +* [vscode-go](https://github.com/golang/vscode-go) - Extension for Visual Studio Code (VS Code) which provides support for the Go language. * [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. ## Go Generate Tools From 4489bee6f2c3ccd89cb54ff35f85434ff871f485 Mon Sep 17 00:00:00 2001 From: Enes Furkan Olcay Date: Tue, 8 Sep 2020 01:20:27 +0300 Subject: [PATCH 2076/3440] edit baraka description (#3241) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 67b08c2f175..ba085a7c923 100644 --- a/README.md +++ b/README.md @@ -720,7 +720,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. * [afs](https://github.com/viant/afs) - Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go. -* [baraka](https://github.com/xis/baraka) - A library for handling file uploads, simple, memory-friendly. +* [baraka](https://github.com/xis/baraka) - A library to process http file uploads easily. * [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client. * [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5 and SHA256, for large files. * [copy](https://github.com/otiai10/copy) - Copy directory recursively. From 143db90370e046fc9b622b5b0eb414c44c9932f9 Mon Sep 17 00:00:00 2001 From: Hugo Bollon Date: Fri, 11 Sep 2020 18:19:25 +0200 Subject: [PATCH 2077/3440] Add hbollon/go-edlib library link (#3242) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ba085a7c923..9a8456a8d65 100644 --- a/README.md +++ b/README.md @@ -365,6 +365,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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-edlib](https://github.com/hbollon/go-edlib) - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode. * [go-ef](https://github.com/amallia/go-ef) - A Go implementation of the Elias-Fano encoding. * [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. * [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. From 714bcc3622551fe8cd4ccfaba425828bb3458b79 Mon Sep 17 00:00:00 2001 From: Pavlo Golub Date: Fri, 11 Sep 2020 18:20:56 +0200 Subject: [PATCH 2078/3440] Add pg_timetable to Database tools (#3239) * Add pg_timetable Github repo: https://github.com/cybertec-postgresql/pg_timetable License: MIT Coverage: https://coveralls.io/github/cybertec-postgresql/pg_timetable?branch=master Goreport: https://goreportcard.com/report/github.com/cybertec-postgresql/pg_timetable * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9a8456a8d65..2b7fff3cc45 100644 --- a/README.md +++ b/README.md @@ -484,6 +484,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Supports statement and row based replication. * [octillery](https://github.com/knocknote/octillery) - Go package for sharding databases ( Supports every ORM or raw SQL ). * [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer. +* [pg_timetable](https://github.com/cybertec-postgresql/pg_timetable) - Advanced scheduling for PostgreSQL. * [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. * [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code. * [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. From 37d667165130f9a252bb0ed80409c5de397ff736 Mon Sep 17 00:00:00 2001 From: Dmitriy Sviridov Date: Fri, 11 Sep 2020 19:21:41 +0300 Subject: [PATCH 2079/3440] Update README file to add go-email-normalizer library (#3237) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2b7fff3cc45..3cd6d0c6e9b 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [branca](https://github.com/hako/branca) - Golang implementation of Branca Tokens. * [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. * [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. +* [go-email-normalizer](https://github.com/dimuska139/go-email-normalizer) - Golang library for providing a canonical representation of email address. * [go-guardian](https://github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token and Certificate based authentication. * [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - Standalone, specification-compliant, OAuth2 server written in Golang. From 4441d6877504d8731bb64d482f12186d218dbe07 Mon Sep 17 00:00:00 2001 From: Muhammad Surya Date: Fri, 11 Sep 2020 23:23:14 +0700 Subject: [PATCH 2080/3440] add go-todo-backend-example (#3238) * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3cd6d0c6e9b..fc8e7a99bef 100644 --- a/README.md +++ b/README.md @@ -1204,6 +1204,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. +* [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. * [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates starter Go project layout. Lets you focus on business logic implemeted. From a77d8d947c3164fd04554b07107bb6ed13e358d5 Mon Sep 17 00:00:00 2001 From: Jose Torres Date: Fri, 11 Sep 2020 11:23:58 -0500 Subject: [PATCH 2081/3440] Update README file to add otpgo library. (#3236) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fc8e7a99bef..bc895c3fab1 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. +* [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. * [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [rbac](https://github.com/zpatrick/rbac) - Minimalistic RBAC package for Go applications. From 9b2c2185f43f9596a51173de2b7c9e98dfdf9df3 Mon Sep 17 00:00:00 2001 From: Enrico Date: Fri, 11 Sep 2020 18:25:08 +0200 Subject: [PATCH 2082/3440] Add github.com/pioz/faker package (#3235) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bc895c3fab1..34261c179e4 100644 --- a/README.md +++ b/README.md @@ -1235,6 +1235,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [captcha](https://github.com/steambap/captcha) - Package captcha provides an easy to use, unopinionated API for captcha generation. * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. +* [faker](https://github.com/pioz/faker) - Random fake data and struct generator for Go. * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, and Bitbucket. * [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool for Golang. From 71125b0fe039a34ace78fb24c7a79ca59c55d5d4 Mon Sep 17 00:00:00 2001 From: Roman Atachiants Date: Sat, 12 Sep 2020 00:25:40 +0800 Subject: [PATCH 2083/3440] Adding kelindar/tile (#3234) Hi folks, Here's one more tool for people to hopefully make more games in Go (and not only games). This is a general-purpose library for 2D grids with few algorithms implemented such as BFS, A* pathfinding, internal mini pub-sub for Observer pattern, and even some import/export functions. - github.com repo: https://github.com/kelindar/tile - pkg.go.dev: https://pkg.go.dev/github.com/kelindar/tile - goreportcard.com: https://goreportcard.com/report/github.com/kelindar/tile - coverage service link: https://coveralls.io/github/kelindar/tile (**96% coverage**) **Make sure that you've checked the boxes below before you submit PR:** - [x ] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added pkg.go.dev link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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 reviewing this! --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 34261c179e4..4d44a1546da 100644 --- a/README.md +++ b/README.md @@ -805,6 +805,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [prototype](https://github.com/gonutz/prototype) - Cross-platform (Windows/Linux/Mac) library for creating desktop games using a minimal API. * [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. +* [tile](https://github.com/kelindar/tile) - Data-oriented and cache-friendly 2D Grid library (TileMap), includes pathfinding, observers and import/export. ## Generation and Generics From 098e6dfbac41fb66f07105f773e3affb17459749 Mon Sep 17 00:00:00 2001 From: Septs Date: Sat, 12 Sep 2020 00:29:38 +0800 Subject: [PATCH 2084/3440] Replace otto to goja (#3230) otto, more than 2 years unmaintained. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d44a1546da..ffa523fc7d1 100644 --- a/README.md +++ b/README.md @@ -693,11 +693,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [goja](https://github.com/dop251/goja) - ECMAScript 5.1(+) implementation in Go. * [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. * [gval](https://github.com/PaesslerAG/gval) - A highly customizable expression language 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. * [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. From e026edcaff15c221dcfd9a763d869ba2a2e979de Mon Sep 17 00:00:00 2001 From: Nikhil Patel Date: Sun, 13 Sep 2020 21:09:05 +0530 Subject: [PATCH 2085/3440] Fix link to original GORM repository (#3246) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ffa523fc7d1..315dff2ceeb 100644 --- a/README.md +++ b/README.md @@ -1416,7 +1416,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-sql](https://github.com/rushteam/gosql) - A easy ORM for mysql. * [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. * [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. -* [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. +* [GORM](https://github.com/go-gorm/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. * [gormt](https://github.com/xxjwxc/gormt) - Mysql database to golang gorm struct. * [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. * [grimoire](https://github.com/Fs02/grimoire) - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3). From 16d74d3413a7fc43818195e81116107590261134 Mon Sep 17 00:00:00 2001 From: Bakhtiyor Ruziev <32102033+theruziev@users.noreply.github.com> Date: Mon, 14 Sep 2020 23:58:17 +0300 Subject: [PATCH 2086/3440] Update goose migration tool (#3247) Update to supported fork --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 315dff2ceeb..642761feca8 100644 --- a/README.md +++ b/README.md @@ -463,7 +463,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-fixtures](https://github.com/RichardKnop/go-fixtures) - Django style fixtures for Golang's excellent built-in database/sql library. * [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. * [gondolier](https://github.com/emvi/gondolier) - Database migration library using struct decorators. -* [goose](https://github.com/steinbacher/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. +* [goose](https://github.com/pressly/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/golang-migrate/migrate) - Database migrations. CLI and Golang library. * [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. From f3b7ae5006f729c59d73f01f8f181cd4ca0cbd87 Mon Sep 17 00:00:00 2001 From: Luca Sepe Date: Tue, 15 Sep 2020 20:09:31 +0200 Subject: [PATCH 2087/3440] Add modgv - Converts 'go mod graph' output into GraphViz's DOT language (#3248) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 642761feca8..3e36730398b 100644 --- a/README.md +++ b/README.md @@ -1454,6 +1454,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git. +* [modgv](https://github.com/lucasepe/modgv) - Converts 'go mod graph' output into Graphviz's DOT language. * [mvn-golang](https://github.com/raydac/mvn-golang) - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure. * [nut](https://github.com/jingweno/nut) - Vendor Go dependencies. * [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments. From d7372b3c80ea68e61e6265e9f94c4fe080f55901 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 16 Sep 2020 15:28:57 -0300 Subject: [PATCH 2088/3440] create stale PR workflow Signed-off-by: Avelino --- .github/workflows/stale.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/stale.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 00000000000..b69d2d7dd10 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,22 @@ +name: PR auto close, if you stay more than 8 days open + +on: + workflow_dispatch: + schedule: + - cron: '*/15 * * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-pr-message: > + This PR has been automatically marked as closed because it has not had + recent activity. They will wait 15 days for your interaction, after + that the PR will be closed. + Please read more in https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md + stale-pr-label: 'stale' + days-before-stale: 15 + days-before-close: 7 From 784a82729f5020abdd9f2843598bf98c68dc8c6c Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 16 Sep 2020 15:30:19 -0300 Subject: [PATCH 2089/3440] run once a day Signed-off-by: Avelino --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index b69d2d7dd10..96776191fdf 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,7 +3,7 @@ name: PR auto close, if you stay more than 8 days open on: workflow_dispatch: schedule: - - cron: '*/15 * * * *' + - cron: '0 0 * * *' jobs: stale: From 584d1411387cb5c9e9b1521b3fcc0ea1f8ce731e Mon Sep 17 00:00:00 2001 From: lesismal <40462947+lesismal@users.noreply.github.com> Date: Fri, 18 Sep 2020 02:12:52 +0800 Subject: [PATCH 2090/3440] Add lesismal/arpc (#3155) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3e36730398b..16c01c164a2 100644 --- a/README.md +++ b/README.md @@ -605,6 +605,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* +* [arpc](https://github.com/lesismal/arpc) - More effective network communication, support two-way-calling, notify, broadcast. * [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. * [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. * [consistenthash](https://github.com/mbrostami/consistenthash) - Consistent hashing with configurable replicas. From 00b2377a056afa64f00ef58a82375dce4c990404 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 22 Sep 2020 01:35:23 +0200 Subject: [PATCH 2091/3440] Update XORM: link & description (#3253) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 16c01c164a2..c92be324eab 100644 --- a/README.md +++ b/README.md @@ -1429,7 +1429,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rel](https://github.com/Fs02/rel) - Golang SQL Repository Layer for Clean (Onion) Architecture. * [SQLBoiler](https://github.com/volatiletech/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. -* [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. +* [XORM](https://gitea.com/xorm/xorm) - Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle). * [Zoom](https://github.com/albrow/zoom) - Blazing-fast datastore and querying engine built on Redis. ## Package Management From 4fb4e6e4c730a8e7f2fa4a6cac4d489325e167bd Mon Sep 17 00:00:00 2001 From: Tony Kappen <32112423+mrKappen@users.noreply.github.com> Date: Thu, 24 Sep 2020 17:21:00 -0400 Subject: [PATCH 2092/3440] WIP: test stale repositories (#3210) * fix typo in README.md fixes #3204 * #1446 implement test for stale repositories * fix #1446 * fixes #3211 added check if issue has not been previously opened * fixes #3211 add limit to number of issues created at a time * fixes #3211 reformat issue message * checks for dead links as well * fixes #3211 handle status code 302 and 301 * fixes #3211 handle status code 302 and 301 * fixes #3211 handle status code 302 and 301 * fixes #3211 test workflow * fixes #3211 test workflow * fixes #3211 test workflow again * fixes #3211 test workflow again * remove workflows and start over * re add workflow * apply review suggestions * add environment variable. modify workflow to run once a week * add check for archived repositories and reformat * reformat code to improve readability * reformat to improve readability * cause continue and not break if href not found * satisfy code climate requirements --- .github/workflows/run-check.yaml | 16 ++ .gitignore | 4 +- repo_test.go | 22 --- scripts.go | 29 ++++ test_stale_repositories.go | 281 +++++++++++++++++++++++++++++++ 5 files changed, 329 insertions(+), 23 deletions(-) create mode 100644 .github/workflows/run-check.yaml create mode 100644 scripts.go create mode 100644 test_stale_repositories.go diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml new file mode 100644 index 00000000000..7a758cb87ab --- /dev/null +++ b/.github/workflows/run-check.yaml @@ -0,0 +1,16 @@ +name: Check For Stale Repositories +on: + schedule: + - cron: '0 0 * * 0' +jobs: + build: + name: Running test + runs-on: ubuntu-latest + strategy: + matrix: + go: ['1.15.x'] + steps: + - shell: bash + env: + OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} + run: go get -t -v ./... && go run test_stale_repositories.go scripts.go \ No newline at end of file diff --git a/.gitignore b/.gitignore index 382fc505e6b..19305f8caac 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ awesome-go # Folders .idea -.vscode \ No newline at end of file +.vscode +test_stale_repositories_log +*.exe \ No newline at end of file diff --git a/repo_test.go b/repo_test.go index 19ac5d4aa2b..9b694fa1c93 100644 --- a/repo_test.go +++ b/repo_test.go @@ -1,7 +1,6 @@ package main import ( - "bytes" "io/ioutil" "os" "regexp" @@ -11,7 +10,6 @@ import ( "text/template" "github.com/PuerkitoBio/goquery" - "github.com/russross/blackfriday" gfm "github.com/shurcooL/github_flavored_markdown" ) @@ -97,26 +95,6 @@ func testList(t *testing.T, list *goquery.Selection) { }) } -func readme() []byte { - input, err := ioutil.ReadFile("./README.md") - if err != nil { - panic(err) - } - html := append([]byte(""), blackfriday.MarkdownCommon(input)...) - html = append(html, []byte("")...) - return html -} - -func startQuery() *goquery.Document { - buf := bytes.NewBuffer(readme()) - query, err := goquery.NewDocumentFromReader(buf) - if err != nil { - panic(err) - } - - return query -} - func checkAlphabeticOrder(t *testing.T, s *goquery.Selection) { items := s.Find("li > a:first-child").Map(func(_ int, li *goquery.Selection) string { return strings.ToLower(li.Text()) diff --git a/scripts.go b/scripts.go new file mode 100644 index 00000000000..1d0a260cb71 --- /dev/null +++ b/scripts.go @@ -0,0 +1,29 @@ +package main + +import ( + "bytes" + "fmt" + "io/ioutil" + + "github.com/PuerkitoBio/goquery" + "github.com/russross/blackfriday" +) + +func readme() []byte { + input, err := ioutil.ReadFile("./README.md") + if err != nil { + panic(err) + } + html := fmt.Sprintf("%s", blackfriday.MarkdownCommon(input)) + htmlByteArray := []byte(html) + return htmlByteArray +} + +func startQuery() *goquery.Document { + buf := bytes.NewBuffer(readme()) + query, err := goquery.NewDocumentFromReader(buf) + if err != nil { + panic(err) + } + return query +} diff --git a/test_stale_repositories.go b/test_stale_repositories.go new file mode 100644 index 00000000000..8eace2a6429 --- /dev/null +++ b/test_stale_repositories.go @@ -0,0 +1,281 @@ +package main + +import ( + "bytes" + "encoding/json" + "fmt" + "log" + "net/http" + "os" + "regexp" + "strings" + "text/template" + "time" + + "github.com/PuerkitoBio/goquery" + "golang.org/x/oauth2" +) + +const issueTemplate = ` +{{range .}} +- [ ] {{.}} +{{end}} +` + +var reGithubRepo = regexp.MustCompile("https://github.com/[a-zA-Z0-9-._]+/[a-zA-Z0-9-._]+$") +var githubGETREPO = "https://api.github.com/repos%s" +var githubGETCOMMITS = "https://api.github.com/repos%s/commits" +var githubPOSTISSUES = "https://api.github.com/repos/avelino/awesome-go/issues" +var awesomeGoGETISSUES = "http://api.github.com/repos/avelino/awesome-go/issues" //only returns open issues +var numberOfYears time.Duration = 1 + +const issueTitle = "Investigate repositories with more than 1 year without update" +const deadLinkMessage = " this repository might no longer exist! (status code >= 400 returned)" +const movedPermanently = " status code 301 received" +const status302 = " status code 302 received" +const archived = " repository has been archived" + +var delay time.Duration = 1 + +//LIMIT specifies the max number of repositories that are added in a single run of the script +var LIMIT = 10 +var ctr = 0 + +type tokenSource struct { + AccessToken string +} +type issue struct { + Title string `json:"title"` + Body string `json:"body"` +} +type repo struct { + Archived bool `json:"archived"` +} + +func (t *tokenSource) Token() (*oauth2.Token, error) { + token := &oauth2.Token{ + AccessToken: t.AccessToken, + } + return token, nil +} +func getRepositoriesFromBody(body string) []string { + links := strings.Split(body, "- ") + for idx, link := range links { + str := strings.ReplaceAll(link, "\r", "") + str = strings.ReplaceAll(str, "[ ]", "") + str = strings.ReplaceAll(str, "[x]", "") + str = strings.ReplaceAll(str, " ", "") + str = strings.ReplaceAll(str, "\n", "") + str = strings.ReplaceAll(str, deadLinkMessage, "") + str = strings.ReplaceAll(str, movedPermanently, "") + str = strings.ReplaceAll(str, status302, "") + str = strings.ReplaceAll(str, archived, "") + links[idx] = str + } + return links +} +func generateIssueBody(repositories []string) (string, error) { + var writer bytes.Buffer + t := template.New("issue") + temp, err := t.Parse(issueTemplate) + if err != nil { + log.Print("Failed to generate template") + return "", err + } + err = temp.Execute(&writer, repositories) + if err != nil { + log.Print("Failed to generate template") + return "", err + } + issueBody := writer.String() + return issueBody, nil +} +func createIssue(staleRepos []string, client *http.Client) { + if len(staleRepos) == 0 { + log.Print("NO STALE REPOSITORIES") + return + } + body, err := generateIssueBody(staleRepos) + if err != nil { + log.Print("Failed at CreateIssue") + return + } + newIssue := &issue{ + Title: issueTitle, + Body: body, + } + buf := new(bytes.Buffer) + json.NewEncoder(buf).Encode(newIssue) + req, err := http.NewRequest("POST", githubPOSTISSUES, buf) + if err != nil { + log.Print("Failed at CreateIssue") + return + } + client.Do(req) +} +func getAllFlaggedRepositories(client *http.Client, flaggedRepositories *map[string]bool) error { + req, err := http.NewRequest("GET", awesomeGoGETISSUES, nil) + if err != nil { + log.Print("Failed to get all issues") + return err + } + res, err := client.Do(req) + if err != nil { + log.Print("Failed to get all issues") + return err + } + target := []issue{} + defer res.Body.Close() + json.NewDecoder(res.Body).Decode(&target) + for _, i := range target { + if i.Title == issueTitle { + repos := getRepositoriesFromBody(i.Body) + for _, repo := range repos { + (*flaggedRepositories)[repo] = true + } + } + } + return nil +} +func containsOpenIssue(link string, openIssues map[string]bool) bool { + _, ok := openIssues[link] + if ok { + return true + } + return false +} +func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { + if toRun { + ownerRepo := strings.ReplaceAll(href, "https://github.com", "") + apiCall := fmt.Sprintf(githubGETREPO, ownerRepo) + req, err := http.NewRequest("GET", apiCall, nil) + var repoResp repo + isRepoAdded := false + if err != nil { + log.Printf("Failed at repository %s\n", href) + return false + } + resp, err := client.Do(req) + if err != nil { + log.Printf("Failed at repository %s\n", href) + return false + } + defer resp.Body.Close() + json.NewDecoder(resp.Body).Decode(&repoResp) + if resp.StatusCode == 301 { + *staleRepos = append(*staleRepos, href+movedPermanently) + log.Printf("%s returned 301", href) + isRepoAdded = true + } + if resp.StatusCode == 302 && !isRepoAdded { + *staleRepos = append(*staleRepos, href+status302) + log.Printf("%s returned 302", href) + isRepoAdded = true + } + if resp.StatusCode >= 400 && !isRepoAdded { + *staleRepos = append(*staleRepos, href+deadLinkMessage) + log.Printf("%s might not exist!", href) + isRepoAdded = true + } + if repoResp.Archived && !isRepoAdded { + *staleRepos = append(*staleRepos, href+archived) + log.Printf("%s is archived!", href) + isRepoAdded = true + } + return isRepoAdded + } + return false +} +func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { + if toRun { + var respObj []map[string]interface{} + now := time.Now() + since := now.Add(-1 * 365 * 24 * numberOfYears * time.Hour) + sinceQuery := since.Format(time.RFC3339) + ownerRepo := strings.ReplaceAll(href, "https://github.com", "") + apiCall := fmt.Sprintf(githubGETCOMMITS, ownerRepo) + req, err := http.NewRequest("GET", apiCall, nil) + isRepoAdded := false + if err != nil { + log.Printf("Failed at repository %s\n", href) + return false + } + q := req.URL.Query() + q.Add("since", sinceQuery) + req.URL.RawQuery = q.Encode() + resp, err := client.Do(req) + if err != nil { + log.Printf("Failed at repository %s\n", href) + return false + } + defer resp.Body.Close() + json.NewDecoder(resp.Body).Decode(&respObj) + isAged := len(respObj) == 0 + if isAged { + log.Printf("%s has not had a commit in a while", href) + *staleRepos = append(*staleRepos, href) + isRepoAdded = true + } + return isRepoAdded + } + return false +} +func testStaleRepository() { + query := startQuery() + var staleRepos []string + addressedRepositories := make(map[string]bool) + oauth := os.Getenv("GITHUB_OAUTH_TOKEN") + client := &http.Client{} + if oauth == "" { + log.Print("No oauth token found. Using unauthenticated client ...") + } else { + tokenSource := &tokenSource{ + AccessToken: oauth, + } + client = oauth2.NewClient(oauth2.NoContext, tokenSource) + } + err := getAllFlaggedRepositories(client, &addressedRepositories) + + if err != nil { + log.Println("Failed to get existing issues. Exiting...") + return + } + query.Find("body li > a:first-child").EachWithBreak(func(_ int, s *goquery.Selection) bool { + href, ok := s.Attr("href") + if !ok { + log.Println("expected to have href") + return true + } + if ctr >= LIMIT && LIMIT != -1 { + log.Print("Max number of issues created") + return false + } + issueExists := containsOpenIssue(href, addressedRepositories) + if issueExists { + log.Printf("issue already exists for %s\n", href) + } else { + isGithubRepo := reGithubRepo.MatchString(href) + if isGithubRepo { + isRepoAdded := testRepoState(true, href, client, &staleRepos) + isRepoAdded = testCommitAge(!isRepoAdded, href, client, &staleRepos) + if isRepoAdded { + ctr++ + } + } else { + log.Printf("%s non-github repo not currently handled", href) + } + } + return true + }) + createIssue(staleRepos, client) +} + +func main() { + f, err := os.OpenFile("test_stale_repositories_log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666) + if err != nil { + log.Println("FAILED TO INIT LOG FILE") + return + } + log.SetOutput(f) + testStaleRepository() +} From 1a0980c0c894f2d01c1b35ac200f4254449f36cc Mon Sep 17 00:00:00 2001 From: skillingbeck Date: Tue, 29 Sep 2020 20:33:49 +0100 Subject: [PATCH 2093/3440] Thanos style guide - Fix broken URL (#3267) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c92be324eab..9fcebbfd78a 100644 --- a/README.md +++ b/README.md @@ -2556,7 +2556,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Hyperledger](https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/style-guides/go-style.rst) * [Magnetico](https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification) * [Sourcegraph](https://about.sourcegraph.com/handbook/engineering/go_style_guide) -* [Thanos](https://thanos.io/contributing/coding-style-guide.md/) +* [Thanos](https://thanos.io/tip/contributing/coding-style-guide.md/) * [Uber](https://github.com/uber-go/guide/blob/master/style.md) ## Social Media From 41dcfdf8880094b697a0fd1d7ae5ccd3b5a9b205 Mon Sep 17 00:00:00 2001 From: Shubham Zanwar Date: Mon, 5 Oct 2020 14:26:38 +0530 Subject: [PATCH 2094/3440] adding go design patterns repo to tutorials list (#3273) * adding go design patterns repo to tutorials list * arranging the submission in alphabetical order * adding fullstop at the end of the description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9fcebbfd78a..4c5a072435d 100644 --- a/README.md +++ b/README.md @@ -2614,6 +2614,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. * [Caching Slow Database Queries](https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9) - How to cache slow database queries. * [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. +* [Design Patterns in Go](https://github.com/shubhamzanwar/design-patterns) - Collection of programming design patterns implemented in Go. * [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. * [Games With Go](http://gameswithgo.org/) - A video series teaching programming and game development. * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. From a9bdc017263929afa7a670be6d53748a8759205d Mon Sep 17 00:00:00 2001 From: Tony Kappen <32112423+mrKappen@users.noreply.github.com> Date: Mon, 5 Oct 2020 04:59:38 -0400 Subject: [PATCH 2095/3440] Fix test stale repositories workflow (#3270) * fix typo in README.md fixes #3204 * test * Delete main.yml * modify workflow --- .github/workflows/run-check.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index 7a758cb87ab..f47c9347a54 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -10,7 +10,10 @@ jobs: matrix: go: ['1.15.x'] steps: - - shell: bash - env: - OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} - run: go get -t -v ./... && go run test_stale_repositories.go scripts.go \ No newline at end of file + - name: Get dependencies + run: | + go get -v -t -d ./... + - name: run script + run: go run test_stale_repositories.go scripts.go + env: + GITHUB_OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} \ No newline at end of file From d64bb9aaef277f85bd5e742d72ffddb249222562 Mon Sep 17 00:00:00 2001 From: Ori Seri <6756779+oriser@users.noreply.github.com> Date: Mon, 5 Oct 2020 12:00:43 +0300 Subject: [PATCH 2096/3440] Add regroup to the project listing (#3269) * Add regroup to the project listing * add period --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4c5a072435d..4cdea3a90dd 100644 --- a/README.md +++ b/README.md @@ -1784,6 +1784,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. + * [regroup](https://github.com/oriser/regroup) - Match regex expression named groups into go struct using struct tags and automatic parsing. * [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. * [textwrap](https://github.com/isbm/textwrap) - Implementation of `textwrap` module from Python. * [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. From 659ca516a0a40fb755ac317c1c8bb5d87c7f7321 Mon Sep 17 00:00:00 2001 From: Anthony Plescia Date: Mon, 5 Oct 2020 05:40:39 -0400 Subject: [PATCH 2097/3440] Add lets-go, a library with various AWS and REST utility packages. (#3258) * initial commit * change remote url --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4cdea3a90dd..226e47bde6e 100644 --- a/README.md +++ b/README.md @@ -1955,6 +1955,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsend](https://github.com/clevergo/jsend) - JSend's implementation writen in Go. * [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. * [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. +* [lets-go](https://github.com/aplescia-chwy/lets-go) - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities. * [limiters](https://github.com/mennanov/limiters) - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks. * [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. From eba5e24920429a83aa03680c900c0ae5573af78a Mon Sep 17 00:00:00 2001 From: zerosnake0 Date: Mon, 5 Oct 2020 17:43:22 +0800 Subject: [PATCH 2098/3440] add json benchmark (#3255) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 226e47bde6e..d3ce658a6eb 100644 --- a/README.md +++ b/README.md @@ -2426,6 +2426,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-benchmark-app](https://github.com/mrLSD/go-benchmark-app) - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results. * [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. * [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. +* [go-json-benchmark](https://github.com/zerosnake0/go-json-benchmark) - Go JSON benchmark. * [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. * [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. * [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. From a044ad20c37c709055a2cf081b49902d85af6df4 Mon Sep 17 00:00:00 2001 From: Dylan Meeus Date: Mon, 5 Oct 2020 11:51:53 +0200 Subject: [PATCH 2099/3440] Add GoAudio - Native Audio Processing Library (#3231) * Add GoAudio * Fix ordering of entries --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3ce658a6eb..338647a87cc 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [GoAudio](https://github.com/DylanMeeus/GoAudio) - Native Go Audio Processing Library. * [gosamplerate](https://github.com/dh1tw/gosamplerate) - libsamplerate bindings for go. * [id3v2](https://github.com/bogem/id3v2) - Fast and powerful ID3 decoding and encodung library written completely in Go. * [malgo](https://github.com/gen2brain/malgo) - Mini audio library. From 4458ac0562c128709b2686245ac31a0be1f9dd46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pogeant?= Date: Mon, 5 Oct 2020 15:21:20 +0200 Subject: [PATCH 2100/3440] Add Lille Gophers to website list (#3262) * Add Lille Gophers to website list * Move link to correct alphabetical place --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 338647a87cc..927a18e5b76 100644 --- a/README.md +++ b/README.md @@ -2602,6 +2602,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gowalker.org](https://gowalker.org) - Go Project API documentation. * [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. * [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). +* [Lille Gophers](https://lille-gophers.loscrackitos.codes/) - Golang talks community in Lille, France ([@LilleGophers](https://twitter.com/LilleGophers)). * [Made with Golang](https://madewithgolang.com/?ref=awesome-go) * [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [studygolang](https://studygolang.com) - The community of studygolang in China. From 74b175fd6202ddf2e34e122c5cf66a26aedc7c3a Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 5 Oct 2020 14:55:10 -0300 Subject: [PATCH 2101/3440] set contributing guide warnning balance expectations (#3276) we are developers --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 15be9695602..4847f08348b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,6 +5,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno # Contribution Guidelines +> Please be aware that we want to accept your contribution, but we have **some rules to keep the minimum quality** of the packages listed here. All reviews are **not personal feedback**, even if you are a _developer reviewing your contribution_. **Sorry if we can't meet your expectations, we do our best**. + - **To add, remove, or change things on the list:** Submit a pull request To set this list apart from and complement the excellent [Go wiki Projects page](https://golang.org/wiki/Projects), awesome-go is a specially curated list for high-quality, actively maintained Go packages and resources. From 4c0665b2ca1c1828b1b40fca39d9fa4107b0d75f Mon Sep 17 00:00:00 2001 From: bokwoon95 <23723357+bokwoon95@users.noreply.github.com> Date: Tue, 6 Oct 2020 15:43:11 +0800 Subject: [PATCH 2102/3440] add bokwoon95/go-structured-query to SQL query builder (#3254) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 927a18e5b76..53dbf9e8ce7 100644 --- a/README.md +++ b/README.md @@ -509,6 +509,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. * [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. * [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. +* [sq](https://github.com/bokwoon95/go-structured-query) - Type-safe SQL builder and struct mapper for Go. * [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. * [sqlingo](https://github.com/lqs/sqlingo) - A lightweight DSL to build SQL in Go. * [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. From 0e873f226a4d33d8215043f29e519ad9cd594092 Mon Sep 17 00:00:00 2001 From: Janilton Maciel Date: Tue, 6 Oct 2020 17:17:58 -0300 Subject: [PATCH 2103/3440] add janiltonmaciel/statiks (#3252) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 53dbf9e8ce7..e9ed9f34ec0 100644 --- a/README.md +++ b/README.md @@ -2011,6 +2011,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sorty](https://github.com/jfcg/sorty) - Fast Concurrent / Parallel Sorting. * [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. +* [statiks](https://github.com/janiltonmaciel/statiks) - Fast, zero-configuration, static HTTP filer server. * [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. * [Task](https://github.com/go-task/task) - simple "Make" alternative. From 1f50ad29db232b9c6e96ed63c846de8893376994 Mon Sep 17 00:00:00 2001 From: euma3us <72280030+euma3us@users.noreply.github.com> Date: Fri, 9 Oct 2020 10:49:19 +0300 Subject: [PATCH 2104/3440] Update README.md (#3279) Golang Turkey added to Meetups --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9ed9f34ec0..c0cc343ef09 100644 --- a/README.md +++ b/README.md @@ -2540,6 +2540,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Sydney, AU](https://www.meetup.com/golang-syd/) * [Golang São Paulo - Brazil](https://www.meetup.com/golangbr/) * [Golang Taipei](https://www.meetup.com/golang-taipei-meetup/) +* [Golang Turkey](https://kommunity.com/goturkiye) * [Golang Vancouver, BC](https://www.meetup.com/golangvan/) * [Golang Казань](https://www.meetup.com/GolangKazan/) * [Golang Москва](https://www.meetup.com/Golang-Moscow/) From f680c282d95fad10128bfd6649962be254d59ffe Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Fri, 9 Oct 2020 02:50:09 -0500 Subject: [PATCH 2105/3440] Remove gostore from list (abandoned) (#3285) Co-authored-by: Travis Harmon --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c0cc343ef09..13e328b613f 100644 --- a/README.md +++ b/README.md @@ -435,7 +435,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. * [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 Go. -* [gostore](https://github.com/twharmon/gostore) - Gostore is a simple, durable, embedded key-value storage engine written in 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. * [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. From ea464714b21a79f3f118a45ce05f5b2005c3586f Mon Sep 17 00:00:00 2001 From: Danilo Delizia Date: Fri, 9 Oct 2020 14:28:12 +0200 Subject: [PATCH 2106/3440] Add channelify (#3277) Add chanelify Co-authored-by: Danilo Delizia <> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 13e328b613f..3d4af798bc9 100644 --- a/README.md +++ b/README.md @@ -860,6 +860,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. +* [channelify](https://github.com/ddelizia/channelify) - Transform your function to return channels for easy and powerful parallel processing. * [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way.It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. From 87758a00f3847226f25649d732b12db3ba3e2757 Mon Sep 17 00:00:00 2001 From: Vilen Topchii <32271530+vtopc@users.noreply.github.com> Date: Fri, 9 Oct 2020 15:28:44 +0300 Subject: [PATCH 2107/3440] added github.com/vtopc/epoch (#3278) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3d4af798bc9..427336b7404 100644 --- a/README.md +++ b/README.md @@ -1010,6 +1010,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ajson](https://github.com/spyzhov/ajson) - Abstract JSON for golang with JSONPath support. * [dynjson](https://github.com/cocoonspace/dynjson) - Client-customizable JSON formats for dynamic APIs. * [ej](https://github.com/lucassscaravelli/ej) - Write and read JSON from different sources succinctly. +* [epoch](https://github.com/vtopc/epoch) - Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from build-in time.Time type in JSON. * [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. * [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. * [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is ment to allow us to easily create json response errors that follow the JsonApi spec. From 4ec08460c1d83a19dd7738c00c5b12a0c25f50ef Mon Sep 17 00:00:00 2001 From: zerosnake0 Date: Fri, 9 Oct 2020 20:31:34 +0800 Subject: [PATCH 2108/3440] jzon (#3282) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 427336b7404..e5da394fe46 100644 --- a/README.md +++ b/README.md @@ -1025,6 +1025,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [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. +* [jzon](https://github.com/zerosnake0/jzon) - JSON library with standard compatible API/behavior. * [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. * [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. From 3a726e1e2f49f376b38e09baf3731d36b530a2cd Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Fri, 9 Oct 2020 07:33:20 -0500 Subject: [PATCH 2109/3440] Add Gouid (#3284) Co-authored-by: Travis Harmon --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e5da394fe46..5c6d36c1f4d 100644 --- a/README.md +++ b/README.md @@ -2032,6 +2032,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with UUIDs.* * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. +* [gouid](https://github.com/twharmon/gouid) - Generate cryptographically secure random string IDs with just one allocation. * [nanoid](https://github.com/aidarkhanov/nanoid) - A tiny and efficient Go unique string ID generator. * [sno](https://github.com/muyo/sno) - Compact, sortable and fast unique IDs with embedded metadata. * [ulid](https://github.com/oklog/ulid) - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier). From a4ad2950bda87c71fb15823e2d57e66833c6440c Mon Sep 17 00:00:00 2001 From: Muhammad Surya Date: Fri, 9 Oct 2020 19:34:55 +0700 Subject: [PATCH 2110/3440] Update REL (#3286) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c6d36c1f4d..9bd0e66395a 100644 --- a/README.md +++ b/README.md @@ -1430,7 +1430,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pop/soda](https://github.com/gobuffalo/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. -* [rel](https://github.com/Fs02/rel) - Golang SQL Repository Layer for Clean (Onion) Architecture. +* [rel](https://github.com/go-rel/rel) - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API. * [SQLBoiler](https://github.com/volatiletech/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [XORM](https://gitea.com/xorm/xorm) - Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle). From cd5b9549e40b422c91b069ae27cbf0aad4ea616a Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Oct 2020 10:10:58 -0300 Subject: [PATCH 2111/3440] fixed description typo on id3v2 (#3288) * fixed description typo on id3v2 fixed: #3249 Signed-off-by: Avelino * fixed TestSeparator to id3v2 Signed-off-by: Avelino --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9bd0e66395a..75158d5959a 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [GoAudio](https://github.com/DylanMeeus/GoAudio) - Native Go Audio Processing Library. * [gosamplerate](https://github.com/dh1tw/gosamplerate) - libsamplerate bindings for go. -* [id3v2](https://github.com/bogem/id3v2) - Fast and powerful ID3 decoding and encodung library written completely in Go. +* [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go. * [malgo](https://github.com/gen2brain/malgo) - Mini audio library. * [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library. * [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. From 6998e2bd1887e3dd790949c1379041307b776733 Mon Sep 17 00:00:00 2001 From: Tom Wright Date: Fri, 9 Oct 2020 19:02:34 +0100 Subject: [PATCH 2112/3440] Add Dasel. (#3259) * Add dasel to data-structures * Add dasel to devops tools * Remove dasel from data-structures --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 75158d5959a..c72dcc7b421 100644 --- a/README.md +++ b/README.md @@ -2314,6 +2314,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [cassowary](https://github.com/rogerwelin/cassowary) - Modern cross-platform HTTP load-testing tool written in Go. +* [dasel](https://github.com/tomwright/dasel) - Query and update JSON/YAML files from the command line. * [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. * [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). From 4c92cc19a1df6d1d3f830a119ce613ba4888d320 Mon Sep 17 00:00:00 2001 From: Jose Dumagay <2900333+jdumagay@users.noreply.github.com> Date: Sun, 11 Oct 2020 00:56:34 +0800 Subject: [PATCH 2113/3440] Update link for limetext (#3290) Changed link to limetext --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c72dcc7b421..06628035484 100644 --- a/README.md +++ b/README.md @@ -2400,7 +2400,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms. * [lgo](https://github.com/yunabe/lgo) - Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility. -* [limetext](http://limetext.org/) - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. +* [limetext](https://limetext.github.io) - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. * [LiteIDE](https://github.com/visualfc/liteide) - LiteIDE is a simple, open source, cross-platform Go IDE. * [mockingjay](https://github.com/quii/mockingjay-server) - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. From f2c6a2d2e62054cf1135f047aae955800c98e03c Mon Sep 17 00:00:00 2001 From: jon reiter Date: Sun, 11 Oct 2020 01:21:17 +0800 Subject: [PATCH 2114/3440] added govader (#3287) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06628035484..095efce8d7b 100644 --- a/README.md +++ b/README.md @@ -1296,6 +1296,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [golibstemmer](https://github.com/rjohnsondev/golibstemmer) - Go bindings for the snowball libstemmer library including porter 2. * [gotokenizer](https://github.com/xujiajun/gotokenizer) - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) * [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. +* [govader](https://github.com/jonreiter/govader) - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment). * [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. * [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. * [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. From 20f66f5609ff584f5d0bb40f905b6d9da124e21a Mon Sep 17 00:00:00 2001 From: meloalright Date: Sun, 11 Oct 2020 15:36:21 +0800 Subject: [PATCH 2115/3440] Add Guora (#3289) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 095efce8d7b..721cca6a9f7 100644 --- a/README.md +++ b/README.md @@ -2394,6 +2394,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. * [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. +* [Guora](https://github.com/meloalright/guora) - A self-hosted Quora like web application written in Go. * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. * [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. * [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. From d5cf43c4b08b9655ebbcaba6bf6484af48786589 Mon Sep 17 00:00:00 2001 From: Tony Kappen <32112423+mrKappen@users.noreply.github.com> Date: Sun, 11 Oct 2020 15:03:33 -0400 Subject: [PATCH 2116/3440] Fix workflow (#3293) * fix typo in README.md fixes #3204 * test * Delete main.yml * fix workflow * set to run on original repository --- .github/workflows/run-check.yaml | 4 +++- test_stale_repositories.go | 8 +------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index f47c9347a54..ffee548ee7d 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -1,5 +1,6 @@ name: Check For Stale Repositories on: + workflow_dispatch: schedule: - cron: '0 0 * * 0' jobs: @@ -10,10 +11,11 @@ jobs: matrix: go: ['1.15.x'] steps: + - uses: actions/checkout@1.0.0 - name: Get dependencies run: | go get -v -t -d ./... - name: run script run: go run test_stale_repositories.go scripts.go env: - GITHUB_OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} \ No newline at end of file + OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} \ No newline at end of file diff --git a/test_stale_repositories.go b/test_stale_repositories.go index 8eace2a6429..84b2141a6f8 100644 --- a/test_stale_repositories.go +++ b/test_stale_repositories.go @@ -224,7 +224,7 @@ func testStaleRepository() { query := startQuery() var staleRepos []string addressedRepositories := make(map[string]bool) - oauth := os.Getenv("GITHUB_OAUTH_TOKEN") + oauth := os.Getenv("OAUTH_TOKEN") client := &http.Client{} if oauth == "" { log.Print("No oauth token found. Using unauthenticated client ...") @@ -271,11 +271,5 @@ func testStaleRepository() { } func main() { - f, err := os.OpenFile("test_stale_repositories_log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666) - if err != nil { - log.Println("FAILED TO INIT LOG FILE") - return - } - log.SetOutput(f) testStaleRepository() } From 85fe046139de5c85ecc03ce89ab914691e9987f7 Mon Sep 17 00:00:00 2001 From: Son Huynh Date: Thu, 15 Oct 2020 14:35:27 +0700 Subject: [PATCH 2117/3440] Add sonh/qs (#3299) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 721cca6a9f7..7bcb4ba9a67 100644 --- a/README.md +++ b/README.md @@ -776,6 +776,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [forms](https://github.com/albrow/forms) - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. * [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. * [nosurf](https://github.com/justinas/nosurf) - CSRF protection middleware for Go. +* [qs](https://github.com/sonh/qs) - Go module for encoding structs into URL query parameters. * [queryparam](https://github.com/tomwright/queryparam) - Decode `url.Values` into usable struct values of standard or custom types. ## Functional From 3aaad56f4ca24962a53974a110df92cbe11cbb18 Mon Sep 17 00:00:00 2001 From: Dino Puguh Date: Fri, 16 Oct 2020 21:46:25 +0700 Subject: [PATCH 2118/3440] Add gosentiwordnet library (#3297) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7bcb4ba9a67..18d1b218843 100644 --- a/README.md +++ b/README.md @@ -1295,6 +1295,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [gosentiwordnet](https://github.com/dinopuguh/gosentiwordnet) - Sentiment analyzer using sentiwordnet lexicon in Go. * [gotokenizer](https://github.com/xujiajun/gotokenizer) - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) * [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. * [govader](https://github.com/jonreiter/govader) - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment). From cb3c7396137e9f5e8af94a4951d9546d4aa22183 Mon Sep 17 00:00:00 2001 From: camgraff <46980357+camgraff@users.noreply.github.com> Date: Fri, 16 Oct 2020 14:15:31 -0500 Subject: [PATCH 2119/3440] Add protoxy (#3294) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 18d1b218843..de7a497817e 100644 --- a/README.md +++ b/README.md @@ -1610,6 +1610,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. +* [protoxy](https://github.com/camgraff/protoxy) - A proxy server that converts JSON request bodies to Protocol Buffers. * [psql-streamer](https://github.com/blind-oracle/psql-streamer) - Stream database events from PostgreSQL to Kafka. * [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. From c97fc4a62d25c867677751a0859e3747821e3db7 Mon Sep 17 00:00:00 2001 From: Caitlin Elfring Date: Fri, 16 Oct 2020 18:01:26 -0400 Subject: [PATCH 2120/3440] Add [woke](https://github.com/get-woke/woke) (#3301) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index de7a497817e..2c3b09cee49 100644 --- a/README.md +++ b/README.md @@ -2427,6 +2427,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. * [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). +* [woke](https://github.com/get-woke/woke) - Detect non-inclusive language in your source code. # Resources From e366e6cf2940447261796da3fc936722c719b802 Mon Sep 17 00:00:00 2001 From: Dmitriy Sviridov Date: Sat, 17 Oct 2020 01:03:03 +0300 Subject: [PATCH 2121/3440] Update README to add rawg-sdk-go library (#3300) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c3b09cee49..64d2069f13a 100644 --- a/README.md +++ b/README.md @@ -1866,6 +1866,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [paypal](https://github.com/logpacker/PayPal-Go-SDK) - 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. +* [rawg-sdk-go](https://github.com/dimuska139/rawg-sdk-go) - Go library for the [RAWG Video Games Database](https://rawg.io/) 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. * [simples3](https://github.com/rhnvrm/simples3) - Simple no frills AWS S3 Library using REST with V4 Signing written in Go. From f11c3e04e2b7405d3f8ba91580bc6a068ffb77c7 Mon Sep 17 00:00:00 2001 From: "(0x794E6).toString(36)" Date: Sat, 17 Oct 2020 15:43:59 +0800 Subject: [PATCH 2122/3440] Add tik (#3298) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 64d2069f13a..32f1f67169e 100644 --- a/README.md +++ b/README.md @@ -2023,6 +2023,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. * [Task](https://github.com/go-task/task) - simple "Make" alternative. * [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. +* [tik](https://github.com/andy2046/tik) - Simple and easy timing wheel package for Go. * [tome](https://github.com/cyruzin/tome) - Tome was designed to paginate simple RESTful APIs. * [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. From 79f6146369c63577a9622233726707b4b02b1747 Mon Sep 17 00:00:00 2001 From: John Arundel Date: Wed, 21 Oct 2020 08:42:32 +0100 Subject: [PATCH 2123/3440] Add 'For the Love of Go' and 'Go Code Club' (#3302) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 32f1f67169e..3710051a0c1 100644 --- a/README.md +++ b/README.md @@ -1212,7 +1212,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. -* [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. +* [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. * [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates starter Go project layout. Lets you focus on business logic implemeted. @@ -2478,6 +2478,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [An Introduction to Programming in Go](http://www.golang-book.com/) * [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) +* [For the Love of Go](https://bitfieldconsulting.com/books) - A series of introductory books for Go beginners. * [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. * [Go Bootcamp](http://golangbootcamp.com) * [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. @@ -2598,6 +2599,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. * [Go Blog](http://blog.golang.org) - The official Go blog. * [Go Challenge](http://golang-challenge.org/) - Learn Go by solving problems and getting feedback from Go experts. +* [Go Code Club](https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3) - A group of Gophers read and discuss a different Go project every week. * [Go Community on Hashnode](https://hashnode.com/n/go) - Community of Gophers on Hashnode. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. * [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. From 1ad135a3ad01489b0de5b77d6e4c1b7ae55c11f8 Mon Sep 17 00:00:00 2001 From: phuslu Date: Sat, 24 Oct 2020 03:42:16 +0800 Subject: [PATCH 2124/3440] Add phuslu/log (#3309) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3710051a0c1..e628d3f89eb 100644 --- a/README.md +++ b/README.md @@ -1072,6 +1072,7 @@ 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. * [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenario. Also, it is one of the logger with the lowest allocation. * [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). +* [phuslu/log](https://github.com/phuslu/log) - Structured Logging Made Easy. * [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. * [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. * [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. From b6b4ffbe0c60b253652bd84627f00f2b0e4230c9 Mon Sep 17 00:00:00 2001 From: Tymoteusz Blazejczyk Date: Fri, 23 Oct 2020 22:13:03 +0200 Subject: [PATCH 2125/3440] Added the Go Formatter library to the Awesome list. (#3307) * Added the Go Formatter library to the Awesome list. * Removed generated tags file with ctags tool * Changed order to pass CI. Go Formatter must be first :) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e628d3f89eb..9b753fdefad 100644 --- a/README.md +++ b/README.md @@ -1222,6 +1222,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with strings.* +* [go-formatter](https://gitlab.com/tymonx/go-formatter) - Implements **replacement fields** surrounded by curly braces `{}` format strings. * [gobeam/Stringy](https://github.com/gobeam/Stringy) - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. * [strutil](https://github.com/ozgio/strutil) - String utilities. * [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. From 504f20d86a697c99465bc877d35048540b0f4190 Mon Sep 17 00:00:00 2001 From: Spencer Davies Date: Mon, 26 Oct 2020 12:11:05 -0600 Subject: [PATCH 2126/3440] removed repositories due to inactivity issue # #3295 (#3318) * removed repositories due to inactivity * put back repos were the maintainers were usually responding --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 9b753fdefad..fa6164db378 100644 --- a/README.md +++ b/README.md @@ -115,11 +115,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for manipulating audio.* -* [EasyMIDI](https://github.com/algoGuy/EasyMIDI) - EasyMidi is a simple and reliable library for working with standard midi file (SMF). * [flac](https://github.com/mewkiz/flac) - Native Go FLAC encoder/decoder with support for FLAC streams. * [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. * [GoAudio](https://github.com/DylanMeeus/GoAudio) - Native Go Audio Processing Library. * [gosamplerate](https://github.com/dh1tw/gosamplerate) - libsamplerate bindings for go. * [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go. @@ -131,7 +129,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. -* [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. * [vorbis](https://github.com/mccoyst/vorbis) - "Native" Go Vorbis decoder (uses CGO, but has no dependencies). * [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. @@ -2662,4 +2659,4 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. -* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. +* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. \ No newline at end of file From d1e2649390e2403329b8147a122565c14fa11654 Mon Sep 17 00:00:00 2001 From: Peter Thaleikis Date: Mon, 26 Oct 2020 22:12:03 +0400 Subject: [PATCH 2127/3440] Add missing spaces (#3321) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fa6164db378..f10cd99a86a 100644 --- a/README.md +++ b/README.md @@ -1383,7 +1383,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [water](https://github.com/songgao/water) - Simple TUN/TAP library. * [webrtc](https://github.com/pions/webrtc) - A pure Go implementation of the WebRTC API. * [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. +* [xtcp](https://github.com/xfxdev/xtcp) - TCP Server Framework with simultaneous full duplex communication, graceful shutdown, and custom protocol. ### HTTP Clients From 5f928f5a4c679b31d9283dc4c4de38675856a1ac Mon Sep 17 00:00:00 2001 From: Spencer Davies Date: Tue, 27 Oct 2020 11:31:52 -0600 Subject: [PATCH 2128/3440] removed 3 repositories that were falling out of maintenance (#3322) --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index f10cd99a86a..75a9b1569eb 100644 --- a/README.md +++ b/README.md @@ -206,7 +206,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 struct tags. * [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. -* [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line applications. * [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. * [clîr](https://github.com/leaanthony/clir) - A Simple and Clear CLI library. Dependency free. * [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idomatic way. @@ -215,7 +214,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. * [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync. -* [docopt.go](https://github.com/docopt/docopt.go) - Command-line arguments parser that will make you smile. * [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. * [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. @@ -233,7 +231,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [ops](https://github.com/nanovms/ops) - Unikernel Builder/Orchestrator. * [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. -* [readline](https://github.com/chzyer/readline) - Pure golang implementation that provides most features in GNU-Readline under MIT license. * [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more. * [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. * [strumt](https://github.com/antham/strumt) - Library to create prompt chain. From ef61d529b6bbcc94971dc371091c5d218bdd4fe8 Mon Sep 17 00:00:00 2001 From: Peter Thaleikis Date: Wed, 28 Oct 2020 11:44:32 +0400 Subject: [PATCH 2129/3440] Typo: dirver -> driver (#3327) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 75a9b1569eb..e51edda5183 100644 --- a/README.md +++ b/README.md @@ -551,7 +551,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. - * [qmgo](https://github.com/qiniu/qmgo) - The MongoDB dirver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. + * [qmgo](https://github.com/qiniu/qmgo) - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. * [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. * [redigo](https://github.com/gomodule/redigo) - Redigo is a Go client for the Redis database. * [redis](https://github.com/go-redis/redis) - Redis client for Golang. @@ -2656,4 +2656,4 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. -* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. \ No newline at end of file +* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. From d2fd59a923bba56128e8832600c570146b881ce2 Mon Sep 17 00:00:00 2001 From: Spencer Davies Date: Wed, 28 Oct 2020 05:32:51 -0600 Subject: [PATCH 2130/3440] got rid of one repository that did not appear to be maintained anymore (#3328) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e51edda5183..4d611c20032 100644 --- a/README.md +++ b/README.md @@ -168,7 +168,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. * [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. * [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package. -* [signedvalue](https://github.com/sashka/signedvalue) - Signed and timestamped strings compatible with [Tornado's](https://github.com/tornadoweb/tornado) `create_signed_value`, `decode_signed_value`, and therefore `set_secure_cookie` and `get_secure_cookie`. * [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser. ## Bot Building From c4b2709aab0e50ad3a62e540cad7da0c8b374a68 Mon Sep 17 00:00:00 2001 From: rodrigomideac <42819921+rodrigomideac@users.noreply.github.com> Date: Fri, 30 Oct 2020 14:43:25 -0300 Subject: [PATCH 2131/3440] Removed broken Edge X Foundry style-guide link (#3323) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4d611c20032..569434cb07f 100644 --- a/README.md +++ b/README.md @@ -2566,7 +2566,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bahlo/go-styleguide](https://github.com/bahlo/go-styleguide) * [CockroachDB](https://github.com/cockroachdb/cockroach/blob/master/docs/style.md) -* [Edge X Foundry](https://wiki.edgexfoundry.org/display/FA/Contributor%27s+Guide+-+Go+Lang) * [GitLab](https://docs.gitlab.com/ee/development/go_guide/) * [Hyperledger](https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/style-guides/go-style.rst) * [Magnetico](https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification) From 903acc63630b0dbf5de073b0f19df03e807b7344 Mon Sep 17 00:00:00 2001 From: Sean Lingren Date: Fri, 30 Oct 2020 10:46:56 -0700 Subject: [PATCH 2132/3440] Add Vaku (#3325) * add-vaku * newline fixes * newline * no newline at eof --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 569434cb07f..62e59c746f3 100644 --- a/README.md +++ b/README.md @@ -2422,6 +2422,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [term-quiz](https://github.com/crazcalm/term-quiz) - Quizzes for your terminal. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. +* [vaku](https://github.com/lingrino/vaku) - CLI & API for folder-based functions in Vault like copy, move, and search. * [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). * [woke](https://github.com/get-woke/woke) - Detect non-inclusive language in your source code. From b7103dfc7be9a4fba19ca147ae74e1b5c5b7a517 Mon Sep 17 00:00:00 2001 From: Tom Lazar Date: Fri, 30 Oct 2020 12:53:56 -0500 Subject: [PATCH 2133/3440] add table library (#3331) Co-authored-by: Thomas Lazar --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 62e59c746f3..a82c6d3dd93 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. * [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. * [tabby](https://github.com/cheynewallace/tabby) - A tiny library for super simple Golang tables. +* [table](https://github.com/tomlazar/table) - Small library for terminal color based tables . * [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). From 41b347f812cd50f1d4d2684e604fd033c472bfe2 Mon Sep 17 00:00:00 2001 From: Chris C Date: Fri, 30 Oct 2020 14:11:28 -0400 Subject: [PATCH 2134/3440] Add Gatus (#3310) * Add Gatus * Add missing punctuation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a82c6d3dd93..021f21f6dd4 100644 --- a/README.md +++ b/README.md @@ -1240,6 +1240,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. * [faker](https://github.com/pioz/faker) - Random fake data and struct generator for Go. * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. +* [gatus](https://github.com/TwinProduction/gatus) - Automated service health dashboard. * [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, and Bitbucket. * [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool for Golang. * [go-openapi](https://github.com/go-openapi) - Collection of packages to parse and utilize open-api schemas. From 58c099fd8e4db8fa905a2a0f4b9f62ff96beb1b1 Mon Sep 17 00:00:00 2001 From: Tom Wright Date: Fri, 30 Oct 2020 18:19:07 +0000 Subject: [PATCH 2135/3440] Update dasel description and change category (#3324) * Add dasel to data-structures * Add dasel to devops tools * Remove dasel from data-structures * Update dasel description * Update dasel description * Move dasel to query language category * Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 021f21f6dd4..2ffc35224a4 100644 --- a/README.md +++ b/README.md @@ -1474,6 +1474,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Query Language * [api-fu](https://github.com/ccbrown/api-fu) - Comprehensive GraphQL implementation. +* [dasel](https://github.com/tomwright/dasel) - Query and update data structures using selectors from the command line. Comparable to jq/yq but supports JSON, YAML, TOML and XML with zero runtime dependencies. * [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. @@ -2317,7 +2318,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [cassowary](https://github.com/rogerwelin/cassowary) - Modern cross-platform HTTP load-testing tool written in Go. -* [dasel](https://github.com/tomwright/dasel) - Query and update JSON/YAML files from the command line. * [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. * [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). From 74c0c57374d3795b2d4f5655d39d71585f4516ee Mon Sep 17 00:00:00 2001 From: Mikalai Konan <36304777+mikekonan@users.noreply.github.com> Date: Sun, 1 Nov 2020 14:31:04 +0300 Subject: [PATCH 2136/3440] added go-countries (#3338) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2ffc35224a4..372dfac8083 100644 --- a/README.md +++ b/README.md @@ -1926,6 +1926,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-bind-plugin](https://github.com/wendigo/go-bind-plugin) - go:generate tool for wrapping symbols exported by golang plugins (1.8 only). * [go-bsdiff](https://github.com/gabstv/go-bsdiff) - Pure Go bsdiff and bspatch libraries and CLI tools. * [go-convert](https://github.com/Eun/go-convert) - Package go-convert enbles you to convert a value into another type. +* [go-countries](https://github.com/mikekonan/go-countries) - Lightweight lookup over ISO-3166 codes. * [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-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. From 61fe093aa784710add8b14e8bb700e1abeb37a19 Mon Sep 17 00:00:00 2001 From: Dean Coakley Date: Sun, 1 Nov 2020 14:30:39 +0000 Subject: [PATCH 2137/3440] Add Belfast Gophers meetup (#3330) * Add Belfast Gophers meetup * Make meetups list alphabetical --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 372dfac8083..a2d8b5157a0 100644 --- a/README.md +++ b/README.md @@ -2508,6 +2508,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Meetups * [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) +* [Belfast Gophers](https://www.meetup.com/Belfast-Gophers/) * [Berlin Golang](https://www.meetup.com/golang-users-berlin/) * [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) * [Canberra Gophers](https://www.meetup.com/Canberra-Gophers/) From 57a1d6a84b9d9a1da692200bb268171abd08f247 Mon Sep 17 00:00:00 2001 From: Peter Thaleikis Date: Mon, 2 Nov 2020 23:21:24 +0400 Subject: [PATCH 2138/3440] Adding missing space (#3344) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a2d8b5157a0..c3d078aa9d4 100644 --- a/README.md +++ b/README.md @@ -856,7 +856,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. * [channelify](https://github.com/ddelizia/channelify) - Transform your function to return channels for easy and powerful parallel processing. -* [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way.It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. +* [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. From f0276f6f3d822e6d00f6e349818bf24a97b27ae4 Mon Sep 17 00:00:00 2001 From: Mehrdad Arshad Rad Date: Sun, 8 Nov 2020 07:17:48 -0800 Subject: [PATCH 2139/3440] add panoptes-stream streaming network telemetry (#3340) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c3d078aa9d4..5a9cce29282 100644 --- a/README.md +++ b/README.md @@ -1365,6 +1365,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). * [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. +* [panoptes-stream](https://github.com/yahoo/panoptes-stream) - A cloud native distributed streaming network telemetry (gNMI, Juniper JTI and Cisco MDT). * [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast. * [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). From 4783cc503a77ece9473a47001be80df39251b083 Mon Sep 17 00:00:00 2001 From: saritip <58343248+saritip@users.noreply.github.com> Date: Sun, 8 Nov 2020 17:21:34 +0200 Subject: [PATCH 2140/3440] Add Vienna, Austria Meetup (#3343) Co-authored-by: sarit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a9cce29282..f23e59a79bb 100644 --- a/README.md +++ b/README.md @@ -2556,6 +2556,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Taipei](https://www.meetup.com/golang-taipei-meetup/) * [Golang Turkey](https://kommunity.com/goturkiye) * [Golang Vancouver, BC](https://www.meetup.com/golangvan/) +* [Golang Vienna, Austria](https://www.meetup.com/viennago/) * [Golang Казань](https://www.meetup.com/GolangKazan/) * [Golang Москва](https://www.meetup.com/Golang-Moscow/) * [Golang Питер](https://www.meetup.com/Golang-Peter/) From 42756828e1fd8e6db455fac50f6b8e3520ede3c9 Mon Sep 17 00:00:00 2001 From: Marvin Wendt Date: Sun, 8 Nov 2020 16:24:08 +0100 Subject: [PATCH 2141/3440] Add pterm (#3345) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f23e59a79bb..7cbfc76834d 100644 --- a/README.md +++ b/README.md @@ -259,6 +259,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gookit/color](https://github.com/gookit/color) - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. * [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. +* [pterm](https://github.com/pterm/pterm) - A library to beautify console output on every platform with many combinable components. * [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. * [tabby](https://github.com/cheynewallace/tabby) - A tiny library for super simple Golang tables. * [table](https://github.com/tomlazar/table) - Small library for terminal color based tables . From 786c8b71770628e8f4457dd0cb1eb1fc553a87d7 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sun, 8 Nov 2020 22:27:50 +0700 Subject: [PATCH 2142/3440] =?UTF-8?q?Added=20=C2=ABcopy=C2=BB=20package=20?= =?UTF-8?q?(#3347)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7cbfc76834d..8ab5119c456 100644 --- a/README.md +++ b/README.md @@ -1903,6 +1903,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. * [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. +* [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. * [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. * [create-go-app](https://github.com/create-go-app/cli) - A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command. From 78e7450bee9410160d7dbebdd16234451dc43371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Rainone?= <476650+arl@users.noreply.github.com> Date: Sun, 8 Nov 2020 16:39:11 +0100 Subject: [PATCH 2143/3440] Add statsviz (#3291) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ab5119c456..b01413958b1 100644 --- a/README.md +++ b/README.md @@ -1471,6 +1471,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. * [pixie](https://github.com/pixie-labs/pixie) - No instrumentation tracing for Golang applications via eBPF. * [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. +* [statsviz](https://github.com/arl/statsviz) - Live visualization of your Go application runtime statistics. * [tracer](https://github.com/kamilsk/tracer) - Simple, lightweight tracing. ## Query Language From c8042e65e54ab0f2ea52eb656fdc2bd7628751ad Mon Sep 17 00:00:00 2001 From: Tobias Salzmann <796084+Eun@users.noreply.github.com> Date: Sun, 8 Nov 2020 16:48:16 +0100 Subject: [PATCH 2144/3440] add go-hit (#3332) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b01413958b1..86aa0565b4e 100644 --- a/README.md +++ b/README.md @@ -1674,6 +1674,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests. + * [go-hit](https://github.com/Eun/go-hit) - Hit is an http integration test framework written in golang. * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. * [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. * [go-vcr](https://github.com/dnaeon/go-vcr) - Record and replay your HTTP interactions for fast, deterministic and accurate tests. From 1fd6ae602f4b12fe53d4b39bfd05560ad847f04b Mon Sep 17 00:00:00 2001 From: Gennadiy Muzykantov <46723083+muzykantov@users.noreply.github.com> Date: Sun, 8 Nov 2020 18:51:53 +0300 Subject: [PATCH 2145/3440] Add fastme library (#3337) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 86aa0565b4e..51773bb20e4 100644 --- a/README.md +++ b/README.md @@ -748,6 +748,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. * [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. * [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. +* [fastme](https://github.com/newity/fastme) - Fast extensible matching engine Go implementation. * [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. * [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. * [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. From 6af53b785a092d40b2e722d0fc1663ea08c29061 Mon Sep 17 00:00:00 2001 From: Josep Jesus Bigorra Algaba <42377845+averageflow@users.noreply.github.com> Date: Sun, 8 Nov 2020 18:45:22 +0100 Subject: [PATCH 2146/3440] add GoHooks (#3342) Co-authored-by: Josep Jesus --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 51773bb20e4..2fc41b47d6d 100644 --- a/README.md +++ b/README.md @@ -1346,6 +1346,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. * [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. +* [gohooks](https://github.com/averageflow/gohooks) - GoHooks make it easy to send and consume secured web-hooks from a Go application. Inspired by Spatie's Laravel Webhook Client and Server. * [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. From b68a92cea7d31fdd7e2a2d1150563a377f5875ed Mon Sep 17 00:00:00 2001 From: Peter Thaleikis Date: Wed, 11 Nov 2020 12:35:52 +0400 Subject: [PATCH 2147/3440] Typo: implemeted -> implemented (#3357) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2fc41b47d6d..1088b4c23a4 100644 --- a/README.md +++ b/README.md @@ -1212,7 +1212,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. -* [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates starter Go project layout. Lets you focus on business logic implemeted. +* [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. ### Strings From e21955d7e34ef9a8228463b0a611348e0b9ea8dc Mon Sep 17 00:00:00 2001 From: Caleb Lemoine <21261388+circa10a@users.noreply.github.com> Date: Sun, 15 Nov 2020 05:01:03 -0600 Subject: [PATCH 2148/3440] Add go-aws-news (#3315) Signed-off-by: circa10a --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1088b4c23a4..b3c940a07f6 100644 --- a/README.md +++ b/README.md @@ -1827,6 +1827,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](http://geocoder.opencagedata.com/api.html), [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. * [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-aws-news](https://github.com/circa10a/go-aws-news) - Go application and library to fetch what's new from AWS. * [go-chronos](https://github.com/axelspringer/go-chronos) - Go library for interacting with the [Chronos](https://mesos.github.io/chronos/) Job Scheduler * [go-hacknews](https://github.com/PaulRosset/go-hacknews) - Tiny Go client for HackerNews API. * [go-here](https://github.com/abdullahselek/go-here) - Go client library around the HERE location based APIs. From c32627f27743a3af341bb3c392c671aabf22e562 Mon Sep 17 00:00:00 2001 From: Lane Wagner Date: Wed, 18 Nov 2020 11:38:14 -0700 Subject: [PATCH 2149/3440] add go-password-validator (#3356) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3c940a07f6..35ca156b613 100644 --- a/README.md +++ b/README.md @@ -1554,6 +1554,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. * [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. * [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. +* [go-password-validator](https://github.com/lane-c-wagner/go-password-validator) - Password validator based on raw cryptographic entropy values. * [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)". * [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. * [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. From ce72caec7851bacc340e41ace20b5c607b5008ee Mon Sep 17 00:00:00 2001 From: Caleb Lemoine <21261388+circa10a@users.noreply.github.com> Date: Wed, 18 Nov 2020 12:39:14 -0600 Subject: [PATCH 2150/3440] remove golangci.com reference (golangci.com out of service) (#3364) Signed-off-by: circa10a --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 35ca156b613..578ffa93f8c 100644 --- a/README.md +++ b/README.md @@ -2248,7 +2248,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. -* [GolangCI](https://golangci.com/) - GolangCI is an automated Golang code review service for GitHub pull requests. Service is open source and it's free for open source projects. * [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. From 5090e8efe18acbaf80ef7871b88ee78ecc7bcea6 Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 18 Nov 2020 19:40:43 +0100 Subject: [PATCH 2151/3440] Add stop-and-go (#3351) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 578ffa93f8c..2acf224ec9e 100644 --- a/README.md +++ b/README.md @@ -1700,6 +1700,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. * [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. * [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. + * [stop-and-go](https://github.com/elgohr/stop-and-go) - Testing helper for concurrency. * [testcase](https://github.com/adamluzsi/testcase) - Idiomatic testing framework for Behavior Driven Development. * [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. From 05e3144f8517bf77aeb5dd696d92d0dfbc2d54ab Mon Sep 17 00:00:00 2001 From: Peter Thaleikis Date: Fri, 20 Nov 2020 11:48:30 +0400 Subject: [PATCH 2152/3440] Fixing plural (#3367) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2acf224ec9e..31dc7faf7e2 100644 --- a/README.md +++ b/README.md @@ -1066,7 +1066,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [logxi](https://github.com/mgutz/logxi) - 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. * [mlog](https://github.com/jbrodriguez/mlog) - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. -* [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenario. Also, it is one of the logger with the lowest allocation. +* [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation. * [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). * [phuslu/log](https://github.com/phuslu/log) - Structured Logging Made Easy. * [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. From a2704936e64cd308e9768ad6ce880d370afdc13a Mon Sep 17 00:00:00 2001 From: Giacomo Russo Date: Mon, 23 Nov 2020 22:25:41 +0100 Subject: [PATCH 2153/3440] Add immudb (#3355) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 31dc7faf7e2..f8c473c948c 100644 --- a/README.md +++ b/README.md @@ -431,6 +431,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 Go. * [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. +* [immudb](https://github.com/codenotary/immudb) - immudb is a lightweight, high-speed immutable database for systems and applications written in Go. * [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics. * [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. * [ledisdb](https://github.com/siddontang/ledisdb) - Ledisdb is a high performance NoSQL like Redis based on LevelDB. From a37c424725e109fa1eaa5f0eb061b1df9f101c7a Mon Sep 17 00:00:00 2001 From: srfrog <8219721+srfrog@users.noreply.github.com> Date: Mon, 23 Nov 2020 14:26:43 -0700 Subject: [PATCH 2154/3440] Update README.md (#3353) Added package `slices` --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f8c473c948c..86d0420b29c 100644 --- a/README.md +++ b/README.md @@ -398,6 +398,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. * [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. * [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. +* [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. * [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. * [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. * [trie](https://github.com/derekparker/trie) - Trie implementation in Go. From aea19bafb702706507262e382c0692b67e5c298e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Youth=EF=BC=8E=E9=9C=96?= <6056413+youthlin@users.noreply.github.com> Date: Mon, 23 Nov 2020 15:29:07 -0600 Subject: [PATCH 2155/3440] Update Readme.md (#3358) add `github.com/youthlin/stream` --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 86d0420b29c..34703331912 100644 --- a/README.md +++ b/README.md @@ -1629,6 +1629,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries and tools for stream processing and reactive programming.* * [go-streams](https://github.com/reugn/go-streams) - Go stream processing library. +* [stream](https://github.com/youthlin/stream) - Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce... ## Template Engines From 2d0691a2da373dbe5c81389993d7152a3c1321ba Mon Sep 17 00:00:00 2001 From: Mehrdad Arshad Rad Date: Mon, 23 Nov 2020 13:29:46 -0800 Subject: [PATCH 2156/3440] add tcpprobe (#3359) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 34703331912..a980a713e84 100644 --- a/README.md +++ b/README.md @@ -2434,6 +2434,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. +* [tcpprobe](https://github.com/mehrdadrad/tcpprobe) - TCP tool for network performance and path monitoring, including socket statistics. * [term-quiz](https://github.com/crazcalm/term-quiz) - Quizzes for your terminal. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. From 60c8239963b18623c526d8863d505729dd7f9a96 Mon Sep 17 00:00:00 2001 From: Makhnev Petr <51853996+i582@users.noreply.github.com> Date: Tue, 24 Nov 2020 00:34:26 +0300 Subject: [PATCH 2157/3440] Add cfmt (#3363) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a980a713e84..5edeff6eda2 100644 --- a/README.md +++ b/README.md @@ -246,6 +246,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. * [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that supports fmt.Printf/Sprintf. * [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. +* [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. * [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. * [colourize](https://github.com/TreyBastian/colourize) - Go library for ANSI colour text in terminals. * [ctc](https://github.com/wzshiming/ctc) - The non-invasive cross-platform terminal color library does not need to modify the Print method. From 744a3826686b8eb2c1b310af5dc4df0ef915eaae Mon Sep 17 00:00:00 2001 From: zerosnake0 Date: Wed, 25 Nov 2020 02:30:35 +0800 Subject: [PATCH 2158/3440] add goctx (#3362) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5edeff6eda2..aab4c9068f4 100644 --- a/README.md +++ b/README.md @@ -1952,6 +1952,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. +* [goctx](https://github.com/zerosnake0/goctx) - Get your context value with high performance. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. * [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. * [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. From b07413d316ef1d1d4372d35a2c05e5560da9da77 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 30 Nov 2020 20:57:35 +0100 Subject: [PATCH 2159/3440] Add simple-jwt-provider (https://github.com/leberKleber/simple-jwt-provider) (#3311) * Add simple-jwt-provider (https://github.com/leberKleber/simple-jwt-provider) * move simple-jwt-provider to 'Server Applications' --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aab4c9068f4..66b75f6828f 100644 --- a/README.md +++ b/README.md @@ -1622,6 +1622,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. * [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [SFTPGo](https://github.com/drakkan/sftpgo) - Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support. It can serve local filesystem and Cloud Storage backends such as S3 and Google Cloud Storage. +* [simple-jwt-provider](https://github.com/leberKleber/simple-jwt-provider) - Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management. * [Trickster](https://github.com/tricksterproxy/trickster) - HTTP reverse proxy cache and time series accelerator. From e07b6712b62f74f09f63d0e656a6d9f3835328d3 Mon Sep 17 00:00:00 2001 From: Daniil Literate Date: Fri, 4 Dec 2020 22:12:22 +0500 Subject: [PATCH 2160/3440] Add https://gitlab.com/pjrpc/pjrpc (#3384) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 66b75f6828f..5101e8ac987 100644 --- a/README.md +++ b/README.md @@ -639,6 +639,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems. * [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. * [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. +* [pjrpc](https://gitlab.com/pjrpc/pjrpc) - Golang JSON-RPC Server-Client with Protobuf spec. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. * [rain](https://github.com/cenkalti/rain) - BitTorrent client and library. From 8391567ca0d2c3a81d6b6dc1be89912fd27eeebf Mon Sep 17 00:00:00 2001 From: Kazuki Date: Fri, 4 Dec 2020 09:13:03 -0800 Subject: [PATCH 2161/3440] Add sleet (#3306) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5101e8ac987..256bfcf95c4 100644 --- a/README.md +++ b/README.md @@ -760,6 +760,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). * [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. +* [sleet](https://github.com/BoltApp/sleet) - One unified interface for multiple Payment Service Providers (PsP) to process online payment * [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies. * [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. From b8904f3033bdfa2def7f6210033a4d219f3f4bf9 Mon Sep 17 00:00:00 2001 From: Cory LaNou Date: Fri, 4 Dec 2020 11:18:35 -0600 Subject: [PATCH 2162/3440] Add Digital Ocean "How to Code In Go ebook" (#3385) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 256bfcf95c4..50e785c2cf7 100644 --- a/README.md +++ b/README.md @@ -2500,6 +2500,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go Bootcamp](http://golangbootcamp.com) * [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. * [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. +* [How To Code in Go eBook](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) - A 600 page introduction to Go aimed at first time developers. * [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) * [Network Programming With Go](https://jan.newmarch.name/go/) * [Spaceship Go A Journey to the Standard Library](https://blasrodri.github.io/spaceship-go-gh-pages/) From f2958123b4fbe11cce3197ad02594db3366b249d Mon Sep 17 00:00:00 2001 From: JF Technology <57098161+jf-tech@users.noreply.github.com> Date: Sat, 5 Dec 2020 06:20:32 +1300 Subject: [PATCH 2163/3440] Add omniparser (#3366) * Add omniparser * a word change --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 50e785c2cf7..84d472ca03d 100644 --- a/README.md +++ b/README.md @@ -1790,6 +1790,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. * [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. * [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. + * [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. * [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. * [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang * [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. From ff32d6cbc5ebcbd077004ff6fc9aed5377c063c9 Mon Sep 17 00:00:00 2001 From: Kevin Tang <73975146+vt128@users.noreply.github.com> Date: Sat, 5 Dec 2020 01:22:22 +0800 Subject: [PATCH 2164/3440] Add todotxt in file handling section (#3368) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84d472ca03d..3d6cadacd30 100644 --- a/README.md +++ b/README.md @@ -742,6 +742,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. * [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. * [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. +* [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [*todo.txt*](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [*todo.txt* format](https://github.com/todotxt/todo.txt). * [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. ## Financial From b90afe8beee3cfa33a5c25da597bf3510b9c2898 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20=C4=90=E1=BB=A9c=20Chi=E1=BA=BFn?= Date: Sat, 5 Dec 2020 01:06:01 +0700 Subject: [PATCH 2165/3440] Update link go-git (#3372) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3d6cadacd30..009e56731e6 100644 --- a/README.md +++ b/README.md @@ -2089,7 +2089,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. -* [go-git](https://github.com/src-d/go-git) - highly extensible Git implementation in pure Go. +* [go-git](https://github.com/go-git/go-git) - highly extensible Git implementation in pure Go. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hercules](https://github.com/src-d/hercules) - gaining advanced insights from Git repository history. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. From f6d599e52a2bf9671a86d92ed66488f8e8971df7 Mon Sep 17 00:00:00 2001 From: Ilya Sinelnikov <22031363+sidh@users.noreply.github.com> Date: Fri, 4 Dec 2020 21:09:23 +0300 Subject: [PATCH 2166/3440] Add golang.yandex/hasql (#3373) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 009e56731e6..0366a197d17 100644 --- a/README.md +++ b/README.md @@ -500,6 +500,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. * [goqu](https://github.com/doug-martin/goqu) - Idiomatic SQL builder and query library. * [gosql](https://github.com/twharmon/gosql) - SQL Query builder with better null values support. +* [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. * [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. * [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. * [mpath](https://github.com/spacetab-io/mpath-go) - MPTT (Modified Preorder Tree Traversal) package for SQL records - materialized path realisation. From e1737d4d51d1030bb997ff80107c6703fde53b2a Mon Sep 17 00:00:00 2001 From: Jonathan Whitaker <53584260+jonathan-whitaker@users.noreply.github.com> Date: Fri, 4 Dec 2020 10:12:01 -0800 Subject: [PATCH 2167/3440] Add github.com/whitaker-io/machine (#3376) * adding machine to Stream Processing * Focusing description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0366a197d17..d0bd74c38dc 100644 --- a/README.md +++ b/README.md @@ -1635,6 +1635,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries and tools for stream processing and reactive programming.* * [go-streams](https://github.com/reugn/go-streams) - Go stream processing library. +* [machine](https://github.com/whitaker-io/machine) - Go library for writing and generating stream workers with built in metrics and traceability. * [stream](https://github.com/youthlin/stream) - Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce... ## Template Engines From d1b3f35848f7230e35b3016f53095eba835d321f Mon Sep 17 00:00:00 2001 From: vivek-ng Date: Fri, 4 Dec 2020 12:29:04 -0800 Subject: [PATCH 2168/3440] Add concurrency limiter (#3378) * update readme with concurrency limiter * end statement * change order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d0bd74c38dc..7077caf6655 100644 --- a/README.md +++ b/README.md @@ -865,6 +865,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. * [channelify](https://github.com/ddelizia/channelify) - Transform your function to return channels for easy and powerful parallel processing. +* [concurrency-limiter](https://github.com/vivek-ng/concurrency-limiter) - Concurrency limiter with support for timeouts , dynamic priority and context cancellation of goroutines. * [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. From 0a0df8ed650f0e5687145d9ee7f5558db17de9d9 Mon Sep 17 00:00:00 2001 From: John Roesler <19351306+JohnRoesler@users.noreply.github.com> Date: Fri, 4 Dec 2020 14:35:37 -0600 Subject: [PATCH 2169/3440] Add go-co-op/gocron to Job Scheduler (#3379) * Add go-co-op/gocron to Job Scheduler * sorting, dashes first --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7077caf6655..ae25f9c338e 100644 --- a/README.md +++ b/README.md @@ -1002,6 +1002,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [clockwork](https://github.com/whiteShtef/clockwork) - Simple and intuitive job scheduling library in Go. * [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. +* [gocron](https://github.com/go-co-op/gocron) - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. * [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. From 2c8b1bb9f18f72c49579e7dc4275b5b3efb4b8b5 Mon Sep 17 00:00:00 2001 From: Eugene R Date: Fri, 4 Dec 2020 22:38:48 +0200 Subject: [PATCH 2170/3440] Add async (#3382) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ae25f9c338e..5a2f7c13f14 100644 --- a/README.md +++ b/README.md @@ -862,6 +862,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ants](https://github.com/panjf2000/ants) - A high-performance and low-cost goroutine pool in Go. * [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. +* [async](https://github.com/reugn/async) - An alternative sync library for Go (Future, Promise, Locks). * [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. * [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. * [channelify](https://github.com/ddelizia/channelify) - Transform your function to return channels for easy and powerful parallel processing. From 8fb21b0c6d6291be9fdcabda273c5c63c53bec5a Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Fri, 4 Dec 2020 21:41:17 +0100 Subject: [PATCH 2171/3440] added go-proxy-cache as server application (#3383) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a2f7c13f14..c7144081873 100644 --- a/README.md +++ b/README.md @@ -1619,6 +1619,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. * [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js +* [go-proxy-cache](https://github.com/fabiocicerchia/go-proxy-cache) - Simple Reverse Proxy with Caching, written in Go, using Redis. * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. * [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. From bdfc89384f9c8ca4ec8df60e624e12982200c9d6 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Dec 2020 17:48:07 -0300 Subject: [PATCH 2172/3440] fixed typo on sleet Signed-off-by: Avelino --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7144081873..9acae3075c1 100644 --- a/README.md +++ b/README.md @@ -762,7 +762,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). * [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. -* [sleet](https://github.com/BoltApp/sleet) - One unified interface for multiple Payment Service Providers (PsP) to process online payment +* [sleet](https://github.com/BoltApp/sleet) - One unified interface for multiple Payment Service Providers (PsP) to process online payment. * [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies. * [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. From f5e150b5ec319099cccbed4745bcbec83593fed6 Mon Sep 17 00:00:00 2001 From: Yury Fedorov <10244414+orlangure@users.noreply.github.com> Date: Wed, 9 Dec 2020 16:46:18 +0200 Subject: [PATCH 2173/3440] Add gnomock to testing frameworks list (#3370) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9acae3075c1..fc154a14d1f 100644 --- a/README.md +++ b/README.md @@ -1689,6 +1689,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. * [frisby](https://github.com/verdverm/frisby) - REST API testing framework. * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. + * [gnomock](https://github.com/orlangure/gnomock) - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks. * [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal. * [go-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests. * [go-hit](https://github.com/Eun/go-hit) - Hit is an http integration test framework written in golang. From 9d627e6a991f16865a8c957fc036a287ab81699f Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Mon, 21 Dec 2020 00:36:38 +0530 Subject: [PATCH 2174/3440] remove 'r' (#3405) https://github.com/is5/r and https://github.com/is5 give 404 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index fc154a14d1f..7497569c720 100644 --- a/README.md +++ b/README.md @@ -2019,7 +2019,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. -* [r](https://github.com/is5/r) - Python-like `range()` experience for Go. * [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. From f204725354e42a30784c4b7d42bfd01d20de88bb Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Tue, 22 Dec 2020 12:43:10 +0800 Subject: [PATCH 2175/3440] added go-featureprocessing (#3409) * added go-featureprocessing * fix * fix --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7497569c720..59bb0b0ddfc 100644 --- a/README.md +++ b/README.md @@ -1102,6 +1102,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-cluster](https://github.com/e-XpertSolutions/go-cluster) - Go implementation of the k-modes and k-prototypes clustering algorithms. * [go-deep](https://github.com/patrikeh/go-deep) - A feature-rich neural network library in Go. * [go-fann](https://github.com/white-pony/go-fann) - Go bindings for Fast Artificial Neural Networks(FANN) library. +* [go-featureprocessing](https://github.com/nikolaydubina/go-featureprocessing) - Fast and convenient feature processing for low latency machine leraning in Go. * [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. From 271d35b49d95ef435f6d90c7785681dadfd6f49b Mon Sep 17 00:00:00 2001 From: William Poussier Date: Tue, 22 Dec 2020 08:08:21 +0100 Subject: [PATCH 2176/3440] feat: add github.com/wI2L/jsondiff (#3402) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59bb0b0ddfc..750c055abd1 100644 --- a/README.md +++ b/README.md @@ -1029,6 +1029,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. * [json2go](https://github.com/m-zajac/json2go) - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. * [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. +* [jsondiff](https://github.com/wI2L/jsondiff) - JSON diff library for Go based on RFC6902 (JSON Patch). * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [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. From f8c63dd68ea4a6fb3fcd94bfff2c009c6d342d97 Mon Sep 17 00:00:00 2001 From: William Poussier Date: Tue, 22 Dec 2020 08:25:49 +0100 Subject: [PATCH 2177/3440] fix: update github.com/wI2L/jettison description (#3400) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 750c055abd1..9f74bd4933b 100644 --- a/README.md +++ b/README.md @@ -500,7 +500,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. * [goqu](https://github.com/doug-martin/goqu) - Idiomatic SQL builder and query library. * [gosql](https://github.com/twharmon/gosql) - SQL Query builder with better null values support. -* [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. +* [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. * [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. * [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. * [mpath](https://github.com/spacetab-io/mpath-go) - MPTT (Modified Preorder Tree Traversal) package for SQL records - materialized path realisation. @@ -1025,7 +1025,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gojq](https://github.com/elgs/gojq) - JSON query in Golang. * [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. -* [jettison](https://github.com/wI2L/jettison) - High performance, reflection-less JSON encoder for Go. +* [jettison](https://github.com/wI2L/jettison) - Fast and flexible JSON encoder for Go. * [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. * [json2go](https://github.com/m-zajac/json2go) - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. * [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. From 7d04b33e62f5aa72d55b3df67d9533f6ce217915 Mon Sep 17 00:00:00 2001 From: Toni Melisma <59022391+tonimelisma@users.noreply.github.com> Date: Tue, 22 Dec 2020 09:30:05 +0200 Subject: [PATCH 2178/3440] Update README.md (#3398) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f74bd4933b..d1781171e83 100644 --- a/README.md +++ b/README.md @@ -959,6 +959,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. * [goimghdr](https://github.com/corona10/goimghdr) - The imghdr module determines the type of image contained in a file for Go. * [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. +* [govips](https://github.com/davidbyttow/govips) - A lightning fast image processing and resizing library for Go. * [gridder](https://github.com/shomali11/gridder) - A Grid based 2D Graphics library. * [image2ascii](https://github.com/qeesung/image2ascii) - Convert image to ASCII. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. From 4e0036c4f745d27c78fce24caf3aff5d3f64181e Mon Sep 17 00:00:00 2001 From: Matthias Ladkau Date: Tue, 22 Dec 2020 07:45:27 +0000 Subject: [PATCH 2179/3440] doc: Adding ECAL language interpreter (#3396) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1781171e83..3f750fddf39 100644 --- a/README.md +++ b/README.md @@ -688,6 +688,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). * [cel-go](https://github.com/google/cel-go) - Fast, portable, non-Turing complete expression evaluation with gradual typing. +* [ecal](https://github.com/krotik/ecal) - A simple embeddable scripting language which supports concurrent event processing. * [expr](https://github.com/antonmedv/expr) - Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing. * [gentee](https://github.com/gentee/gentee) - Embeddable scripting programming language. * [gisp](https://github.com/jcla1/gisp) - Simple LISP in Go. From 87ffe8e49047eee9dc73181c18c934f342cbc9e8 Mon Sep 17 00:00:00 2001 From: Peter Thaleikis Date: Tue, 22 Dec 2020 11:48:52 +0400 Subject: [PATCH 2180/3440] Improving readabilitiy (#3391) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3f750fddf39..1c6dbcfeb3d 100644 --- a/README.md +++ b/README.md @@ -1511,7 +1511,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fileb0x](https://github.com/UnnoTed/fileb0x) - Simple tool to embed files in go with focus on "customization" and ease to use. * [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. +* [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. * [mule](https://github.com/wlbr/mule) - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focussed on simplicity. * [packr](https://github.com/gobuffalo/packr) - The simple and easy way to embed static files into Go binaries. * [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. From ea9883fd9d5d8e75e9e506b33b1750a65541b08c Mon Sep 17 00:00:00 2001 From: Leonardo Lima Date: Tue, 22 Dec 2020 04:53:45 -0300 Subject: [PATCH 2181/3440] Added hare repo (#3389) Added [hare](https://github.com/leozz37/hare) to #messaging category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1c6dbcfeb3d..43dae836f8c 100644 --- a/README.md +++ b/README.md @@ -1166,6 +1166,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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). * [gosd](https://github.com/alexsniffin/gosd) - A library for scheduling when to dispatch a message to a channel. * [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. +* [hare](https://github.com/leozz37/hare) - A user friendly library for sending messages and listening to TCP sockets. * [hub](https://github.com/leandro-lugaresi/hub) - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. * [jazz](https://github.com/socifi/jazz) - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. * [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. From 7c32c23229f9a926fe6900e0aa567a041fbbec89 Mon Sep 17 00:00:00 2001 From: Pascal Dennerly Date: Wed, 23 Dec 2020 02:41:14 +0000 Subject: [PATCH 2182/3440] Add abbreviate (#3387) * Add abbreviate and httpref * Remove httpref * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 43dae836f8c..e4bce803f71 100644 --- a/README.md +++ b/README.md @@ -2342,6 +2342,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### DevOps Tools +* [abbreviate](https://github.com/dnnrly/abbreviate) - abbreviate is a tool turning long strings in to shorter ones with configurable seperaters, for example to embed branch names in to deployment stack IDs. * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. * [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. * [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. From 7aa3ce46b9b63ee79a0e92b264d2fed9986345e8 Mon Sep 17 00:00:00 2001 From: Herbert Lu <15816537946@163.com> Date: Wed, 23 Dec 2020 12:41:44 +0800 Subject: [PATCH 2183/3440] Add email-verifier repo (#3411) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4bce803f71..a08d09731dd 100644 --- a/README.md +++ b/README.md @@ -668,6 +668,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [chasquid](https://blitiri.com.ar/p/chasquid) - SMTP server written in Go. * [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. +* [email-verifier](https://github.com/AfterShip/email-verifier) - A Go library for email verification without sending any emails. * [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. From f94cc5cf6cba79e15e5cb11d6fb5919e156d5ad9 Mon Sep 17 00:00:00 2001 From: Amanbolat Balabekov Date: Sat, 2 Jan 2021 00:09:32 +0800 Subject: [PATCH 2184/3440] Remove few repos and update caddy (#3420) https://github.com/noraesae/orange-cat - doesn't exist https://github.com/LyricalSecurity/gigo - doesn't exist https://github.com/Obaied/RAKE.go - was moved https://github.com/mholt/caddy - was moved --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a08d09731dd..1786f47c704 100644 --- a/README.md +++ b/README.md @@ -1327,7 +1327,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. English only. -* [RAKE.go](https://github.com/Obaied/RAKE.go) - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE). +* [RAKE.go](https://github.com/afjoseph/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. @@ -1469,7 +1469,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Unofficial libraries for package and dependency management.* -* [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. * [glide](https://github.com/Masterminds/glide) - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. * [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. @@ -1616,7 +1615,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Server Applications * [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. +* [Caddy](https://github.com/caddyserver/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. * [discovery](https://github.com/Bilibili/discovery) - A registry for resilient mid-tier load balancing and failover. @@ -2443,7 +2442,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. * [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. -* [orange-cat](https://github.com/noraesae/orange-cat) - Markdown previewer written in Go. * [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. * [restic](https://github.com/restic/restic) - De-duplicating backup program. From 0bd96605a29dae362f30676d493186519f64f88f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20G=2E=20MARAND?= Date: Mon, 4 Jan 2021 07:55:02 +0100 Subject: [PATCH 2185/3440] Update mangos to v2 repository. (#3428) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1786f47c704..d588cb2f610 100644 --- a/README.md +++ b/README.md @@ -1171,7 +1171,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [hub](https://github.com/leandro-lugaresi/hub) - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. * [jazz](https://github.com/socifi/jazz) - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. * [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. -* [mangos](https://github.com/go-mangos/mangos) - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. +* [mangos](https://github.com/nanomsg/mangos) - Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability. * [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. * [Mercure](https://github.com/dunglas/mercure) - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events). * [messagebus](https://github.com/vardius/message-bus) - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. From 05b1a91ac6c1841e5da3c388d451f93fcc119fdd Mon Sep 17 00:00:00 2001 From: Shubham Sinha Date: Mon, 4 Jan 2021 12:28:38 +0530 Subject: [PATCH 2186/3440] Added Bleep to Utilities (#3427) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d588cb2f610..c239d8de228 100644 --- a/README.md +++ b/README.md @@ -1924,6 +1924,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. * [beyond](https://github.com/wesovilabs/beyond) - The Go tool that will drive you to the AOP world! * [blank](https://github.com/Henry-Sarabia/blank) - Verify or remove blanks and whitespace from strings. +* [bleep](https://github.com/sinhashubham95/bleep) - Perform any number of actions on any set of OS signals in Go. * [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. * [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. * [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. From 2a8e64baa3ad1293debcfe20c72db24b5e1e5c4b Mon Sep 17 00:00:00 2001 From: Ronnie Date: Sun, 3 Jan 2021 23:45:44 -0800 Subject: [PATCH 2187/3440] add changie (#3423) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c239d8de228..680315921c6 100644 --- a/README.md +++ b/README.md @@ -1926,6 +1926,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [blank](https://github.com/Henry-Sarabia/blank) - Verify or remove blanks and whitespace from strings. * [bleep](https://github.com/sinhashubham95/bleep) - Perform any number of actions on any set of OS signals in Go. * [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. +* [changie](https://github.com/miniscruff/changie) - Automated changelog tool for preparing releases with lots of customization options. * [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. * [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. * [circuitbreaker](https://github.com/rubyist/circuitbreaker) - Circuit Breakers in Go. From 55a81c4f83caa9ecd5020b11242d2fc264bbb4ed Mon Sep 17 00:00:00 2001 From: Herby Gillot Date: Wed, 6 Jan 2021 10:52:52 -0500 Subject: [PATCH 2188/3440] Add the sprig template functions library (#3431) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 680315921c6..7325cfddf8d 100644 --- a/README.md +++ b/README.md @@ -1671,6 +1671,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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/). +* [sprig](https://github.com/Masterminds/sprig) - Useful template functions for Go templates. * [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go. ## Testing From a0c2c0291295bbefbf2857df491c51c937c155ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Fri, 8 Jan 2021 17:17:56 +0100 Subject: [PATCH 2189/3440] Add golang-templates/seed (#3432) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7325cfddf8d..eb2351baf7d 100644 --- a/README.md +++ b/README.md @@ -1227,6 +1227,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. * [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. +* [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. * [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. From 7092c16af411e7bb980c197dfcbd9787048000f6 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 12 Jan 2021 15:49:17 -0300 Subject: [PATCH 2190/3440] remove carbon ads Signed-off-by: Avelino --- tmpl/tmpl.html | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index aeb94b066d7..4c0607184cb 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -23,10 +23,6 @@ -

- -

{{.Body}} From 70555ec36f6ce5651429e78003fe15d028a26196 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 12 Jan 2021 15:50:41 -0300 Subject: [PATCH 2191/3440] set html title Signed-off-by: Avelino --- tmpl/tmpl.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index 4c0607184cb..ff3cf9281d5 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -6,11 +6,11 @@ - Awesome Go + A curated list of awesome Go frameworks, libraries and software - Awesome Go - + From 517cdad3680fd3f3605107794058c623ed211d61 Mon Sep 17 00:00:00 2001 From: Matteo Grella Date: Wed, 13 Jan 2021 07:02:25 +0100 Subject: [PATCH 2192/3440] Add https://github.com/nlpodyssey/spago (#3406) * Add https://github.com/nlpodyssey/spago * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eb2351baf7d..6132a2583cf 100644 --- a/README.md +++ b/README.md @@ -1333,6 +1333,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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/). +* [spaGO](https://github.com/nlpodyssey/spago) - Self-contained Machine Learning and Natural Language Processing library in Go. * [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. * [transliterator](https://github.com/alexsergivan/transliterator) - Provides one-way string transliteration with supporting of language-specific transliteration rules. From 09ba3657d01cc3e2f03c6a6e39b9eb8e6c1a9fea Mon Sep 17 00:00:00 2001 From: Hazar <36481442+hazarek@users.noreply.github.com> Date: Wed, 13 Jan 2021 15:23:02 +0300 Subject: [PATCH 2193/3440] Typo (#3447) typo - comprehensive --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6132a2583cf..c2db4fc3379 100644 --- a/README.md +++ b/README.md @@ -2119,7 +2119,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-astits](https://github.com/asticode/go-astits) - Parse and demux MPEG Transport Streams (.ts) natively in GO. * [go-m3u8](https://github.com/quangngotan95/go-m3u8) - Parser and generator library for Apple m3u8 playlists. * [go-mpd](https://github.com/unki2aut/go-mpd) - Parser and generator library for MPEG-DASH manifest files. -* [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. +* [goav](https://github.com/giorgisio/goav) - Comprehensive Go bindings for FFmpeg. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. * [libvlc-go](https://github.com/adrg/libvlc-go) - Go bindings for libvlc 2.X/3.X/4.X (used by the VLC media player). From edf9fe372d75e6e1a8a3bd27410e9dd65395b7bc Mon Sep 17 00:00:00 2001 From: pasdam Date: Wed, 13 Jan 2021 13:28:51 +0100 Subject: [PATCH 2194/3440] Add mockito to testing section (#3416) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c2db4fc3379..b20cdddf656 100644 --- a/README.md +++ b/README.md @@ -1745,6 +1745,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httpmock](https://github.com/jarcoal/httpmock) - Easy mocking of HTTP responses from external resources. * [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. + * [mockit](https://github.com/pasdam/mockit) - Allows functions and method easy mocking, without defining new types; it's similar to Mockito for Java. * [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. * Fuzzing and delta-debugging/reducing/shrinking. From 29a6cf640b89dce6fedb83e0d5bc4dcab0150e2a Mon Sep 17 00:00:00 2001 From: Qingshan Luo Date: Wed, 13 Jan 2021 20:30:07 +0800 Subject: [PATCH 2195/3440] Add zkits logger library. (#3417) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b20cdddf656..d7d32b99afe 100644 --- a/README.md +++ b/README.md @@ -1093,6 +1093,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [xlog](https://github.com/rs/xlog) - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. * [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. * [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. +* [zkits-logger](https://github.com/edoger/zkits-logger) - A powerful zero-dependency JSON logger. ## Machine Learning From 43984654a6a732c5b75fe7642736784425d95856 Mon Sep 17 00:00:00 2001 From: Kyle Piper <35900438+krayzpipes@users.noreply.github.com> Date: Wed, 13 Jan 2021 07:35:35 -0500 Subject: [PATCH 2196/3440] added cronticker (#3424) * added cronticker * Moved cronticker to `Job Scheduler` --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d7d32b99afe..6bf0976e4be 100644 --- a/README.md +++ b/README.md @@ -1004,6 +1004,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [clockwerk](http://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. * [clockwork](https://github.com/whiteShtef/clockwork) - Simple and intuitive job scheduling library in Go. +* [cronticker](https://github.com/krayzpipes/cronticker) - A ticker implementation to support cron schedules. * [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. * [gocron](https://github.com/go-co-op/gocron) - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). From 28373da42fc66ece05e521e019e226b9bc07579f Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 13 Jan 2021 14:39:13 +0200 Subject: [PATCH 2197/3440] Added another one db (#3433) * Added go-mq * Added github.com/cheshir/ttlcache to databases. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6bf0976e4be..4f85dd9ac6e 100644 --- a/README.md +++ b/README.md @@ -450,6 +450,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. * [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. * [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. +* [ttlcache](https://github.com/cheshir/ttlcache) - In-memory key value storage with TTL for each record. * [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. * [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. * [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. From 0000bab46c225837a6796226967f376c18c0b2c4 Mon Sep 17 00:00:00 2001 From: Masaya Hayashi Date: Wed, 13 Jan 2021 22:51:20 +0900 Subject: [PATCH 2198/3440] Add device-check-go (#3435) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f85dd9ac6e..bcfc7c98e54 100644 --- a/README.md +++ b/README.md @@ -1847,6 +1847,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [clarifai](https://github.com/samuelcouch/clarifai) - Go client library for interfacing with the Clarifai API. * [codeship-go](https://github.com/codeship/codeship-go) - Go client library for interacting with Codeship's API v2. * [coinpaprika-go](https://github.com/coinpaprika/coinpaprika-api-go-client) - Go client library for interacting with Coinpaprika's API. +* [device-check-go](https://github.com/rinchsan/device-check-go) - Go client library for interacting with [iOS DeviceCheck API](https://developer.apple.com/documentation/devicecheck) v1. * [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API. * [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API. From 0d9021443eb4dcde5ea12c5fb40810bbc01cf57f Mon Sep 17 00:00:00 2001 From: Bojan Zivanovic Date: Wed, 13 Jan 2021 14:52:12 +0100 Subject: [PATCH 2199/3440] Add bojanz/address (#3436) Co-authored-by: Bojan Zivanovic --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bcfc7c98e54..96ecfa03daa 100644 --- a/README.md +++ b/README.md @@ -1302,6 +1302,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with human languages.* +* [address](https://github.com/bojanz/address) - Handles address representation, validation and formatting. * [detectlanguage](https://github.com/detectlanguage/detectlanguage-go) - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection. * [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. * [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. From d5f0474a673eeae76c85211a8dc41d057f313213 Mon Sep 17 00:00:00 2001 From: Shubham Sinha Date: Wed, 13 Jan 2021 19:24:29 +0530 Subject: [PATCH 2200/3440] Adding Jsonic (#3440) * Added Bleep to Utilities * Added Jsonic to JSON --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 96ecfa03daa..57d2585ec2f 100644 --- a/README.md +++ b/README.md @@ -1038,6 +1038,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [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. +* [jsonic](https://github.com/sinhashubham95/jsonic) - Utilities to handle and query JSON without defining structs in a type safe manner. * [jzon](https://github.com/zerosnake0/jzon) - JSON library with standard compatible API/behavior. * [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. * [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. From 184274888e37a604035c818f3db23fcb7fb0a533 Mon Sep 17 00:00:00 2001 From: Thomas Poignant Date: Wed, 13 Jan 2021 14:55:05 +0100 Subject: [PATCH 2201/3440] Update README.md (#3441) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 57d2585ec2f..65aa5260a3d 100644 --- a/README.md +++ b/README.md @@ -1631,6 +1631,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. * [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js +* [go-feature-flag](https://github.com/thomaspoignant/go-feature-flag) - A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. * [go-proxy-cache](https://github.com/fabiocicerchia/go-proxy-cache) - Simple Reverse Proxy with Caching, written in Go, using Redis. * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. * [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. From 77f31cd33fadee8783499bb554427d1e74268141 Mon Sep 17 00:00:00 2001 From: mikepecha <58034926+mikepecha@users.noreply.github.com> Date: Wed, 13 Jan 2021 15:03:11 +0100 Subject: [PATCH 2202/3440] Added golangresources.com (#3444) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 65aa5260a3d..f4e12e00e11 100644 --- a/README.md +++ b/README.md @@ -2656,6 +2656,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Developer Jobs](https://golangjob.xyz) - Developer Jobs exclusivly for Golang related Roles. * [Golang Flow](https://golangflow.io) - Post Updates, News, Packages and more. * [Golang News](https://golangnews.com) - Links and news about Go programming. +* [Golang Resources](https://golangresources.com) - A curation of the best articles, exercises, talks and videos to learn Go. * [golang-graphics](https://github.com/mholt/golang-graphics) - Collection of Go images, graphics, and art. * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. * [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. From 3eea9a6732e0dc5c097e9ffee8afb88a8783bd66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=ADtalo=20Silva?= Date: Wed, 13 Jan 2021 11:05:56 -0300 Subject: [PATCH 2203/3440] Add link to fastjson repository (#3446) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f4e12e00e11..ab092a54ecb 100644 --- a/README.md +++ b/README.md @@ -1023,6 +1023,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dynjson](https://github.com/cocoonspace/dynjson) - Client-customizable JSON formats for dynamic APIs. * [ej](https://github.com/lucassscaravelli/ej) - Write and read JSON from different sources succinctly. * [epoch](https://github.com/vtopc/epoch) - Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from build-in time.Time type in JSON. +* [fastjson](https://github.com/valyala/fastjson) - Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection. * [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. * [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. * [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is ment to allow us to easily create json response errors that follow the JsonApi spec. From 389b9188afccd823603a66c04156731f122adb4d Mon Sep 17 00:00:00 2001 From: Ilia Sergunin Date: Wed, 13 Jan 2021 21:04:10 +0300 Subject: [PATCH 2204/3440] Add go-email-validator (#3418) * Add go-email-validator * Add point in the end of sentence --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ab092a54ecb..48386f380ee 100644 --- a/README.md +++ b/README.md @@ -671,6 +671,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go. * [email-verifier](https://github.com/AfterShip/email-verifier) - A Go library for email verification without sending any emails. * [go-dkim](https://github.com/toorop/go-dkim) - DKIM library, to sign & verify email. +* [go-email-validator](https://github.com/go-email-validator/go-email-validator) - Modular email validator for syntax, disposable, smtp, etc... checking. * [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-premailer](https://github.com/vanng822/go-premailer) - Inline styling for HTML mail in Go. From e66d70945442aeafdd3b6e478f893ad4ba1d91c1 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Wed, 13 Jan 2021 19:05:31 +0100 Subject: [PATCH 2205/3440] Add Playwright for Go (#3419) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 48386f380ee..1bfec9f9357 100644 --- a/README.md +++ b/README.md @@ -1765,6 +1765,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. + * [playwright-go](https://github.com/mxschmitt/playwright-go) - browser automation library to control Chromium, Firefox and WebKit with a single API. * [rod](https://github.com/go-rod/rod) - A Devtools driver to make web automation and scraping easy. * [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. From 1a54df18845468af378247b9478992a15b136e70 Mon Sep 17 00:00:00 2001 From: Thanh Ba Nguyen Date: Thu, 14 Jan 2021 05:06:47 +1100 Subject: [PATCH 2206/3440] Add REST client and `database/sql` driver for Azure Cosmos DB (#3414) * Add package btnguyen2k/olaf * Add database client and driver for Azure Cosmos DB * Add database client and driver for Azure Cosmos DB Co-authored-by: Thanh Nguyen --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1bfec9f9357..c632e7e6c07 100644 --- a/README.md +++ b/README.md @@ -545,6 +545,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa. * [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. + * [gocosmos](https://github.com/btnguyen2k/gocosmos) - REST client and standard `database/sql` driver for Azure Cosmos DB. * [gocql](http://gocql.github.io) - Go language driver for Apache Cassandra. * [godis](https://github.com/piaohao/godis) - redis client implement by golang, inspired by jedis. * [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. From 812442ce1dcd355a8ba3d246ab980bcec4149050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Thu, 14 Jan 2021 02:11:08 +0100 Subject: [PATCH 2207/3440] Create Build Automation category and add taskflow (#3401) --- README.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c632e7e6c07..f8d56bac988 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Audio and Music](#audio-and-music) - [Authentication and OAuth](#authentication-and-oauth) - [Bot Building](#bot-building) + - [Build Automation](#build-automation) - [Command Line](#command-line) - [Configuration](#configuration) - [Continuous Integration](#continuous-integration) @@ -194,13 +195,25 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. +## Build Automation + +*Libraries and tools helping with build automation.* + +* [1build](https://github.com/gopinath-langote/1build) - Command line tool to frictionlessly manage project-specific commands. +* [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. +* [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. +* [mmake](https://github.com/tj/mmake) - Modern Make. +* [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. +* [Task](https://github.com/go-task/task) - simple "Make" alternative. +* [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. +* [taskflow](https://github.com/pellared/taskflow) - Create build pipelines in Go. + ## Command Line ### Standard CLI *Libraries for building standard or basic Command Line applications.* -* [1build](https://github.com/gopinath-langote/1build) - Command line tool to frictionlessly manage project-specific commands. * [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. * [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 struct tags. @@ -1966,7 +1979,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [filler](https://github.com/yaronsumel/filler) - small utility to fill structs using "fill" tag. * [filter](https://github.com/gookit/filter) - provide filtering, sanitizing, and conversion of Go data. * [fzf](https://github.com/junegunn/fzf) - Command-line fuzzy finder written in Go. -* [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. * [ghokin](https://github.com/antham/ghokin) - Parallelized formatter with no external dependencies for gherkin (cucumber, behat...). * [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git. @@ -2022,7 +2034,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mimetype](https://github.com/gabriel-vasile/mimetype) - Package for MIME type detection based on magic numbers. * [minify](https://github.com/tdewolff/minify) - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats. * [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). -* [mmake](https://github.com/tj/mmake) - Modern Make. * [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. * [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels. * [mongo-go-pagination](https://github.com/gobeam/mongo-go-pagination) - Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines. @@ -2042,7 +2053,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. * [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. * [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. -* [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. @@ -2068,8 +2078,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [statiks](https://github.com/janiltonmaciel/statiks) - Fast, zero-configuration, static HTTP filer server. * [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. -* [Task](https://github.com/go-task/task) - simple "Make" alternative. -* [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. * [tik](https://github.com/andy2046/tik) - Simple and easy timing wheel package for Go. * [tome](https://github.com/cyruzin/tome) - Tome was designed to paginate simple RESTful APIs. * [toolbox](https://github.com/viant/toolbox) - Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer. @@ -2339,7 +2347,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. * [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. * [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](http://yeoman.io) generator to get new Go projects started. -* [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-james](https://github.com/pieterclaerhout/go-james) - Go project skeleton creator, builds and tests your projects without the manual setup. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. From 4d14a5f1fcc67964206f9ef3c578b83934c8f89c Mon Sep 17 00:00:00 2001 From: Mehdi Pourfar Date: Thu, 14 Jan 2021 23:26:28 +0330 Subject: [PATCH 2208/3440] Add webp-server (#3430) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f8d56bac988..a0fb21ee743 100644 --- a/README.md +++ b/README.md @@ -997,6 +997,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [stegify](https://github.com/DimitarPetrov/stegify) - Go tool for LSB steganography, capable of hiding any file within an image. * [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. * [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. +* [webp-server](https://github.com/mehdipourfar/webp-server) - Simple and minimal image server capable of storing, resizing, converting and caching images. ## IoT (Internet of Things) From bf7b0b951dcd668bafb5a0841b3c6ac350ca9f95 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 18 Jan 2021 10:37:00 -0300 Subject: [PATCH 2209/3440] clear archive repository ref: #3453 Signed-off-by: Avelino --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index a0fb21ee743..e886d53dfa6 100644 --- a/README.md +++ b/README.md @@ -398,7 +398,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [iter](https://github.com/disksing/iter) - Go implementation of C++ STL iterators and algorithms. * [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. * [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. * [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. @@ -474,7 +473,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. -* [gondolier](https://github.com/emvi/gondolier) - Database migration library using struct decorators. * [goose](https://github.com/pressly/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/golang-migrate/migrate) - Database migrations. CLI and Golang library. @@ -487,7 +485,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Database tools.* -* [bucket](https://github.com/PumpkinSeed/bucket) - Optimized data structure framework for Couchbase specialized on one bucket usage. * [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. * [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small insterts and sends big requests to ClickHouse servers. * [datagen](https://github.com/codingconcepts/datagen) - A fast data generator that's multi-table aware and supports multi-row DML. @@ -543,7 +540,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). - * [goracle](https://github.com/go-goracle/goracle) - Oracle driver for Go, using the ODPI-C driver. * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. * [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. From 1f25de22050bf14c731e7c2dba549ac4c1a44abf Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 18 Jan 2021 10:39:38 -0300 Subject: [PATCH 2210/3440] upgrade pREST repository url Signed-off-by: Avelino --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e886d53dfa6..a10911f5ab2 100644 --- a/README.md +++ b/README.md @@ -498,7 +498,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pg_timetable](https://github.com/cybertec-postgresql/pg_timetable) - Advanced scheduling for PostgreSQL. * [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. * [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code. -* [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. +* [pREST](https://github.com/prest/prest) - Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new. * [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup. * [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. From bd77fc522a0e1cdfefea225c7c781edc5d315c89 Mon Sep 17 00:00:00 2001 From: tick Date: Tue, 19 Jan 2021 00:10:11 +0100 Subject: [PATCH 2211/3440] Remove llgo (#3451) llgo is no longer actively maintained and was dropped from the official LLVM source tree in February 2020. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a10911f5ab2..b70b58d3f23 100644 --- a/README.md +++ b/README.md @@ -867,7 +867,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [c4go](https://github.com/Konstantin8105/c4go) - Transpile C code to Go code. * [f4go](https://github.com/Konstantin8105/f4go) - Transpile FORTRAN 77 code to Go code. * [gopherjs](https://github.com/gopherjs/gopherjs) - Compiler from Go to JavaScript. -* [llgo](https://github.com/go-llvm/llgo) - LLVM-based compiler for Go. * [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. ## Goroutines From 7b6c398a0fd456ce5a44f937e66ce8aaf70888b7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 18 Jan 2021 20:12:48 -0300 Subject: [PATCH 2212/3440] remove constabulary/gb fixed: #3412 Signed-off-by: Avelino --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b70b58d3f23..12138e8ba00 100644 --- a/README.md +++ b/README.md @@ -2341,7 +2341,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. * [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. -* [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. * [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](http://yeoman.io) generator to get new Go projects started. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-james](https://github.com/pieterclaerhout/go-james) - Go project skeleton creator, builds and tests your projects without the manual setup. From 5148a55f599cd9e7d2e81c7c22bd7f3e20004f6c Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 18 Jan 2021 20:16:41 -0300 Subject: [PATCH 2213/3440] remove dynago ref: #3453 Signed-off-by: Avelino --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 12138e8ba00..91d24b82156 100644 --- a/README.md +++ b/README.md @@ -548,7 +548,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. - * [dynago](https://github.com/underarmour/dynago) - Dynago is a principle of least surprise client for DynamoDB. * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. * [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go. * [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa. From ec711168a83c7b957fc6bdbac238c83c454cadaa Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 19 Jan 2021 11:47:33 -0300 Subject: [PATCH 2214/3440] set date now on investigate issue title (#3455) Signed-off-by: Avelino --- test_stale_repositories.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test_stale_repositories.go b/test_stale_repositories.go index 84b2141a6f8..7fb65deaf5b 100644 --- a/test_stale_repositories.go +++ b/test_stale_repositories.go @@ -28,8 +28,9 @@ var githubGETCOMMITS = "https://api.github.com/repos%s/commits" var githubPOSTISSUES = "https://api.github.com/repos/avelino/awesome-go/issues" var awesomeGoGETISSUES = "http://api.github.com/repos/avelino/awesome-go/issues" //only returns open issues var numberOfYears time.Duration = 1 +var timeNow = time.Now() +var issueTitle = fmt.Sprintf("Investigate repositories with more than 1 year without update - %s", timeNow.Format("2006-01-02")) -const issueTitle = "Investigate repositories with more than 1 year without update" const deadLinkMessage = " this repository might no longer exist! (status code >= 400 returned)" const movedPermanently = " status code 301 received" const status302 = " status code 302 received" @@ -189,8 +190,7 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { if toRun { var respObj []map[string]interface{} - now := time.Now() - since := now.Add(-1 * 365 * 24 * numberOfYears * time.Hour) + since := timeNow.Add(-1 * 365 * 24 * numberOfYears * time.Hour) sinceQuery := since.Format(time.RFC3339) ownerRepo := strings.ReplaceAll(href, "https://github.com", "") apiCall := fmt.Sprintf(githubGETCOMMITS, ownerRepo) From 448d56ca030c3c4ecaa5824ba87d7aafa13a1b26 Mon Sep 17 00:00:00 2001 From: Adrian-George Bostan Date: Fri, 22 Jan 2021 05:52:40 +0200 Subject: [PATCH 2215/3440] Add xdg (#3448) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 91d24b82156..09351722a33 100644 --- a/README.md +++ b/README.md @@ -333,6 +333,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). * [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library. * [viper](https://github.com/spf13/viper) - Go configuration with fangs. +* [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). * [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 From af673e68ce4ca0dade867d31c90505781a82197e Mon Sep 17 00:00:00 2001 From: Law Zava Date: Fri, 22 Jan 2021 05:56:55 +0200 Subject: [PATCH 2216/3440] Added go-pg-migrate link (#3452) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 09351722a33..f8cb299e1a2 100644 --- a/README.md +++ b/README.md @@ -473,6 +473,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. * [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. +* [go-pg-migrate](https://github.com/lawzava/go-pg-migrate) - CLI-friendly package for go-pg migrations management. * [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. * [goose](https://github.com/pressly/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. From 57707ff90c36498b769a7de6f37a45d3e9c54b91 Mon Sep 17 00:00:00 2001 From: Enrico Bianchi Date: Fri, 22 Jan 2021 04:58:07 +0100 Subject: [PATCH 2217/3440] Switched Go Oracle ODPI-C Driver (#3450) * Removed deprecated driver * Added new oracle driver * Added missing period * Fixed alphapet order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f8cb299e1a2..37f6d0bad9d 100644 --- a/README.md +++ b/README.md @@ -541,6 +541,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that uses database/sql. * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. + * [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver. * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. From 4105114cf9c057acfdce02192cdf0bb68f8e02e0 Mon Sep 17 00:00:00 2001 From: Asai Yusuke Date: Thu, 21 Jan 2021 20:01:05 -0800 Subject: [PATCH 2218/3440] Add AsaiYusuke/jsonpath (#3449) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37f6d0bad9d..2d3f9d12fde 100644 --- a/README.md +++ b/README.md @@ -1521,6 +1521,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. * [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. * [gws](https://github.com/Zaba505/gws) - Apollos' "GraphQL over Websocket" client and server implementation. +* [jsonpath](https://github.com/AsaiYusuke/jsonpath) - A query library for retrieving part of JSON based on JSONPath syntax. * [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. * [jsonslice](https://github.com/bhmj/jsonslice) - Jsonpath queries with advanced filters. * [rql](https://github.com/a8m/rql) - Resource Query Language for REST API. From d70f89e56c64e506591551c29b0df34990bc14d8 Mon Sep 17 00:00:00 2001 From: Ildar Date: Sat, 23 Jan 2021 09:23:57 +0300 Subject: [PATCH 2219/3440] add wajox/gobase (#3413) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2d3f9d12fde..7228a36eb9d 100644 --- a/README.md +++ b/README.md @@ -1244,6 +1244,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. * [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. +* [gobase](https://github.com/wajox/gobase) - A simple skeleton for golang application with basic setup for real golang application. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. * [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. From 2eb99f9a6acbffec9b465be8103308e81ef0218a Mon Sep 17 00:00:00 2001 From: Pascal Dennerly Date: Sat, 23 Jan 2021 06:28:24 +0000 Subject: [PATCH 2220/3440] Add httpref (#3457) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7228a36eb9d..f92e7082c42 100644 --- a/README.md +++ b/README.md @@ -2396,6 +2396,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grapes](https://github.com/yaronsumel/grapes) - Lightweight tool designed to distribute commands over ssh with ease. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. * [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application. +* [httpref](https://github.com/dnnrly/httpref) - httpref is a handy CLI reference for HTTP methods, status codes, headers, and TCP and UDP ports. * [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. From 13b73886bed2e8b47caf58584cee2d57294e0ce0 Mon Sep 17 00:00:00 2001 From: Eli Davis Date: Wed, 27 Jan 2021 03:40:35 -0600 Subject: [PATCH 2221/3440] Added Unitpacking (#1) (#3462) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f92e7082c42..e0d62f3ff9e 100644 --- a/README.md +++ b/README.md @@ -1634,6 +1634,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [php_session_decoder](https://github.com/yvasiyarov/php_session_decoder) - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions. * [pletter](https://github.com/vimeda/pletter) - A standard way to wrap a proto message for message brokers. * [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. +* [unitpacking](https://github.com/recolude/unitpacking) - Library to pack unit vectors into as fewest bytes as possible. ## Server Applications From 7c1861cd3788036c4b0e106884966d22a30baa14 Mon Sep 17 00:00:00 2001 From: Robert Catmull Date: Wed, 27 Jan 2021 02:47:12 -0700 Subject: [PATCH 2222/3440] Adding go-workers to README.md (#3461) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e0d62f3ff9e..02306b0f351 100644 --- a/README.md +++ b/README.md @@ -889,6 +889,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. * [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. * [go-waitgroup](https://github.com/pieterclaerhout/go-waitgroup) - Like `sync.WaitGroup` with error handling and concurrency control. +* [go-workers](https://github.com/catmullet/go-workers) - Easily and safely run workers for large data processing pipelines. * [goccm](https://github.com/zenthangplus/goccm) - Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently. * [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. * [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. From 0635df11f200f2430f7b0acfbb118a01ce3a877b Mon Sep 17 00:00:00 2001 From: Igor Novgorodov Date: Thu, 28 Jan 2021 04:15:20 +0100 Subject: [PATCH 2223/3440] Add Cortex-Tenant to Server Applications (#3454) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 02306b0f351..c52a97babe8 100644 --- a/README.md +++ b/README.md @@ -1642,6 +1642,7 @@ 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/caddyserver/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. +* [cortex-tenant](https://github.com/blind-oracle/cortex-tenant) - Prometheus remote write proxy that adds add Cortex tenant ID header based on metric labels. * [devd](https://github.com/cortesi/devd) - Local webserver for developers. * [discovery](https://github.com/Bilibili/discovery) - A registry for resilient mid-tier load balancing and failover. * [dudeldu](https://github.com/krotik/dudeldu) - A simple SHOUTcast server. From a385b70c7734d541e01fe80a1058e79ccafe7231 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 5 Feb 2021 05:29:17 -0300 Subject: [PATCH 2224/3440] Remove patreon funding --- .github/FUNDING.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 2e37c15466b..534a9a101e6 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1 @@ github: avelino -patreon: avelinorun From ab9fbe6aa7a03f738ae43a04131e2389429becf8 Mon Sep 17 00:00:00 2001 From: Prashant Gupta Date: Fri, 5 Feb 2021 00:29:56 -0800 Subject: [PATCH 2225/3440] added go-clip repo (#3388) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c52a97babe8..cfd8113187d 100644 --- a/README.md +++ b/README.md @@ -1988,6 +1988,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-bsdiff](https://github.com/gabstv/go-bsdiff) - Pure Go bsdiff and bspatch libraries and CLI tools. +* [go-clip](https://github.com/prashantgupta24/go-clip) - A minimalistic clipboard manager for Mac. * [go-convert](https://github.com/Eun/go-convert) - Package go-convert enbles you to convert a value into another type. * [go-countries](https://github.com/mikekonan/go-countries) - Lightweight lookup over ISO-3166 codes. * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. From e86a26abe4efd3f4f32e46bc22999a928d78ec5d Mon Sep 17 00:00:00 2001 From: Swastik Baranwal Date: Fri, 5 Feb 2021 14:01:50 +0530 Subject: [PATCH 2226/3440] add box-cli-maker (#3439) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cfd8113187d..f7f9cbf2a0a 100644 --- a/README.md +++ b/README.md @@ -216,6 +216,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. * [argv](https://github.com/cosiner/argv) - Go library to split command line string as arguments array using the bash syntax. +* [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. * [cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang struct tags. * [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. * [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. From a395cc6485050690885cd13a78756cbd4b382fe0 Mon Sep 17 00:00:00 2001 From: Santiago Date: Wed, 17 Feb 2021 03:07:35 -0300 Subject: [PATCH 2227/3440] README.md: add ddt lib (#3460) Co-authored-by: Santiago Rodriguez --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f7f9cbf2a0a..3166cadb6c4 100644 --- a/README.md +++ b/README.md @@ -1120,6 +1120,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. * [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. +* [ddt](https://github.com/sgrodriguez/ddt) - Dynamic decision tree, create trees defining customizable rules. * [eaopt](https://github.com/MaxHalford/eaopt) - An evolutionary optimization library. * [evoli](https://github.com/khezen/evoli) - Genetic Algorithm and Particle Swarm Optimization library. * [fonet](https://github.com/Fontinalis/fonet) - A Deep Neural Network library written in Go. From d496c1ea9a67e3013d56dc7db8b763d7c9b1a589 Mon Sep 17 00:00:00 2001 From: frederikhors <41120635+frederikhors@users.noreply.github.com> Date: Wed, 17 Feb 2021 09:09:24 +0100 Subject: [PATCH 2228/3440] Add gqlgen (#3485) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3166cadb6c4..7ab9b0ceaee 100644 --- a/README.md +++ b/README.md @@ -1521,6 +1521,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [api-fu](https://github.com/ccbrown/api-fu) - Comprehensive GraphQL implementation. * [dasel](https://github.com/tomwright/dasel) - Query and update data structures using selectors from the command line. Comparable to jq/yq but supports JSON, YAML, TOML and XML with zero runtime dependencies. * [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. +* [gqlgen](https://github.com/99designs/gqlgen) - go generate based graphql server library. * [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. * [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. * [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. From b1feb2a5958e97391b9ebe34c2d691237165ff47 Mon Sep 17 00:00:00 2001 From: David Sharnoff Date: Fri, 19 Feb 2021 02:04:28 -0800 Subject: [PATCH 2229/3440] Add nject/npoint dependency injection frameworks (#3463) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ab9b0ceaee..25887085b8f 100644 --- a/README.md +++ b/README.md @@ -1238,6 +1238,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. * [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. * [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. +* [nject/npoint](https://github.com/BlueOwlOpenSource/nject) - A type safe, reflective framework based on types for libraries, tests, and endpoints. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. ### Project Layout From d9c9c6319d3be76ffcfb622160efb76910e0b04a Mon Sep 17 00:00:00 2001 From: Milad Abbasi Date: Fri, 19 Feb 2021 13:38:13 +0330 Subject: [PATCH 2230/3440] Add gonfig to configuration libs (#3465) * Add gonfig to configuration libs * Fix link Co-authored-by: Milad Abbasi --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 25887085b8f..5aa13361e5c 100644 --- a/README.md +++ b/README.md @@ -317,6 +317,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. +* [gonfig](https://github.com/milad-abbasi/gonfig) - Tag-based configuration parser which loads values from different providers into typesafe struct. * [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. * [harvester](https://github.com/beatlabs/harvester) - Harvester, a easy to use static and dynamic configuration package supportig seeding, env vars and Consul integration. * [hjson](https://github.com/hjson/hjson-go) - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. From b1ed60b36bd1e8c8b6e3076cf4c5923e9cc4a493 Mon Sep 17 00:00:00 2001 From: Alexey A Maximov Date: Fri, 19 Feb 2021 13:12:21 +0300 Subject: [PATCH 2231/3440] Add github.com/go-kata/kinit (#3467) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5aa13361e5c..962feaea7bd 100644 --- a/README.md +++ b/README.md @@ -1238,6 +1238,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. * [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. +* [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. * [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. * [nject/npoint](https://github.com/BlueOwlOpenSource/nject) - A type safe, reflective framework based on types for libraries, tests, and endpoints. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. From a49dbe1e9f25ce34899f887049d444b599f3d5db Mon Sep 17 00:00:00 2001 From: Aleksandar Nesovic <48174247+kaynetik@users.noreply.github.com> Date: Fri, 19 Feb 2021 11:18:31 +0100 Subject: [PATCH 2232/3440] :art: Add github.com/go-OAS/docs (#3468) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 962feaea7bd..0b9d568358f 100644 --- a/README.md +++ b/README.md @@ -2355,6 +2355,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. * [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. +* [docs](https://github.com/go-oas/docs) - Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard. * [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](http://yeoman.io) generator to get new Go projects started. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-james](https://github.com/pieterclaerhout/go-james) - Go project skeleton creator, builds and tests your projects without the manual setup. From 23fca17198794fbe1ae81b464d2efc4aaeb9c88e Mon Sep 17 00:00:00 2001 From: Mehrdad Arshad Rad Date: Fri, 19 Feb 2021 02:21:49 -0800 Subject: [PATCH 2233/3440] add tcpdog (#3472) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0b9d568358f..7cc8505d2b3 100644 --- a/README.md +++ b/README.md @@ -2487,6 +2487,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. +* [tcpdog](https://github.com/mehrdadrad/tcpdog) - eBPF based TCP observability. * [tcpprobe](https://github.com/mehrdadrad/tcpprobe) - TCP tool for network performance and path monitoring, including socket statistics. * [term-quiz](https://github.com/crazcalm/term-quiz) - Quizzes for your terminal. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. From 0924788ce0d0f5d95323a6921f03dd344e70c152 Mon Sep 17 00:00:00 2001 From: Florent Clairambault Date: Fri, 19 Feb 2021 12:29:06 +0100 Subject: [PATCH 2234/3440] Ftpserverlib (#3474) * Adding ftpserver + ftpserverlib - ftpserverlib is a library to help you build your own FTP server easily - ftpserver is a ready-to-use FTP server based on this library and with a S3 and SFTP backend implementation * Removing ftpserver * Missing a dot ? --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7cc8505d2b3..0ea21f74fb3 100644 --- a/README.md +++ b/README.md @@ -1381,6 +1381,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http. * [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [ftpserverlib](https://github.com/fclairamb/ftpserverlib) - Fully featured FTP server library. * [gaio](https://github.com/xtaci/gaio) - High performance async-io networking for Golang in proactor mode. * [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. * [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. From 2f1870d55386bb13f1717943a3fc5bb17e152a90 Mon Sep 17 00:00:00 2001 From: Simon Nilsson Date: Fri, 19 Feb 2021 12:33:37 +0100 Subject: [PATCH 2235/3440] Add ask to JSON category (#3478) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0ea21f74fb3..c329fa1285c 100644 --- a/README.md +++ b/README.md @@ -1036,6 +1036,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with JSON.* * [ajson](https://github.com/spyzhov/ajson) - Abstract JSON for golang with JSONPath support. +* [ask](https://github.com/simonnilsson/ask) - Easy access to nested values in maps and slices. Works in combination with encoding/json and other packages that "Unmarshal" arbitrary data into Go data-types. * [dynjson](https://github.com/cocoonspace/dynjson) - Client-customizable JSON formats for dynamic APIs. * [ej](https://github.com/lucassscaravelli/ej) - Write and read JSON from different sources succinctly. * [epoch](https://github.com/vtopc/epoch) - Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from build-in time.Time type in JSON. From 9c403f9d9de66cab0fb6b1c18359045635ede9df Mon Sep 17 00:00:00 2001 From: Milos Gajdos Date: Fri, 19 Feb 2021 11:46:05 +0000 Subject: [PATCH 2236/3440] Add go-estimate (#3487) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c329fa1285c..3f58f6e85df 100644 --- a/README.md +++ b/README.md @@ -1566,6 +1566,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-estimate](https://github.com/milosgajdos/go-estimate) - State estimation and filtering algorithms in Go. * [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. * [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures. * [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. From d4a54e67ee8c85a304557a65923a9c17cf32e6e7 Mon Sep 17 00:00:00 2001 From: Inanc Gumus Date: Fri, 19 Feb 2021 15:23:35 +0300 Subject: [PATCH 2237/3440] Add learngo (#3495) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3f58f6e85df..48cf6ff9caf 100644 --- a/README.md +++ b/README.md @@ -2691,6 +2691,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gowalker.org](https://gowalker.org) - Go Project API documentation. * [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. * [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). +* [Learn Go Programming](https://blog.learngoprogramming.com) - Learn Go concepts with illustrations. * [Lille Gophers](https://lille-gophers.loscrackitos.codes/) - Golang talks community in Lille, France ([@LilleGophers](https://twitter.com/LilleGophers)). * [Made with Golang](https://madewithgolang.com/?ref=awesome-go) * [r/Golang](https://www.reddit.com/r/golang) - News about Go. @@ -2726,6 +2727,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM. * [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. +* [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes. * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. * [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. From f77a74960efa04c48424a2998e16320c6b6f1482 Mon Sep 17 00:00:00 2001 From: Patricio Whittingslow Date: Fri, 19 Feb 2021 13:17:45 -0300 Subject: [PATCH 2238/3440] Add rebed (#3494) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 48cf6ff9caf..cef5f40d0d3 100644 --- a/README.md +++ b/README.md @@ -1547,6 +1547,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [mule](https://github.com/wlbr/mule) - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focussed on simplicity. * [packr](https://github.com/gobuffalo/packr) - The simple and easy way to embed static files into Go binaries. +* [rebed](https://github.com/soypat/rebed) - Recreate folder structures and files from Go 1.16's `embed.FS` type * [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. * [templify](https://github.com/wlbr/templify) - Embed external template files into Go code to create single file binaries. From 0f6a61bd7a72965e077490d99a55dfab49cb51f6 Mon Sep 17 00:00:00 2001 From: Anton Kornilov Date: Fri, 19 Feb 2021 19:18:49 +0300 Subject: [PATCH 2239/3440] Update README.md (#3493) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cef5f40d0d3..92fae7e9a19 100644 --- a/README.md +++ b/README.md @@ -1873,6 +1873,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [airtable](https://github.com/mehanizm/airtable) - Go client library for the [Airtable API](https://airtable.com/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. +* [appstore-sdk-go](https://github.com/Kachit/appstore-sdk-go) - Unofficial Golang SDK for AppStore Connect 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/). From 38e74c4ae6c980fd1bbd0d67bfc6565b21f71624 Mon Sep 17 00:00:00 2001 From: maja42 <2649265+maja42@users.noreply.github.com> Date: Sat, 20 Feb 2021 22:33:07 +0100 Subject: [PATCH 2240/3440] add maja42/goval (#3466) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92fae7e9a19..a2e577495c1 100644 --- a/README.md +++ b/README.md @@ -2027,6 +2027,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goseaweedfs](https://github.com/linxGnu/goseaweedfs) - SeaweedFS client library with almost full features. * [gostrutils](https://github.com/ik5/gostrutils) - Collections of string manipulation and conversion functions. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. +* [goval](https://github.com/maja42/goval) - Evaluate arbitrary expressions in Go. * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. * [gubrak](https://github.com/novalagung/gubrak) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [handy](https://github.com/miguelpragier/handy) - Many utilities and helpers like string handlers/formatters and validators. From e63fef488769bb1dce88872f1a1807e84c45944a Mon Sep 17 00:00:00 2001 From: Naoki Kanatani Date: Wed, 24 Feb 2021 09:53:27 +0900 Subject: [PATCH 2241/3440] Fix link to slack API client (#3506) Now nlopes/slack is transferred to slack-go/slack. See also: https://github.com/slack-go/slack/issues/642 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a2e577495c1..8726bdd34c0 100644 --- a/README.md +++ b/README.md @@ -1940,7 +1940,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [simples3](https://github.com/rhnvrm/simples3) - Simple no frills AWS S3 Library using REST with V4 Signing written in Go. -* [slack](https://github.com/nlopes/slack) - Slack API in Go. +* [slack](https://github.com/slack-go/slack) - Slack API in Go. * [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. From 207a322444214f1499828d790375c06a108c0873 Mon Sep 17 00:00:00 2001 From: donald-art <77787121+donald-art@users.noreply.github.com> Date: Sat, 6 Mar 2021 16:26:45 +0100 Subject: [PATCH 2242/3440] add blocky to other software (#3476) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8726bdd34c0..bb469293c1c 100644 --- a/README.md +++ b/README.md @@ -2448,6 +2448,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### Other Software * [Better Go Playground](https://goplay.tools) - Go playground with syntax highlight, code completion and other features. +* [blocky](https://github.com/0xERR0R/blocky) - Fast and lightweight DNS proxy as ad-blocker for local network with many features. * [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. From 7f10c32b426a69dad9ca604d640f360e4118c773 Mon Sep 17 00:00:00 2001 From: Kevin Wan Date: Sat, 6 Mar 2021 23:30:38 +0800 Subject: [PATCH 2243/3440] add go-zero (https://github.com/tal-tech/go-zero) (#3480) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bb469293c1c..c4b26202ffd 100644 --- a/README.md +++ b/README.md @@ -644,6 +644,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-mysql-lock](https://github.com/sanketplus/go-mysql-lock) - MySQL based distributed lock. * [go-pdu](https://github.com/pdupub/go-pdu) - A decentralized identity-based social network. * [go-sundheit](https://github.com/AppsFlyer/go-sundheit) - A library built to provide support for defining async service health checks for golang services. +* [go-zero](https://github.com/tal-tech/go-zero) - A web and rpc framework. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [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. From c2e7f614abe195426f3f0b18aed5500cebadfbe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20D=C3=B6tsch?= Date: Sat, 6 Mar 2021 16:32:39 +0100 Subject: [PATCH 2244/3440] Added "slack-bot" (#3484) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c4b26202ffd..1ab5b5c0b4d 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. * [olivia](https://github.com/olivia-ai/olivia) - A chatbot built with an artificial neural network. +* [slack-bot](https://github.com/innogames/slack-bot) - Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github... * [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. * [slackscot](https://github.com/alexandre-normand/slackscot) - Another framework for building Slack bots. * [tbot](https://github.com/yanzay/tbot) - Telegram bot server with API similar to net/http. From 74acee3ca8dc5e8c29f1adcdf263630552f6ac7d Mon Sep 17 00:00:00 2001 From: Jamey Cribbs Date: Sat, 6 Mar 2021 10:33:55 -0500 Subject: [PATCH 2245/3440] Add link to hare under Databases. (#3490) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1ab5b5c0b4d..04878f9e227 100644 --- a/README.md +++ b/README.md @@ -449,6 +449,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 Go. * [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. +* [hare](https://github.com/jameycribbs/hare) - A simple database management system that stores each table as a text file of line-delimited JSON. * [immudb](https://github.com/codenotary/immudb) - immudb is a lightweight, high-speed immutable database for systems and applications written in Go. * [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics. * [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. From 8399b75d59165bbdb09ac867275d08666598fc04 Mon Sep 17 00:00:00 2001 From: lesismal <40462947+lesismal@users.noreply.github.com> Date: Sat, 6 Mar 2021 23:45:51 +0800 Subject: [PATCH 2246/3440] Add lesismal/nbio (#3496) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 04878f9e227..74194b029f8 100644 --- a/README.md +++ b/README.md @@ -1415,6 +1415,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [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. +* [nbio](https://github.com/lesismal/nbio) - High-performance, non-blocking, event-driven, easy-to-use, least-dependency networking framework written in Go. * [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). * [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. * [panoptes-stream](https://github.com/yahoo/panoptes-stream) - A cloud native distributed streaming network telemetry (gNMI, Juniper JTI and Cisco MDT). From c64571e9f6f9eea533936f1d5c0513205c4121c2 Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Sun, 7 Mar 2021 00:51:25 +0800 Subject: [PATCH 2247/3440] added go ml benchmarks (#3500) * added go ml benchmarks * Update README.md * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74194b029f8..ace1c03bdf1 100644 --- a/README.md +++ b/README.md @@ -2519,6 +2519,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. * [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. * [go-json-benchmark](https://github.com/zerosnake0/go-json-benchmark) - Go JSON benchmark. +* [go-ml-benchmarks](https://github.com/nikolaydubina/go-ml-benchmarks) - benchmarks for machine learning inference in Go. * [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. * [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. * [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. From f89bd663df04749abc17b4bb8a1c5f53f984c876 Mon Sep 17 00:00:00 2001 From: Linvon Date: Sun, 7 Mar 2021 03:51:03 +0800 Subject: [PATCH 2248/3440] Add a more comprehensive cuckoo filter (#3515) * Update README.md * fix order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ace1c03bdf1..7075cefdaae 100644 --- a/README.md +++ b/README.md @@ -374,6 +374,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. * [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). * [crunch](https://github.com/superwhiskers/crunch) - Go package implementing buffers for handling various datatypes easily. +* [cuckoo-filter](https://github.com/linvon/cuckoo-filter) - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper is available. * [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. * [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. * [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). From 72e53af2261e2f007e935d66a0230d96aad170d1 Mon Sep 17 00:00:00 2001 From: SystemGlitch Date: Sat, 6 Mar 2021 20:51:27 +0100 Subject: [PATCH 2249/3440] Update goyave link (#3516) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7075cefdaae..e95870b6941 100644 --- a/README.md +++ b/README.md @@ -2196,7 +2196,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. -* [Goyave](https://github.com/System-Glitch/goyave) - Feature-complete web framework aimed at clean code and fast development, with powerful built-in functionalities. +* [Goyave](https://github.com/go-goyave/goyave) - Feature-complete REST API framework aimed at clean code and fast development, with powerful built-in functionalities. * [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. * [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. From dbfee4368f6f1666ef334cf953335206f9696097 Mon Sep 17 00:00:00 2001 From: Tejus Date: Sat, 6 Mar 2021 11:54:08 -0800 Subject: [PATCH 2250/3440] Update README.md (#3520) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e95870b6941..22a57503717 100644 --- a/README.md +++ b/README.md @@ -407,6 +407,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. * [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. * [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. +* [ordered-concurrently](https://github.com/tejzpr/ordered-concurrently) - Go module that processes work concurrently and returns output in a channel in the order of input. * [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. * [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree. From 99257a451e9308a807eab4256ded13a8bd94ba28 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 8 Mar 2021 10:31:00 -0300 Subject: [PATCH 2251/3440] remove github.com/krig/go-sox (#3523) ref: #3522 - more than 1 year without update Signed-off-by: Avelino --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 22a57503717..141745c3238 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flac](https://github.com/mewkiz/flac) - Native Go FLAC encoder/decoder with support for FLAC streams. * [gaad](https://github.com/Comcast/gaad) - Native Go AAC bitstream parser. -* [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [GoAudio](https://github.com/DylanMeeus/GoAudio) - Native Go Audio Processing Library. * [gosamplerate](https://github.com/dh1tw/gosamplerate) - libsamplerate bindings for go. * [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go. From 06984f8cfb3a00f302718616b333d1338ff5d9df Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 8 Mar 2021 11:02:51 -0300 Subject: [PATCH 2252/3440] remove github.com/tcolgate/mp3 (#3524) ref: #3522 more than 1 year without update sad to have to remove libraries Signed-off-by: Avelino --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 141745c3238..899b6f2792f 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [malgo](https://github.com/gen2brain/malgo) - Mini audio library. * [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library. * [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. * [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. From fa881a51a010989e14103e530fcd2112c9c05392 Mon Sep 17 00:00:00 2001 From: Rahul Baruri Date: Tue, 9 Mar 2021 17:58:34 +0100 Subject: [PATCH 2253/3440] Added gofp in the functional list (#3507) * Added gofp in the functional list * updated alphabetic order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 899b6f2792f..6f854491a90 100644 --- a/README.md +++ b/README.md @@ -810,6 +810,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang. * [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go. * [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. +* [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang. ## Game Development From e6aa3051fbc9a7a7574be50af9482303166c51d6 Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Wed, 10 Mar 2021 21:43:29 +0800 Subject: [PATCH 2254/3440] Update my email address --- MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index b09a3e671c9..9ffa7808bd8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9,4 +9,4 @@ Bo-Yi Wu (@appleboy) Cássio Botaro (@cassiobotaro) Jessica Temporal (@jtemporal) Ceriath (@ceriath) -Andy Pan (@panjf2000) +Andy Pan (@panjf2000) From 9c87aa39b20019d3ed4c53fd2833947709bc221a Mon Sep 17 00:00:00 2001 From: Reindert <16726304+reindert-vetter@users.noreply.github.com> Date: Sat, 27 Mar 2021 12:44:08 +0100 Subject: [PATCH 2255/3440] Add Confetti Framework (#3526) **Please provide package links to:** - github.com repo: https://github.com/confetti-framework/confetti - pkg.go.dev: https://pkg.go.dev/github.com/confetti-framework/confetti - goreportcard.com: https://goreportcard.com/report/github.com/confetti-framework/confetti - coverage service link ([codecov](https://github.com/confetti-framework/confetti/blob/main/test/README.md) **Make sure that you've checked the boxes below before you submit PR:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added pkg.go.dev link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6f854491a90..8f2ceb54a00 100644 --- a/README.md +++ b/README.md @@ -2178,6 +2178,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! +* [Confetti Framework](https://www.confetti-framework.com) - Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go. * [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. * [Fiber](https://github.com/gofiber/fiber) - An Express.js inspired web framework build on Fasthttp. * [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. From 4bb66473524c2e282a527a5263623465b392fc97 Mon Sep 17 00:00:00 2001 From: Ageev Pavel Date: Sat, 27 Mar 2021 14:48:26 +0300 Subject: [PATCH 2256/3440] Add insidieux/inizio to Project Layout list (#3527) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8f2ceb54a00..6b89c6232a3 100644 --- a/README.md +++ b/README.md @@ -1258,6 +1258,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gobase](https://github.com/wajox/gobase) - A simple skeleton for golang application with basic setup for real golang application. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. * [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. +* [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. * [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. From 9fdb7cb203066c5b2138bc754b30fdf46e32f821 Mon Sep 17 00:00:00 2001 From: Janos Pasztor Date: Sat, 27 Mar 2021 12:49:32 +0100 Subject: [PATCH 2257/3440] Adding Debugged.it Go patterns (#3528) Reviving #3517 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6b89c6232a3..961aba1119a 100644 --- a/README.md +++ b/README.md @@ -2721,6 +2721,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. * [Caching Slow Database Queries](https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9) - How to cache slow database queries. * [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. +* [Debugged.it Go patterns](https://github.com/haveyoudebuggedit/go-patterns) - Advanced Go patterns with ready-to-run examples. * [Design Patterns in Go](https://github.com/shubhamzanwar/design-patterns) - Collection of programming design patterns implemented in Go. * [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. * [Games With Go](http://gameswithgo.org/) - A video series teaching programming and game development. From cba08ae968a345f05029f23182e7224103b75c2c Mon Sep 17 00:00:00 2001 From: Swastik Baranwal Date: Sat, 27 Mar 2021 17:20:00 +0530 Subject: [PATCH 2258/3440] readme: shift box-cli-maker from standard cli to adv. console ui (#3530) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 961aba1119a..d9948c79c7f 100644 --- a/README.md +++ b/README.md @@ -215,7 +215,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. * [argv](https://github.com/cosiner/argv) - Go library to split command line string as arguments array using the bash syntax. -* [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. * [cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang struct tags. * [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. * [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. @@ -258,6 +257,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. * [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that supports fmt.Printf/Sprintf. +* [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. * [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. * [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. * [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. From 9a73b17dabb7d84271fd49dfb72957c8538e1269 Mon Sep 17 00:00:00 2001 From: Guilherme Caruso <30197446+GuilhermeCaruso@users.noreply.github.com> Date: Sat, 27 Mar 2021 08:52:05 -0300 Subject: [PATCH 2259/3440] added anko project (#3531) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d9948c79c7f..82948e9e89b 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries and tools helping with build automation.* * [1build](https://github.com/gopinath-langote/1build) - Command line tool to frictionlessly manage project-specific commands. +* [anko](https://github.com/GuilhermeCaruso/anko) - Simple application watcher for multiple programming languages. * [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. * [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. * [mmake](https://github.com/tj/mmake) - Modern Make. From da981cacd12f02543a540c0f099facf80655800d Mon Sep 17 00:00:00 2001 From: OldPanda Date: Sat, 27 Mar 2021 04:55:47 -0700 Subject: [PATCH 2260/3440] Add bloomfilter (#3533) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 82948e9e89b..e7c1de382b1 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,7 @@ 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. +* [bloomfilter](https://github.com/OldPanda/bloomfilter) - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library. * [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams. * [cmap](https://github.com/lrita/cmap) - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards. * [concurrent-writer](https://github.com/free/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. From 781a8dfb96c9469a942ad250710a8bb57c6d78d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Zipitr=C3=ADa?= Date: Sat, 27 Mar 2021 08:56:40 -0300 Subject: [PATCH 2261/3440] feat(date): add gostradamus (#3534) Signed-off-by: Felipe Zipitria --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e7c1de382b1..6448a0c46b3 100644 --- a/README.md +++ b/README.md @@ -611,6 +611,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-str2duration](https://github.com/xhit/go-str2duration) - Convert string to duration. Support time.Duration returned string and more. * [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. * [go-week](https://github.com/stoewer/go-week) - An efficient package to work with ISO8601 week dates. +* [gostradamus](https://github.com/bykof/gostradamus) - A Go package for working with dates. * [iso8601](https://github.com/relvacode/iso8601) - Efficiently parse ISO8601 date-times without regex. * [kair](https://github.com/GuilhermeCaruso/kair) - Date and Time - Golang Formatting Library. * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. From 85492f974397cd0ef360ab5d5bc65a6b407d9678 Mon Sep 17 00:00:00 2001 From: Yankee <13623913+yankeexe@users.noreply.github.com> Date: Sat, 27 Mar 2021 17:53:32 +0545 Subject: [PATCH 2262/3440] Add practical go lessons book (#3543) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6448a0c46b3..38166aae4ab 100644 --- a/README.md +++ b/README.md @@ -2570,6 +2570,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [How To Code in Go eBook](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) - A 600 page introduction to Go aimed at first time developers. * [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) * [Network Programming With Go](https://jan.newmarch.name/go/) +* [Practical Go Lessons](https://www.practical-go-lessons.com/) * [Spaceship Go A Journey to the Standard Library](https://blasrodri.github.io/spaceship-go-gh-pages/) * [The Go Programming Language](http://www.gopl.io/) * [The Golang Standard Library by Example (Chinese)](https://github.com/polaris1119/The-Golang-Standard-Library-by-Example) From 4cd9e3858cd82d96d0fb6fc14a1762a03b34f9ca Mon Sep 17 00:00:00 2001 From: Yankee <13623913+yankeexe@users.noreply.github.com> Date: Sat, 27 Mar 2021 17:54:09 +0545 Subject: [PATCH 2263/3440] Add Golang Kathmandu Meetup (#3544) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 38166aae4ab..c2fb2d7b554 100644 --- a/README.md +++ b/README.md @@ -2625,6 +2625,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang Hamburg - Germany](https://www.meetup.com/Go-User-Group-Hamburg/) * [Golang Israel](https://www.meetup.com/Go-Israel/) * [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) +* [Golang Kathmandu](https://www.meetup.com/Golang-Kathmandu/) * [Golang Korea](https://www.meetup.com/GDG-Golang-Korea/) * [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) * [Golang Lyon](https://www.meetup.com/Golang-Lyon/) From 8db46d97b072160743ad140570b1d62c50ab706c Mon Sep 17 00:00:00 2001 From: Denis Sedchenko Date: Sat, 27 Mar 2021 17:53:38 +0500 Subject: [PATCH 2264/3440] Add docker-go-mingw (#3542) * add docker-go-mingw * More descriptive summary for docker-go-mingw --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c2fb2d7b554..435c0b67e6d 100644 --- a/README.md +++ b/README.md @@ -2401,6 +2401,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [cassowary](https://github.com/rogerwelin/cassowary) - Modern cross-platform HTTP load-testing tool written in Go. * [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. +* [docker-go-mingw](https://github.com/x1unix/docker-go-mingw) - Docker image for building Go binaries for Windows with MinGW toolchain. * [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. From 601088625f4d5eaae281eeb4e8e0127c8e076e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serhat=20=C5=9Eevki=20Din=C3=A7er?= Date: Mon, 29 Mar 2021 15:52:41 +0300 Subject: [PATCH 2265/3440] add jfcg/yell (#3536) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 435c0b67e6d..4ab941648f7 100644 --- a/README.md +++ b/README.md @@ -1119,6 +1119,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. * [xlog](https://github.com/rs/xlog) - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. +* [yell](https://github.com/jfcg/yell) - Yet another minimalistic logging library. * [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. * [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. * [zkits-logger](https://github.com/edoger/zkits-logger) - A powerful zero-dependency JSON logger. From 5fdb113462383ec072674fbfdee77e26b2b2490e Mon Sep 17 00:00:00 2001 From: Meir Blumenfeld <33358938+meblum@users.noreply.github.com> Date: Tue, 30 Mar 2021 07:02:07 -0400 Subject: [PATCH 2266/3440] Fix #3541 (#3549) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4ab941648f7..324a83a9991 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. * [jwt](https://github.com/cristalhq/jwt) - Safe, simple and fast JSON Web Tokens for Go. * [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. -* [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. From a5ca053e32ac9c4e7a78f138285dc87933817638 Mon Sep 17 00:00:00 2001 From: Benjamin Cane Date: Tue, 30 Mar 2021 06:06:40 -0700 Subject: [PATCH 2267/3440] Adding Tasks (#3497) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 324a83a9991..35966cab48e 100644 --- a/README.md +++ b/README.md @@ -1036,6 +1036,7 @@ 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. * [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. +* [tasks](https://github.com/madflojo/tasks) - An easy to use in-process scheduler for recurring tasks in Go. ## JSON From 9f34ddc44c2fccdbe24f7e878305e8b8216f16d5 Mon Sep 17 00:00:00 2001 From: manuelbcd Date: Tue, 30 Mar 2021 16:36:01 +0200 Subject: [PATCH 2268/3440] Update README.md (#3540) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 35966cab48e..b86e60d07da 100644 --- a/README.md +++ b/README.md @@ -1910,6 +1910,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-openproject](https://github.com/manuelbcd/go-openproject) - Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API. * [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). * [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. * [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. From 642d79069d34f252d971bbd1b3d69d3907fcde48 Mon Sep 17 00:00:00 2001 From: manuelbcd Date: Thu, 1 Apr 2021 17:13:10 +0200 Subject: [PATCH 2269/3440] #3551 Changed go-myanimelist webpage (#3552) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b86e60d07da..474ba852fc7 100644 --- a/README.md +++ b/README.md @@ -1909,7 +1909,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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-myanimelist](https://github.com/nstratos/go-myanimelist) - Go client library for accessing the [MyAnimeList API](https://myanimelist.net/apiconfig/references/api/v2). * [go-openproject](https://github.com/manuelbcd/go-openproject) - Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API. * [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). * [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. From 53c7a6b0f95d11bcf7cc3cc1fe8ef8bea1336fd6 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 08:30:35 -0300 Subject: [PATCH 2270/3440] set new awesome-go logo Signed-off-by: Avelino --- README.md | 7 +++++-- tmpl/assets/logo.png | Bin 4491 -> 43353 bytes 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 474ba852fc7..034abdf7a74 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ -# Awesome Go +# awesome-go Awesome Go -[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) +[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) +[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) +[![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) +[![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) ## Sponsorships > [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) diff --git a/tmpl/assets/logo.png b/tmpl/assets/logo.png index ff9685033bfd2cffe5c6d0545b968f20426f7142..b1f724174554e23ab60a05b54bdb1947081f2624 100644 GIT binary patch literal 43353 zcmV);K!(4GP)hmbkXbe zAek$Z&ckRl`7jYZ__+%|XOa>Vm%RAihsg&*f{0dM8~h%^e|m$SoE#j;U@(wg&(HZo z^!S@WM~(&ua*)4ayMde>9jLsjh8mliDZtN%$}4NhWHMrR{Ez7XAInaov1?anrzxkn zxHyNmchM9^j47gDrihJ=yiu=rct?A#(=iDh4dm$PNNz4JK;9EGTIW3uAjkqHXo8knF42Rt{Biwj=wEPr!Q{|;h1FxiFB{8*<~7Jz~9)`#0E zE3bh5@%Y13$)vxKlTU@k<#aYPhc0C2QCD|2UdD=osgT!;y-fa-CR6u*lgV%>FE6i+ zreHN3XbP7lm~;jv2>rh=+)1Iqfg*KBgSPf|zIDiBEC?WZd1W<~mRHHP=!g(1EvsZH zU2T3(eM6JHcG;r2^!_Kies^44Y!2V=V+CNV(WuMG&(A+ZQ&N9GOcDJuhn^)lNPhUl88cCV zsEAN~Bz5B}^is;{f2MRR8wPGww3WDOv(uCDQOdcBF_<6|57ZSQAi=iW(ExCm23 zpCkZz0gw=+Op1@Dtve6WdM00aWsOK*Z!ZthnIMT96~gjDP*7Y-b&ZWo(02ZNh!8b6 zFhKSd#Zr7`a-u9C<-4oR+nib2U&zhp*L%w60a!SWFzN9ei-a}kHX5n3tCO~D-A-|_ zG1T1BOw$u$Xzi6t<<{M8q~fx2R{Lw|?Je6qGtTF1B*h#x(G+@Nis+XobjnZLZQgL` zWV+l#N{dSEq!94EPj=HRCSDzr8&Vq!03NG5F-v-=>fW9nqI!R_`ykEoOr#24AnL*! z)%|vuNsZUk*EgC!8_&HxJ!L__t)8p|OYyq828xf3rM>$PQd3h4xx2ZU|7>7?Kol=X zxWT?>qSF-m#}v^oGeE^l&M6p@8HE`62E196TnkgB=d34`~i8m@`A}XC)`e0&vUv)$;e@B9Jwa zMf2y;$`dAqGi%%evLF4UfNi z@9lCA)w-{GJ(Dh0x3MS;1ZV~T76lD1s>B~IDyyo<&)0`KSdDjgACl-(s(U|}BD!s% z3k?nRcX2U^*XVTvaJ+iNcaH^7L@0<%{Q< zw~dsD_C{@89WA?J3B9!WO%4q@5A|}Lk=^hJ_0bgJ&6pzk=%9~^ic03V@fr^EBr&mP z@pYEU+r98dCLDW?9cd)!>gpD6IpW^^p@Y?Fy+Mgx4~A3h{q7G;2L6mLnxB^1??Nz< zkd&Ap$J))S=0NAe0uFpmx>%zzjy9xtIbn+E)95q0ZYeV{j_K@y z%L&e^KtCUf2o0jBut3VpE1^7Am4EsDFAYh?{_x!94=Ertg1+^YFUoUBH6*8acz94p zMtqAO3`TKEJMH;>BqQ^5TzJ2~2QP(3C_s zV~XhgAR!^anWaYzd#x8RsS{Z;FJi5D1z%;ZxX_^TwlmoRe7$H+astJ2NU5)rsGy`$ z?%^E6ZMdjquXV~yfAf3a`{)zeaQzy2-rCwq?R@iPC)h~#Eys0u|uB7R#NbUJ4dcAE+Wmda&pMQ;2<$( zcQ+ThtieAvC3@hhOijE?QIRZc;79pOmts`=(lWG zPe+fRqy~U}B=%Q?(nxVLhyL*W zjO>Jqj|r#0{_00VD&lO`=wRA}goMx(dN4(FE8)p%bZc81J^q&`DLN{WE@bD@!kI~A z543l5NP4HgD$#*?X|rkWoLS<1Zfa_hJn-=(IX=6SkEOb%j!G-4sD>B8I`%7|A}%2& zN>Wsz3E2WLQ^edJ#@B^3SCfZm3R6V4fPT;`0%09@mZG(CK{v=nWH8w0^ua#IHC^A> zNS>@cbh6_QTEvds`{cyKFHJ9v-L&wfgYkND}#ct%qjzFm4sYwas z=ISD5&e%YQ6rkad*8IXLiQa=LqVt8ZY11a%kt2unL!FMWV1IIRa~9jUKRe!5XjRKe zV>oQr)Y3+k?EG_Ljl!94G2tOpSXM#d!2x7%EL}K<#v9pxDSznwzQ=k~pg+rJB0zVFz1yq5`S9 zrs1de=u~Iilr&c{=_PtmQ4t8v5?w!G&c)1WagvBLWnYrkH*PpEpR}p-*MrGUbX`_f zmbt9cnm0(^`Y`20Yg;?*Iec0k`+9qlua75{lvj(*Ut8BG9&PP!=EwXR{0(q*apHX_ zcDwfX)T9{M2b^U$u3k!)D>^$nrMv7fV9s%$a>n&wQmgK8!bLmn$YvJnZYHDq5HBDv4^~RJluBb@v`J%8oab_ZvctYjR$}6UV(sEJXXQ#x| z7Z$Cf%MBvYtxQaUpT*0|E1ZemKvU?2sW>`=FAfvhDO&a7VI*$Y3J5XPH#JjrO+8&; za+j4?k)MwjCB;S3bt@N1rrPBSEMkrh)~W6+y&c@$-QJIhiTPb!UES0C-0Ft2mpi72 z&S+?8(0O}%kGqZsLc{S^Ra-9;P)aLnsIj?43Prp;-6_z|n-;K5@9(oqVwu+YHDh7G8pvXG)`!2YN1#Dw@q^A zL1=%L)**p@G(91jygb|{4XOJ>GcR;*t|RGbr<-dqI30_Pjr~P#ZtlZ0$x~q`JJC%J z4yF_j5BI+?(Z?+qjiQk+-FX8|;bJI7H6B*I77L<_t1GoMH*1@8yy>TLaj_e^y1MTw zC@4s$Ns38JbhR(s?M9>N30C#|tbHG<$0YaqG6MSFnY-qg(0|D!-%;sz$Ineh@?mek zr@Om3B~|`ceHE7X19gDu>({W>8{W~;VRe(b2Fo zK0fw0+1a^&ph+m*CneDX0|Pyb#;$+x1#pKB&ESRsi~+vfGN{qx9b=0F{e2ZPL8lN= zd8{J`lb+JgWyz?fKz~2w@1&7cXAVpjatwb?Y7%AU6p*`ztGT3B8=WjU>qbR`nVmY# zs$*+w?<8LzFR~Vq(NXl^BR``pAACr!yznB`*O?niV))$Sv9U2%@b7nDUS6J6ohC0A zOgf@RM@J{Kn*K6hgR?ESJFsWhWEyr}^<@FnzE4k#^ZC!wWCgm&Xr67fhB}#XfsUU(OT}dsvdyUWQ+Kdv4V7P9N^gF+ zjmj!}8fBu79(vBZxhk!%QC55XRm-TVrbl?9NCox$)&hepTwF#LJ`4>DrCUhjN>9kE}fNrFj3^w`+w$N201i_|G9030_ze&k{L{QX~?)Gk@r=oZzGke*iXkR~IiD>b{W3v!B&>y@dpaM0c<B=kSo43KPA5LBXT3ma$*(Pt_+uNHSdh}ts<@VcpZRf9c8?QyXr9l)B+{$g0{O&a zZR!bm@w=omt+V6khd4O1#KZtYsMJv5r^Uy}v1xX@vno-cc3T3+dWOC6Go~lVa|AG; z@pSV6%BU0!MP%*3(rJg!=(M`3&P0vPt)fBL3h*=B!~U4)m}vUvlYghi#zyrox)~;u z^N!fqh?{bAi%!vHhRc%Z{A11Hi|$>rAh|2sKEYd>U_jyz?+6#D*)xU;-Fe z!s%Eo#=XHwPp8l22;q*Oxxn7glZp!hu{h^^LT4 zk?HdPJN=Ecmf9K=fl0Lg}&2riH z`Ug9i(C(Cy7%d?!VC$YEQUNv?l9S@(CZC~vP_NI_yzcl+G^zx!EhZ|AZFjcIjolJ9 zOXd)rA4}ho@+w{^nkgvIkNo|7WHG3!u2o*gi-W}Ct$-{D{P|9H8a zgc-}h4;OL^rEuk3b^*mjhEQlwfJo0aV>^4mm9GI(ojRLM7xD_}#;cbqU1&_oa-)U3 zKuF|-FX0&W;ge_0L>HTQ7&$?*j9A3R&51K|+y<*++FqX4rK}DGEKnFOY0q5$px|J7 z^f$kv$A9%}I)7G)xAS-QaBy&XpRcDoa&rscrON=94bfv_A{Oa%4j=MEa}H))LIOSZ zyI+%=+r(vB(%YZxrW;l- zlaLeCXZAzLYqYQx)a-T(3660_nz#JZ{l_@|T`rHyq|Wow#(|fE0;%s0l6Jp6)`B@dR3Doj7%Nz`tWbJ3h$YasCj3^YU<)3A5Wi z+9E?4yG=&L*I*n~DAa|?{z6=I^qo2R`5(|Fj7y&A2?^0lj7I(Q{LnnQWcJ)S^rN5t zlw2lgLk7#570)DHAE4z_X+@2sp+YqW&{>w$TyuF3KVB%|tTyQh-wPIT zuT=Kt!#Q`k0PVA|xc%@ecagtuZ|}Tv3YGH+(&Imz=7%1CnjZhd6O@)VmmYfP$MoYL zKO|EB*=L`j1G~40<8uEobD^7;&O!fLR8-WOf`Wp*bcy1Uj-&I*k29I{?;<5z+ctOp zJo?ek>_>7C%4i&2PP}D!3DO!PnU|~m;{c_jimsP;+R4#CIRz!`!7h{M62^k$vN#qA zk@ZO~QI7X=&im{6ZaOvIuibEtVBg~gjRzW%6Q3VwPl%}>Ja~}qx#u(V)|+ognk~jH z2Xl1bt_|1F%0<0OA>7$S`T%tjbcy1UmFRrZL)q@yLl%-8*>2x`@P{MLjkX35j>b_Y z#z9)Yw|$>vkfC52sx`95F60)m4XKkH^XQ0Ballp9)RQ(s%*EN6>KmFwisAakLI69x zsI*d~)y_jFc)Ly(4!j3;Dc(Ai*L^Ypsy-H44-ZfB@$sckKKX>^&7Y4J(RBX&c}k5A zlEvW88&}JW`opKp4mvLf2i-e--EGLv&p%6-7%oYo2L}fSF(GzZO7h64C|1{hBGX4F zI@VpaG9Fh#>$zUS=tas>Q_It(vPP|LEwx+t!&QA}SJ@?C*w$hcD)ETs2)nxD<(Q@bGZ` zC;t@Y0CPxaC_VhE$H=dD(ZYm9e@z##Nsr5(rLdOU9q2c<>DRBlzn!jIwOGP);nyw~ z(r(*#R3ZLNYvg{m56 zA@v(?yiT{=a;uOXlKi#TUZL*Jc8UoPHoq3C|2IB+6aDGgHz+HwNZqPSaB*>bCm|u> z>a47+cDh7xsS#Zt7Z>+87AH4q8v=s@=_ijpO8x<(93w1J(;^LRy39AQ$c-jRSlY0^__miPZ0TKM0Mm9?DeV40Lu> zv`t9Fer1Gj-b*pZv$<+BYKe%LS zn=hFwSE(*C-mlY{?zh~2&Du3oTv$litaddwH%sdw+&Vit<-WD0h2ya;)Xrfg)LnP+ z#bH$KG`t2sFjn=(#s>M(51zPq)UFI?V@d187cXqQvdS8%?7{_td$dn-<1i5x1%!C8 z9nuSGH?rI&!Vm$;=(F(TgSa4PfS>n8uZ5b9zk}>oUolU%L9&B<8c{*$b2&XKH}-=C z01<**i;!J$SrwZY@ibb%S7G^imW#=70Mi4D*R13O+Wh{fvVbEO;oe)<(DbH&CA{~q&QdrV=baqo)N4s3$ zEiG+S-`FT2uFBd*%FZtpySYC+{KPXfk)Tl>=OaMcM^88ZO|wO3GYS6n>U*lx4=}$G zf7eoXA<-@03m}#ai8-59Z7prp$tl}xm%}Nj+1Zfj!zsuK>~pNzcNi{arzDWCmnX$U zgh*(!ysCz7Uw_q*rLgeEqk-oi{`smFHNkcG^Z5AaquJT{AJPQJB|&tyhaya-u4$2B z!Mf#(<|>&^4oX1?YNt=1&7_K&2Kwrk?i1qfJ8+2h?b}E9fA&^$zcQe{v56l4+jF#T z^$NOn)sg`}uazA(=&Nq+>@tw23l}j<@g}~I(R`r|T196U4b+El*MVac9u`4!X3x0j zZ*a=JviU8VH*1Uu&<(x_t*FHHm+Gl!$n$3PwfCq3iP?Nw%#4*^WvBt{Y+F z5ad@Qyj59UOAWj@3pQS7o3ZQXle;epn%h`+?DI6uHK0G^r+5DMwg#89*vote87vbn=cr!FK z^s3U*(iWPanD9i8i;MXMU*GEodyPr0u1ZfoOOfGWO5(^U^S42$ke~oj@2hHRFRH~J zEl}@mS!_~KSw%;V9;bEJU90#F_!b%x$QQe>XepA%j+i?i*GO#sdMg&J$p*yBN0MXU z*2iJTzsDk1SLa{y!|%`p#e~j`i;Ih#&!_Pl*1mq((k1lzTmO^Jp=iut3!oA!A}mBC zr!9fS31)`}+qFf-CA53re!BhEnM8qJTg3#e0+x2=>(L7W`U56x2Gos1^7w(6Gfv4jzNvK=lm`^trok zr|16rvJkwJ)k(c%%-N=@thuH2GEajY8SuNdwvUYHXk_xu?|$2IlTNR9{0|0$&;-N; zR^5%iZ>6zB_J9Hr)W z<+jg#@jmh%L~TY*b9HqMUA1C4?cB3Zs=w@cal=-2cT+ON97kw3A3w2L z3{Nx zx{#GaRaMm#6B8wQ0VmI7(58(yh-yFD7D^xyy0lC*z|2C%TsDVAkv1E_oJdZHrm==j z&hO|o?8Ir)WZKUw|9w%}uTJM-GP(SkAAW%*2qqNK6B44+OeUQ<#nqc*(szFLo*~}{ zQa~bZ*}C1lEo_4KY!43$rkT?dr~*wBS%pteKPPrQq|EDY|Bn*mqRm4JM+(eTvvpW- zxWMny-q9r~!3Cw|lFAC_U{Xv3tz0z6+(lkuga4v0JJMpLMXkAdyOajoRk@$0n@OxkRER7Z* zT(h0jc66?7Xljvs1@vpvnWW!^m`l(|f&+XdLoPKjwpV)V<&N06INEgAo%Gs^FUfO0 z9n)iDqaV)A&3~B2854r&$|xND547j7v+w`fS7^9^P1`*}@5&dy_eihj=tq9v9UJMH zSKg+Fzxx%*klT0oggpQL*Y1^RCg-#A=-rQZ$Yb1F;*Je#Y0k{)^z%RbUHZ6bxMIN^ z+3%yg9R)U)pNG%++q19G`Ru%Yk5PNgyIXe9*4+ns{Y^V24Jgbp*=dkFib9a;>*nSx zzJ{Tkk;wV4Yiy)IKVQ1sas7?!>EjPRq`F$Aq?NUXuSG;e{I{s6D3it!6N2a_lhcEI zt(YtR*WR#>fIpE2LR$@(Xk|YqeV9sTO-ilI*qBQtdi0*b7jGS+CCYGj?Oh-`TE!CH^0!T zS9Jl7j)tF-5?dcPj62ce;^Go@I+NKuiS*B#H{D7jfiz4UVdKUh{o+r(o`Z-OBACWf z8B!J`f`A0+{@+i2Bla~&d*ijMx?7%Y!<_41y=5ZL{QLX0=CAY2_de^g_SFGVa|x|mXD&7kyC%J?eQH1COxjs1OY zZtl3vbejMY-GrFAxr4x0zV!{6TRsv%gB)oe@2c85`pr*zQW{@<`y;sr!6C(8dFLaM z>L44)3KbsrnpFKfOYO+;5cB(mqn2*Fl9dbh5P77-+n-P_mM>MbO^VtqjAEx5Xm_|&$7C%0ctd)GLXjiAiAa+FJ+=a)rK7oU?G57Z%H<21KI+CeQSWT zO_R)zTS#Smp1-ekDlrHSb=?wJJeH~pNPR;iO<`zQ_Iv{V-B}*RPm?t=FQuC^ytws@4r26L{CVFS;OD|TJ3q- zyfn6JX3}VYMPj5?Yamd-09{u>LO0itUfV1kU;RBFYWqN+*Gv8H^SRpJ20K=JI^ixi zAb&w`$C!RpOf+3{-5U17f23~FU0GLGhYlLsX^b&$UJ~|>_o_4BaO*8JTFA`quE{;D z07DC>U>(}|S~1w!QMi8NMrrG%LT55{k4sE_TqHW%Dsx!+njI5q^XJj*w9z}LP%hfm zJ~4=n*l}fbjnY+2Cmq{+#t*Cal9`3EK{}=Xolc$HB7f5i8lA;!sdrC!?UD8xWT9cK z&_vJkpD1W=@3MOeZe&y>t-9uF`uKgNeEuru$?*a$zg?&6{T>~ZFXbglZ#Zq> zgHG{HD6iF17cVf%qM%b}FzV#>c#M4WDf9phK3rYw-zQ?jO&e+3mXE1h@gF(q^``Ig z{pC$`mgXUR(V3YY8y`n0GiQ)3fGjPUEj|GNQlUs?{p#gHvTh{usJY-Weu*7H2oOkq zxO&W5R-aLQ4N|1dqnhx*L~2Q^@*4EAE2*fa1#{;p(?T(Xf?rf$S5Id$&eELJX|fRD z0z=s@^62dWob%RJr7Rc~b0&2dhLZbkk`R;hz8`{AT64^?0yH2rEwML3!^3Ie;>EOo zk2Z`|w;>@RJR&QrxQNCGV@`B~!Sn!sQS;fojXjgLf}?|hI=aT6=(vDTP=Y+~G$xx) zZy!7G^tmkBy895_eaEI=+lxv{=}dYC-Mao7u|eC}oGGuYqGw-ym+XOz%sg>|Iy*V= zcQuf?CQQDzPFeJv8mNSi!N*hU45n%v%8+Q$I?AeQC^aconHY<{`n(P6ovQ5cLZFj~ zLQ-r5M=yeDv_OQ$+E&k_0T!S5(zW zx0u7H&QfksxpHjX$~0KZW|zp``*`yfJG9G zC2-lFPCrZ6uepW}A3I@o@@Yw5mbqWub|5`WCe4ZH@9RZzQDGDs=uZjJ%A^c=TG=TR0+}WRzBq;)w;rRz%0SfbU?euw>a4HhogACo-cF(Z0HLc(1B;mqSU=FCl#4l=d`YP)UO=6SfNuB{!@jxMOf7qy&E z?ChDTR8?I~Gg79DgzfI`k&Kpk@7;EAR_fF!0ssvI3y^fORYOb#dMLTcAue;wHxuuYBQFA1fBlmIR_uZKAHxo`-R`VR~{h*&5;u z8V907VwSN-d8{kO@O`1d^!?oCmS$P>`tvA5y4re}12hQj7|@Y7iap}75k0B9jz}{# z(M98r@I1$2HlZvK7EH!*LUp%v*y#;A2_f17O)V`WmgwjQ-`q6(g*_}hjFM-hT5K`h z92y!rvU1H~!0ujmz5sOb@$pxpt&XTqm4T(yJ*!gDAX3428g3_v5cEIUm5df*n*|~;6 znTiWRPo8eB)XWka9bp|E4Pwh1+qz}6GSu_KXUs1LRQvn;Q*dYqMMgzYSVXwk;n)@w5=T|=c9Rr#CpuQ+xVV^GEwz*7t5%Rb09CemjN2Q7H1H0O2k?EN62JTY zM`nqN>^Mlpc@|-;zNNeHc-t}~Y|)$)xi@Jlyqe(C#h;6XsH?MEl7~?9kDm3SqVs(e zOMNUt7%|<_W~7*iP+kaJDZg0p)}vjOpSL%aunk{SR$<;hy4BbMHFXW-=H@~pL2!T{ z-L`QpFRGPPSW-^qWhHbzJzW+LlbSSy-^ZU9-++KX^78hQ#UMN)g67Pd$Ao`I`(1S1 zou<`%zm4pOv52FC;WuheA|fNC?%W>0SR_bREG}cEM%Uot9j7J_AP)vHu3ou_wrt-g z_A#c9;Ecz|m|NptG)cgS~Chl%RW zuM70;<9zL#1*h)H*URJLovCTU=5*mv0$;C@L!rLIoTsP#)Nnw~n3lj1hHzdu+j-Hb zqq2%B%FHRCg5omCrNAOrQC2QDOWgUHdnh?InbJ?ED;xCmdHzm6<#XO?ugpNZ6Fn*_ zDvb|5Onbik%2i}9zzdDItWh1KY;QETwvOvKVx;_j<31(-2t>dC?we&cT;K0*Id-U` zrk-QmJyTJTCokil40!^qDyy2ts-@kI|2Q!e{U})P|HX4> zQdmf!OytF}dGiAH)N`-Nxm~()We?Gb0%Kyr=kY!clATVny@{@8+pAZO>%4^v$zG5y zuzXQ>jZtc2C9m2O0rr+({@d@#At zSh4Tnw@L)TD5eIg{`&iVKCBj>&l!H&ILLSEY|fCcgXG7;lEiWUkf1=(mV9AWur?6L z=M?Agw|{$v{_)o*Xj)PNwYPQ9H85r>m6_B z`-5aB*qaTI5gRr8JTxqf;^O1TUJ%ueB@`S#_9l8QJHI+Q$2SX41JXogcKQHWhFWNA z-POx33gn#4%%z?CkJ2sct|kw6HyRIQMvF zEl8U&;yHJt1^NS;Sb#kIz5ZK}!{>ondbMoE!3?UYtrZPuu=DBX?b?+o)p2Mr;y+vc3%0DpPw&zvd0=jDE-*B*Kz`S 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 Date: Fri, 9 Apr 2021 09:02:17 -0300 Subject: [PATCH 2271/3440] use logo via github raw --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 034abdf7a74..093165333d9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# awesome-go Awesome Go +# awesome-go Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) From 0e3c74c7fe18994bcd4a3382c0d062fd94f6075f Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 09:07:46 -0300 Subject: [PATCH 2272/3440] add producthunt link --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 093165333d9..a170e40964e 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) +awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt + ## Sponsorships > [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) From a0242c4d6a43699da74919664be89a56cd395bf7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 09:13:02 -0300 Subject: [PATCH 2273/3440] move netlify-cli install to before deploy we don't need it to run the tests, running the tests will be a few seconds faster Signed-off-by: Avelino --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index d6f403deda3..2be03daf27a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,8 @@ sudo: false install: - go get -t -v ./... + +before_deploy: - npm install netlify-cli -g deploy: From 20f84c236b3b0f612f9df4c9a13cee7d84332455 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 09:14:11 -0300 Subject: [PATCH 2274/3440] remove fixed logo, used readme content Signed-off-by: Avelino --- .gitignore | 4 +++- tmpl/tmpl.html | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 19305f8caac..ac9b53b2824 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ awesome-go .idea .vscode test_stale_repositories_log -*.exe \ No newline at end of file +*.exe +# Local Netlify folder +.netlify \ No newline at end of file diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index ff3cf9281d5..152188861e4 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -22,8 +22,6 @@ - -
{{.Body}} From e3053f03be0e033ccb85b4afa226c54e1b369777 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 09:32:34 -0300 Subject: [PATCH 2275/3440] travis: set nodejs version to stable Signed-off-by: Avelino --- .travis.yml | 4 ++++ README.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2be03daf27a..f1662fc0a0c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,10 @@ go: sudo: false +env: + global: + - NODE_VERSION=stable + install: - go get -t -v ./... diff --git a/README.md b/README.md index a170e40964e..a37c10b41e6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # awesome-go Awesome Go -[![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) +[![Build Status](https://travis-ci.com/avelino/awesome-go.svg?branch=master)](https://travis-ci.com/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) From abbfbe539a582c1cb020afc3b5889c78d207b825 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 09:37:02 -0300 Subject: [PATCH 2276/3440] travisci: node latest version Signed-off-by: Avelino --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f1662fc0a0c..6fcdc12d18c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ sudo: false env: global: - - NODE_VERSION=stable + - NODE_VERSION=latest install: - go get -t -v ./... From 3cdaccb486d1d35d2f97d93dd8ea4cfd4df2e174 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 09:43:01 -0300 Subject: [PATCH 2277/3440] use `node_js` tag on travis Signed-off-by: Avelino --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6fcdc12d18c..ea69797021a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,15 +1,13 @@ language: go +node_js: latest go: - 1.x sudo: false -env: - global: - - NODE_VERSION=latest - install: + - node --version - go get -t -v ./... before_deploy: From 0146602b7d81e6eade3c2d67261368a1a0d4dafe Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 09:45:43 -0300 Subject: [PATCH 2278/3440] active nodejs version by nvm Signed-off-by: Avelino --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ea69797021a..43fe35146f8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,4 @@ language: go -node_js: latest go: - 1.x @@ -7,10 +6,12 @@ go: sudo: false install: - - node --version - go get -t -v ./... before_deploy: + - . $HOME/.nvm/nvm.sh + - nvm install latest + - nvm use latest - npm install netlify-cli -g deploy: From e799a8f155d33a4ae04386723a196aff6e5605f3 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 09:48:36 -0300 Subject: [PATCH 2279/3440] nvm version 10 Signed-off-by: Avelino --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 43fe35146f8..9566bf48086 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,8 +10,7 @@ install: before_deploy: - . $HOME/.nvm/nvm.sh - - nvm install latest - - nvm use latest + - nvm install 10 && nvm use 10 - npm install netlify-cli -g deploy: From cf0c96b7aab4370bc49691cd3035b67167a829b1 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 09:55:38 -0300 Subject: [PATCH 2280/3440] fixed warnings on travisci config - root: deprecated key sudo (The key `sudo` has no effect anymore.) - deploy: deprecated key skip_cleanup (not supported in dpl v2, use cleanup) Signed-off-by: Avelino --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9566bf48086..f1124b502dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,6 @@ language: go go: - 1.x -sudo: false - install: - go get -t -v ./... @@ -16,6 +14,5 @@ before_deploy: deploy: provider: script script: netlify deploy --dir=tmpl --prod - skip_cleanup: true on: branch: master From 9587df802cc4fb919063cdba62b1a5de8460a499 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 9 Apr 2021 15:10:19 -0300 Subject: [PATCH 2281/3440] Revert "fixed warnings on travisci config - root: deprecated key sudo (The key `sudo` has no effect anymore.) - deploy: deprecated key skip_cleanup (not supported in dpl v2, use cleanup)" This reverts commit 2932cf189788155ada29f6853248e3d819224381. --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index f1124b502dc..9566bf48086 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,8 @@ language: go go: - 1.x +sudo: false + install: - go get -t -v ./... @@ -14,5 +16,6 @@ before_deploy: deploy: provider: script script: netlify deploy --dir=tmpl --prod + skip_cleanup: true on: branch: master From 9b5d48fae7d058202bed63509df2b99dc5b6e663 Mon Sep 17 00:00:00 2001 From: Armin Date: Thu, 25 Mar 2021 18:47:37 +0100 Subject: [PATCH 2282/3440] Add roumon --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a37c10b41e6..7fb4ab634f2 100644 --- a/README.md +++ b/README.md @@ -2390,6 +2390,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [igo](https://github.com/rocketlaunchr/igo) - An igo to go transpiler (new language features for Go language!) * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. +* [roumon](https://github.com/becheran/roumon) - Monitor current state of all active goroutines via a command line interface. * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. * [typex](https://github.com/dtgorski/typex) - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration. From 2f478401fe2c71f3f301bdc559e699d8e05b4af6 Mon Sep 17 00:00:00 2001 From: Arthur Silva Date: Fri, 2 Apr 2021 12:48:41 -0300 Subject: [PATCH 2283/3440] add golang-ifood-sdk --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7fb4ab634f2..822903365bb 100644 --- a/README.md +++ b/README.md @@ -2328,6 +2328,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. * [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. +* [golang-ifood-sdk](https://github.com/arxdsilva/golang-ifood-sdk) - iFood API SDK. * [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. From 38ce1eaf191dfeb53a25a336a1863b8bca0757f3 Mon Sep 17 00:00:00 2001 From: "Iglou.eu" Date: Tue, 30 Mar 2021 00:58:25 +0200 Subject: [PATCH 2284/3440] Add go-yapla --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 822903365bb..72f4ca0e34e 100644 --- a/README.md +++ b/README.md @@ -1925,6 +1925,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. * [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. * [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. +* [go-yapla](https://git.iglou.eu/Production/go-yapla) - Go client library for the Yapla v2.0 API. * [gogtrends](https://github.com/groovili/gogtrends) - Google Trends Unofficial API. * [golang-tmdb](https://github.com/cyruzin/golang-tmdb) - Golang wrapper for The Movie Database API v3. * [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. From 7a5a8460f75200869eb79ce569bd67974c8c7d00 Mon Sep 17 00:00:00 2001 From: Brandon Date: Thu, 8 Apr 2021 16:26:34 +0100 Subject: [PATCH 2285/3440] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 72f4ca0e34e..74d204001d1 100644 --- a/README.md +++ b/README.md @@ -864,7 +864,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Geographic tools and servers* -* [geocache](https://github.com/melihmucuk/geocache) - In-memory cache that is suitable for geolocation based applications. * [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. * [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver. * [mbtileserver](https://github.com/consbio/mbtileserver) - A simple Go-based server for map tiles stored in mbtiles format. From 742d13ef24631078743449d85ddbc30833d26e10 Mon Sep 17 00:00:00 2001 From: Drew Stinnett Date: Tue, 13 Apr 2021 18:44:22 -0400 Subject: [PATCH 2286/3440] Adding go-output-format --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74d204001d1..02b6fdde929 100644 --- a/README.md +++ b/README.md @@ -1837,6 +1837,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). * [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. * [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-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. From b580c8592f2c5442f2c38d7a9cd425af3c8afb77 Mon Sep 17 00:00:00 2001 From: Rasool Dastoori Date: Mon, 5 Apr 2021 19:35:30 +0300 Subject: [PATCH 2287/3440] Add higgs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 02b6fdde929..e8edf0dec40 100644 --- a/README.md +++ b/README.md @@ -764,6 +764,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). * [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. * [gut/yos](https://github.com/1set/gut) - Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links. +* [higgs](https://github.com/dastoori/higgs) - A tiny cross-platform Go library to hide/unhide files and directories. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. * [parquet](https://github.com/parsyl/parquet) - Read and write [parquet](https://parquet.apache.org) files. From 1de830c81b62cd111b9718144417c34e8429f281 Mon Sep 17 00:00:00 2001 From: Sergey Podgornyy Date: Sat, 17 Apr 2021 11:59:29 +0200 Subject: [PATCH 2288/3440] Fix broken link to the contribution guidelines --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 3057f72ee1f..a096b5bb3e0 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -19,6 +19,6 @@ Very good coverage - [ ] I have added pkg.go.dev 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). +- [ ] 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-standards). Thanks for your PR, you're awesome! :+1: From 1eb3b5ad023c13352ebba54a1d80093b61fe5644 Mon Sep 17 00:00:00 2001 From: DarkFighterLuke <31162436+DarkFighterLuke@users.noreply.github.com> Date: Tue, 23 Mar 2021 23:09:49 +0100 Subject: [PATCH 2289/3440] Add echotron telegram bot library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e8edf0dec40..ec94f83b4a6 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building and working with bots.* * [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. +* [echotron](https://github.com/NicoNex/echotron) - Library for Telegram Bots written in pure Go. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. * [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. From a5897e7104faff0ccc2c2e9c3f46e49a2af8c13f Mon Sep 17 00:00:00 2001 From: DarkFighterLuke <31162436+DarkFighterLuke@users.noreply.github.com> Date: Sat, 17 Apr 2021 11:15:24 +0200 Subject: [PATCH 2290/3440] Reordered position --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ec94f83b4a6..1665bb49556 100644 --- a/README.md +++ b/README.md @@ -177,8 +177,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building and working with bots.* -* [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. * [echotron](https://github.com/NicoNex/echotron) - Library for Telegram Bots written in pure Go. +* [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. * [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. From 31b873addbeb3974d5a974b3e6f067b0a3855258 Mon Sep 17 00:00:00 2001 From: Sergey Podgornyy Date: Sat, 17 Apr 2021 11:42:32 +0200 Subject: [PATCH 2291/3440] Add larapulse/migrator to the Database migrators list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1665bb49556..555b344bbc5 100644 --- a/README.md +++ b/README.md @@ -490,6 +490,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gormigrate](https://github.com/go-gormigrate/gormigrate) - Database schema migration helper for Gorm ORM. * [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. * [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. +* [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. * [schema](https://github.com/adlio/schema) - Library to embed schema migrations for database/sql-compatible databases inside your Go binaries. * [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. From a179d18eaf8e278b11d0ce06c2d54c2e0a352885 Mon Sep 17 00:00:00 2001 From: Hamed Yousefi Date: Sun, 18 Apr 2021 19:34:48 +0430 Subject: [PATCH 2292/3440] add Gowl to the Goroutines list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 555b344bbc5..e4b5cfcda0a 100644 --- a/README.md +++ b/README.md @@ -909,6 +909,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. * [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. * [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. +* [gowl](https://github.com/hamed-yousefi/gowl) - Gowl is a process management and process monitoring tool at once. An infinite worker pool gives you the ability to control the pool and processes and monitor their status. * [gowp](https://github.com/xxjwxc/gowp) - gowp is concurrency limiting goroutine pool. * [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. From 8f2eec0171e46031f48bb2cfdeedf8373dd45117 Mon Sep 17 00:00:00 2001 From: Hamed Yousefi Date: Mon, 19 Apr 2021 12:22:18 +0430 Subject: [PATCH 2293/3440] fix link alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e4b5cfcda0a..a2d8fe87e90 100644 --- a/README.md +++ b/README.md @@ -908,8 +908,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goccm](https://github.com/zenthangplus/goccm) - Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently. * [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. * [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. -* [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. * [gowl](https://github.com/hamed-yousefi/gowl) - Gowl is a process management and process monitoring tool at once. An infinite worker pool gives you the ability to control the pool and processes and monitor their status. +* [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. * [gowp](https://github.com/xxjwxc/gowp) - gowp is concurrency limiting goroutine pool. * [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. From 4f5ed8e61b02341a18c0a51d27b4eb695b2d5ab5 Mon Sep 17 00:00:00 2001 From: Valentin Khomutenko Date: Tue, 20 Apr 2021 22:38:57 +0300 Subject: [PATCH 2294/3440] add normalize lib --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a2d8fe87e90..715d83fdc33 100644 --- a/README.md +++ b/README.md @@ -1862,6 +1862,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. * [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. * [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. + * [normalize](https://github.com/avito-tech/normalize) - Sanitize, normalize and compare fuzzy text. * [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. * [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. * [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang From c4a0e11412fc2dce49b1bbf26cb7a96eaff4b167 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Sat, 24 Apr 2021 15:08:41 +1000 Subject: [PATCH 2295/3440] Add debme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 715d83fdc33..c60782dcbda 100644 --- a/README.md +++ b/README.md @@ -1558,6 +1558,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Resource Embedding +* [debme](https://github.com/leaanthony/debme) - Create an `embed.FS` from an existing `embed.FS` subdirectory. * [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-embed](https://github.com/pyros2097/go-embed) - Generates go code to embed resource files into your library or executable. From 4603258f9b2df2adc9ad913b09dadb8e84675d15 Mon Sep 17 00:00:00 2001 From: roseduan Date: Mon, 26 Apr 2021 18:06:18 +0800 Subject: [PATCH 2296/3440] add rosedb add a k-v database rosedb --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c60782dcbda..8b406d3fba1 100644 --- a/README.md +++ b/README.md @@ -468,6 +468,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. * [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. * [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. +* [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. * [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. * [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. * [slowpoke](https://github.com/recoilme/slowpoke) - Key-value store with persistence. From 4ab209ca908d358c665c0497691df6b351e69f8b Mon Sep 17 00:00:00 2001 From: Alexey Popov Date: Sun, 18 Apr 2021 20:01:05 +0300 Subject: [PATCH 2297/3440] =?UTF-8?q?Added=20github.com/alexeyco/pig=20?= =?UTF-8?q?=E2=80=93=20simple=20pgx=20wrapper=20to=20execute=20and=20scan?= =?UTF-8?q?=20query=20results=20easily?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8b406d3fba1..d801f3da56e 100644 --- a/README.md +++ b/README.md @@ -557,6 +557,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver. * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. + * [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. * [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. From ffdf57d8c3004b5eeac9f2bfb15ea3b5500c90a6 Mon Sep 17 00:00:00 2001 From: soypat Date: Fri, 2 Apr 2021 00:13:10 -0300 Subject: [PATCH 2298/3440] add godesim --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d801f3da56e..2456e2ce38b 100644 --- a/README.md +++ b/README.md @@ -1587,6 +1587,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [godesim](https://github.com/soypat/godesim) - Extended/multivariable ODE solver framework for event-based simulations with simple API. * [go-dsp](https://github.com/mjibson/go-dsp) - Digital Signal Processing for Go. * [go-estimate](https://github.com/milosgajdos/go-estimate) - State estimation and filtering algorithms in Go. * [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. From b8272790a42fd005d6e1d3e650cd2c35322074b2 Mon Sep 17 00:00:00 2001 From: soypat Date: Sun, 11 Apr 2021 18:44:45 -0300 Subject: [PATCH 2299/3440] add gitaligned --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2456e2ce38b..11a40ded8bb 100644 --- a/README.md +++ b/README.md @@ -1306,6 +1306,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [gatus](https://github.com/TwinProduction/gatus) - Automated service health dashboard. * [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, and Bitbucket. +* [gitaligned](https://github.com/soypat/gitaligned) - Get author D&D-styled alignment from repository git commit messages. * [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool 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. From e22680fc0023e4496fc54ffdc0672dbeefc951f4 Mon Sep 17 00:00:00 2001 From: soypat Date: Wed, 21 Apr 2021 14:54:55 -0300 Subject: [PATCH 2300/3440] fix godesim order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 11a40ded8bb..19c14be32ba 100644 --- a/README.md +++ b/README.md @@ -1588,10 +1588,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. -* [godesim](https://github.com/soypat/godesim) - Extended/multivariable ODE solver framework for event-based simulations with simple API. * [go-dsp](https://github.com/mjibson/go-dsp) - Digital Signal Processing for Go. * [go-estimate](https://github.com/milosgajdos/go-estimate) - State estimation and filtering algorithms in Go. * [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. +* [godesim](https://github.com/soypat/godesim) - Extended/multivariable ODE solver framework for event-based simulations with simple API. * [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures. * [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. * [gonum](https://github.com/gonum/gonum) - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. From 6fe1d4cf7a661d98735769fb2d2a1d665d413bed Mon Sep 17 00:00:00 2001 From: soypat Date: Mon, 26 Apr 2021 09:23:12 -0300 Subject: [PATCH 2301/3440] just one package --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 19c14be32ba..0094683038f 100644 --- a/README.md +++ b/README.md @@ -1306,7 +1306,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [gatus](https://github.com/TwinProduction/gatus) - Automated service health dashboard. * [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, and Bitbucket. -* [gitaligned](https://github.com/soypat/gitaligned) - Get author D&D-styled alignment from repository git commit messages. * [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool 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. From a27d94f0bb884f08ac476e11b3c466eea7a0a56e Mon Sep 17 00:00:00 2001 From: Milos Stojanovic Date: Mon, 19 Apr 2021 12:03:12 +0200 Subject: [PATCH 2302/3440] Added GoTuna --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0094683038f..f16a475421c 100644 --- a/README.md +++ b/README.md @@ -2217,6 +2217,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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. +* [GoTuna](https://github.com/gotuna/gotuna) - Minimalistic web framework for Go with mux router, middlewares, sessions, templates, embeded views and static files. * [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. * [Goyave](https://github.com/go-goyave/goyave) - Feature-complete REST API framework aimed at clean code and fast development, with powerful built-in functionalities. * [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. From 3fbf24eaeebda5ba1c5a73d345602f7c74e5ccf8 Mon Sep 17 00:00:00 2001 From: ADiLet Date: Tue, 27 Apr 2021 17:06:18 +0200 Subject: [PATCH 2303/3440] Added Golang Poland meetup --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f16a475421c..eab3703b9bb 100644 --- a/README.md +++ b/README.md @@ -2656,6 +2656,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Golang New York](https://www.meetup.com/nycgolang/) * [Golang North East](https://www.meetup.com/en-AU/Golang-North-East/) * [Golang Paris](https://www.meetup.com/Golang-Paris/) +* [Golang Poland](https://www.meetup.com/Golang-Poland/) * [Golang Pune](https://www.meetup.com/Golang-Pune/) * [Golang Singapore](https://www.meetup.com/golangsg/) * [Golang Stockholm](https://www.meetup.com/Go-Stockholm/) From 1f974bc7f1bd7eabc2bb4cad768ed9baf5ea1ab8 Mon Sep 17 00:00:00 2001 From: "Iglou.eu" Date: Mon, 29 Mar 2021 18:17:16 +0200 Subject: [PATCH 2304/3440] Add go-wilcard --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eab3703b9bb..7e0b660ea5a 100644 --- a/README.md +++ b/README.md @@ -1850,6 +1850,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-slugify](https://github.com/mozillazg/go-slugify) - Make pretty slug with multiple languages support. * [go-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. * [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. + * [go-wilcard](https://github.com/IGLOU-EU/go-wilcard) - Simple and lightweight wildcard pattern matching. * [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. * [gofeed](https://github.com/mmcdole/gofeed) - Parse RSS and Atom feeds in Go. * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. From 83b938d952a7397615b5e9ff7b4d3d6e43811236 Mon Sep 17 00:00:00 2001 From: "Iglou.eu" Date: Fri, 9 Apr 2021 13:03:33 +0200 Subject: [PATCH 2305/3440] Fix wildcard typo ... --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7e0b660ea5a..4461eeb2d1a 100644 --- a/README.md +++ b/README.md @@ -1850,7 +1850,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-slugify](https://github.com/mozillazg/go-slugify) - Make pretty slug with multiple languages support. * [go-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. * [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. - * [go-wilcard](https://github.com/IGLOU-EU/go-wilcard) - Simple and lightweight wildcard pattern matching. + * [go-wildcard](https://github.com/IGLOU-EU/go-wildcard) - Simple and lightweight wildcard pattern matching. * [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. * [gofeed](https://github.com/mmcdole/gofeed) - Parse RSS and Atom feeds in Go. * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. From 07989757806f3a8f937a2750215c42d035efc132 Mon Sep 17 00:00:00 2001 From: Mikalai Konan Date: Mon, 26 Apr 2021 23:43:12 +0300 Subject: [PATCH 2306/3440] added go-type --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4461eeb2d1a..85ca714cdaf 100644 --- a/README.md +++ b/README.md @@ -2039,6 +2039,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-safe](https://github.com/kenkyu392/go-safe) - Panic-safe sandbox. * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. +* [go-type](https://github.com/mikekonan/go-types) - Library providing Go types for store/validation and transfer of ISO-4217, ISO-3166, and other types. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [goctx](https://github.com/zerosnake0/goctx) - Get your context value with high performance. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. From 15cd0af9299caf86f689ad0397453a49ba316d7e Mon Sep 17 00:00:00 2001 From: Iheb Haboubi Date: Thu, 29 Apr 2021 13:10:42 +0100 Subject: [PATCH 2307/3440] add dsu --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 85ca714cdaf..9032af5df86 100644 --- a/README.md +++ b/README.md @@ -384,6 +384,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. * [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). * [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. +* [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation 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. From a6ca486543898ad1eff06a50a450e06b312e580f Mon Sep 17 00:00:00 2001 From: Iheb Haboubi Date: Thu, 29 Apr 2021 13:35:09 +0100 Subject: [PATCH 2308/3440] add punctuation in description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9032af5df86..942cc4885c7 100644 --- a/README.md +++ b/README.md @@ -384,7 +384,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. * [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). * [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. -* [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation in Go +* [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation 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. From 95f3dbccad4651a24c482c7f89b4e7e495afbfe8 Mon Sep 17 00:00:00 2001 From: Yaroslav Podorvanov Date: Sat, 1 May 2021 13:37:59 +0300 Subject: [PATCH 2309/3440] Added JSON-to-Proto under Go Tools --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 942cc4885c7..f656124bdfc 100644 --- a/README.md +++ b/README.md @@ -1068,6 +1068,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. * [jettison](https://github.com/wI2L/jettison) - Fast and flexible JSON encoder for Go. * [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. +* [JSON-to-Proto](https://json-to-proto.github.io/) - Convert JSON to Protobuf online. * [json2go](https://github.com/m-zajac/json2go) - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. * [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. * [jsondiff](https://github.com/wI2L/jsondiff) - JSON diff library for Go based on RFC6902 (JSON Patch). From c08bef3f8177cfe4660367a86d490d2c6ffab84d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Sun, 2 May 2021 23:28:33 +0200 Subject: [PATCH 2310/3440] taskflow migrated to goyek --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f656124bdfc..378abe896ea 100644 --- a/README.md +++ b/README.md @@ -207,11 +207,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [anko](https://github.com/GuilhermeCaruso/anko) - Simple application watcher for multiple programming languages. * [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. * [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. +* [goyek](https://github.com/goyek/goyek) - Create build pipelines in Go. * [mmake](https://github.com/tj/mmake) - Modern Make. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [Task](https://github.com/go-task/task) - simple "Make" alternative. * [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. -* [taskflow](https://github.com/pellared/taskflow) - Create build pipelines in Go. ## Command Line From 076ff3364c189c1205b5c4385f4c33cfa0ecfde8 Mon Sep 17 00:00:00 2001 From: Yuriy Nazarenko Date: Tue, 4 May 2021 19:36:00 +0300 Subject: [PATCH 2311/3440] Added "Data Structures" -> parapipe --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 378abe896ea..ec84f541356 100644 --- a/README.md +++ b/README.md @@ -414,6 +414,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. * [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. * [ordered-concurrently](https://github.com/tejzpr/ordered-concurrently) - Go module that processes work concurrently and returns output in a channel in the order of input. +* [parapipe](https://github.com/nazar256/parapipe) - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results * [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. * [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree. From 8a846261a4a1fe937fae87ae9be9c09fdf86897f Mon Sep 17 00:00:00 2001 From: Yuriy Nazarenko Date: Wed, 5 May 2021 07:48:06 +0300 Subject: [PATCH 2312/3440] Ended line with dot for "Data Structures" -> parapipe --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ec84f541356..25415746d05 100644 --- a/README.md +++ b/README.md @@ -414,7 +414,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. * [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. * [ordered-concurrently](https://github.com/tejzpr/ordered-concurrently) - Go module that processes work concurrently and returns output in a channel in the order of input. -* [parapipe](https://github.com/nazar256/parapipe) - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results +* [parapipe](https://github.com/nazar256/parapipe) - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results. * [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. * [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. * [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree. From ea7808613d7852f38cbe11a8d157b74d9e9021d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=87a=C4=9Fatay?= Date: Mon, 10 May 2021 21:38:27 +0300 Subject: [PATCH 2313/3440] Added marker --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 25415746d05..4038fa0bd91 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [gookit/color](https://github.com/gookit/color) - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. +* [marker](https://github.com/cyucelen/marker) - Easiest way to match and mark strings for colorful terminal outputs. * [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. * [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. * [pterm](https://github.com/pterm/pterm) - A library to beautify console output on every platform with many combinable components. From a32f65a40de3c2eb4769de24fbbdfa92dbd78c35 Mon Sep 17 00:00:00 2001 From: "J. Hart" Date: Mon, 10 May 2021 12:32:36 -0400 Subject: [PATCH 2314/3440] Added GoFlake Submitting a pull request to add GoFlake to the UUID section of the libraries. Contribution guidelines have been read and complied with. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4038fa0bd91..e558d6cb3bc 100644 --- a/README.md +++ b/README.md @@ -2140,6 +2140,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with UUIDs.* +* [goflake](https://github.com/hart87/GoFlake) - A small, scalable, & serverless unique ID generator for use in distributed systems. Inspired by Twitters Snowflake. * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. * [gouid](https://github.com/twharmon/gouid) - Generate cryptographically secure random string IDs with just one allocation. * [nanoid](https://github.com/aidarkhanov/nanoid) - A tiny and efficient Go unique string ID generator. From 0bfe7fbee2e23e78b63551714f9c2dc3902ce18d Mon Sep 17 00:00:00 2001 From: Irvan Ahmad Prasetya Date: Wed, 26 May 2021 07:46:54 +0700 Subject: [PATCH 2315/3440] Remove pyros2097/go-embed --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index e558d6cb3bc..961b5d02337 100644 --- a/README.md +++ b/README.md @@ -1564,10 +1564,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Resource Embedding -* [debme](https://github.com/leaanthony/debme) - Create an `embed.FS` from an existing `embed.FS` subdirectory. +* [debme](https://github.com/leaanthony/debme) - Create an `embed.FS` from an existing `embed.FS` subdirectory. * [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-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. * [mule](https://github.com/wlbr/mule) - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focussed on simplicity. From e8dd71f87859849593c9d75f028c2fc19665cd25 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Fri, 28 May 2021 09:11:26 -0700 Subject: [PATCH 2316/3440] Update ghorg to be listed under DevOps category --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 961b5d02337..81ab9338512 100644 --- a/README.md +++ b/README.md @@ -1309,7 +1309,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [faker](https://github.com/pioz/faker) - Random fake data and struct generator for Go. * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [gatus](https://github.com/TwinProduction/gatus) - Automated service health dashboard. -* [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, and Bitbucket. * [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool 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. @@ -2436,6 +2435,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. * [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts. * [gaia](https://github.com/gaia-pipeline/gaia) - Build powerful pipelines in any programming language. +* [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Gitea, and Bitbucket. * [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. * [gitea-github-migrator](https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator) - Migrate all your GitHub repositories, issues, milestones and labels to your Gitea instance. * [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. From 757d3edf42e4d9d95725ab382a71b2c186ae1b8b Mon Sep 17 00:00:00 2001 From: hdt3213 Date: Sat, 15 May 2021 11:20:22 +0800 Subject: [PATCH 2317/3440] add godis into database category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 81ab9338512..dbc2a3afc9f 100644 --- a/README.md +++ b/README.md @@ -457,6 +457,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. * [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. +* [godis](https://github.com/hdt3213/godis) - A Golang implemented high-performance Redis server and cluster. * [goleveldb](https://github.com/syndtr/goleveldb) - Implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in Go. * [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. * [hare](https://github.com/jameycribbs/hare) - A simple database management system that stores each table as a text file of line-delimited JSON. From 7da8a76c337aa77780af9ba986f0d2e1ffbf73a0 Mon Sep 17 00:00:00 2001 From: rainu Date: Sat, 15 May 2021 13:03:06 +0200 Subject: [PATCH 2318/3440] Add command-chain --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dbc2a3afc9f..54baef023a9 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idomatic way. * [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. * [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. +* [command-chain](https://github.com/rainu/go-command-chain) - A go library for configure and run command chains - such like pipelining in unix shells. * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. * [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync. From 2024ec58deb9dd50c32003a51b0118b0d8f974e1 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 1 Jun 2021 06:44:37 -0300 Subject: [PATCH 2319/3440] Project Layout: set unofficial highlight --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54baef023a9..995d0d5209b 100644 --- a/README.md +++ b/README.md @@ -1270,7 +1270,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ### Project Layout -*Unofficial set of patterns for structuring projects.* +_**Unofficial** set of patterns for structuring projects._ * [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. From 1890494ef10db687d33c5f5ee4b0ca809af2a0ad Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Fri, 21 May 2021 19:04:04 +0200 Subject: [PATCH 2320/3440] Add gortsplib --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 995d0d5209b..6b6b80240b0 100644 --- a/README.md +++ b/README.md @@ -2189,6 +2189,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-m3u8](https://github.com/quangngotan95/go-m3u8) - Parser and generator library for Apple m3u8 playlists. * [go-mpd](https://github.com/unki2aut/go-mpd) - Parser and generator library for MPEG-DASH manifest files. * [goav](https://github.com/giorgisio/goav) - Comprehensive Go bindings for FFmpeg. +* [gortsplib](https://github.com/aler9/gortsplib) - Pure Go RTSP server and client library. * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. * [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. * [libvlc-go](https://github.com/adrg/libvlc-go) - Go bindings for libvlc 2.X/3.X/4.X (used by the VLC media player). From 5f64541883fc0e3c08b1a855e4314d57f2f0de48 Mon Sep 17 00:00:00 2001 From: Jo Vandeginste Date: Mon, 24 May 2021 11:04:58 +0200 Subject: [PATCH 2321/3440] Add "jovandeginste/payme" QR code generator (ASCII & PNG) for SEPA payments. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6b6b80240b0..0fca162ccf9 100644 --- a/README.md +++ b/README.md @@ -800,6 +800,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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). * [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. +* [payme](https://github.com/jovandeginste/payme) - QR code generator (ASCII & PNG) for SEPA payments. * [sleet](https://github.com/BoltApp/sleet) - One unified interface for multiple Payment Service Providers (PsP) to process online payment. * [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies. * [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. From 1ae855c6172cdb6adc0fe10c21524134c0dd1c1d Mon Sep 17 00:00:00 2001 From: O'meid Date: Sun, 30 May 2021 19:32:32 +1000 Subject: [PATCH 2322/3440] Add Configuration/uConfig Add uConfig configuration management library. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0fca162ccf9..95558364354 100644 --- a/README.md +++ b/README.md @@ -341,6 +341,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. * [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). * [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library. +* [uConfig](https://github.com/omeid/uconfig) - Lightweight, zero-dependency, and extendable configuration management. * [viper](https://github.com/spf13/viper) - Go configuration with fangs. * [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). * [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). From a734e330aa3cb14269819cb74656182d380bcf7b Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Thu, 29 Apr 2021 17:29:06 +0800 Subject: [PATCH 2323/3440] add wangyoucao577/go-project-layout --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 95558364354..8210a7488dd 100644 --- a/README.md +++ b/README.md @@ -1279,6 +1279,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. * [gobase](https://github.com/wajox/gobase) - A simple skeleton for golang application with basic setup for real golang application. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. +* [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout. * [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. * [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. From 0e2d3c0cf6fcdf8c0f3352f55db9ec8a9a06d437 Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Thu, 29 Apr 2021 17:34:45 +0800 Subject: [PATCH 2324/3440] sort alphabetically --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8210a7488dd..26c789849e4 100644 --- a/README.md +++ b/README.md @@ -1279,11 +1279,11 @@ _**Unofficial** set of patterns for structuring projects._ * [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. * [gobase](https://github.com/wajox/gobase) - A simple skeleton for golang application with basic setup for real golang application. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. -* [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout. * [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. * [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. * [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. +* [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout. ### Strings From 8f70b7a4097982e1f07cc84cec88413585f3554a Mon Sep 17 00:00:00 2001 From: Oliver N Date: Tue, 1 Jun 2021 18:09:49 +0700 Subject: [PATCH 2325/3440] add ujson --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 26c789849e4..eead6a86ab3 100644 --- a/README.md +++ b/README.md @@ -1086,6 +1086,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. * [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. +* [ujson](https://github.com/olvrng/ujson) - Fast and minimal JSON parser and transformer that works on unstructured JSON. ## Logging From 2d0163bb079c48c01001ddf72bfab0d9701dd51c Mon Sep 17 00:00:00 2001 From: Rijul Gulati <67535440+grijul@users.noreply.github.com> Date: Wed, 2 Jun 2021 11:27:14 +0530 Subject: [PATCH 2326/3440] added otpgen --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eead6a86ab3..46c2bf922a2 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. +* [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes * [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. * [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. From dad8069a23940bf6175b0af38424828aec343bf9 Mon Sep 17 00:00:00 2001 From: Rijul Gulati <67535440+grijul@users.noreply.github.com> Date: Wed, 2 Jun 2021 18:51:35 +0530 Subject: [PATCH 2327/3440] Build fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 46c2bf922a2..46da338ced5 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. -* [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes +* [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes. * [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. * [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. From 2b046b6e14d83208ceea6d5467ab733971266ab9 Mon Sep 17 00:00:00 2001 From: Evan Surdam Date: Fri, 28 May 2021 22:25:47 -0700 Subject: [PATCH 2328/3440] Add go-swagger-ui --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46da338ced5..63449801e06 100644 --- a/README.md +++ b/README.md @@ -1938,6 +1938,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). * [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. * [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. +* [go-swagger-ui](https://github.com/esurdam/go-swagger-ui) - Go library containing precompiled [Swagger UI](https://swagger.io/tools/swagger-ui/) for serving swagger json. * [go-telegraph](https://gitlab.com/toby3d/telegraph) - Telegraph publishing platform API client. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-twitch](https://github.com/knspriggs/go-twitch) - Go client for interacting with the Twitch v3 API. From 6ada27e74085bcae2ed6094c5ff790444195d128 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Sun, 13 Jun 2021 12:32:35 +0530 Subject: [PATCH 2329/3440] Add clipboard (#3631) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63449801e06..615700f4bec 100644 --- a/README.md +++ b/README.md @@ -2009,6 +2009,7 @@ _**Unofficial** set of patterns for structuring projects._ * [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. * [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. * [circuitbreaker](https://github.com/rubyist/circuitbreaker) - Circuit Breakers in Go. +* [clipboard](https://github.com/golang-design/clipboard) - 📋 cross-platform clipboard package in Go. * [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. * [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. From 9f7664123d6b7ca439a49b37748cfe50573df6cc Mon Sep 17 00:00:00 2001 From: Samir Alajmovic <5246600+alajmo@users.noreply.github.com> Date: Sat, 19 Jun 2021 20:56:49 +0200 Subject: [PATCH 2330/3440] Add mani to the Utilities category (#3637) * Add mani * Update * Remove newline --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 615700f4bec..d6bc77d7380 100644 --- a/README.md +++ b/README.md @@ -2082,6 +2082,7 @@ _**Unofficial** set of patterns for structuring projects._ * [lets-go](https://github.com/aplescia-chwy/lets-go) - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities. * [limiters](https://github.com/mennanov/limiters) - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks. * [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go. +* [mani](https://github.com/alajmo/mani) - CLI tool to help you manage multiple repositories. * [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. * [mimemagic](https://github.com/zRedShift/mimemagic) - Pure Go ultra performant MIME sniffing library/utility. From b4cf7e861b784757c2bf60c75b77293618c81041 Mon Sep 17 00:00:00 2001 From: Roman Atachiants Date: Sun, 20 Jun 2021 23:34:54 +0800 Subject: [PATCH 2331/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d6bc77d7380..4ea1fbdbc47 100644 --- a/README.md +++ b/README.md @@ -451,6 +451,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. * [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore. * [Coffer](https://github.com/claygod/coffer) - Simple ACID key-value database that supports transactions. +* [column](https://github.com/kelindar/column) - High-performance, columnar, embeddable in-memory store with bitmap indexing and transactions. * [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. * [CovenantSQL](https://github.com/CovenantSQL/CovenantSQL) - CovenantSQL is a SQL database on blockchain. * [Databunker](https://github.com/paranoidguy/databunker) - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. From 6ca34eadcf2a107254a944b66e79417c6a5638b5 Mon Sep 17 00:00:00 2001 From: Pascal Dennerly Date: Sun, 16 May 2021 00:09:20 +0100 Subject: [PATCH 2332/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4ea1fbdbc47..b0aca047f17 100644 --- a/README.md +++ b/README.md @@ -2520,6 +2520,7 @@ _**Unofficial** set of patterns for structuring projects._ * [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [Guora](https://github.com/meloalright/guora) - A self-hosted Quora like web application written in Go. +* [hoofli](https://github.com/dnnrly/hoofli) - Generate PlantUML diagrams from Chrome or Firefox network inspections * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. * [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. * [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. From cf61199d1755736bcbbc8bce6cbe7c2a3499d170 Mon Sep 17 00:00:00 2001 From: Pascal Dennerly Date: Thu, 20 May 2021 19:36:38 +0100 Subject: [PATCH 2333/3440] End description. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b0aca047f17..d043abb8c4a 100644 --- a/README.md +++ b/README.md @@ -2520,7 +2520,7 @@ _**Unofficial** set of patterns for structuring projects._ * [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [Guora](https://github.com/meloalright/guora) - A self-hosted Quora like web application written in Go. -* [hoofli](https://github.com/dnnrly/hoofli) - Generate PlantUML diagrams from Chrome or Firefox network inspections +* [hoofli](https://github.com/dnnrly/hoofli) - Generate PlantUML diagrams from Chrome or Firefox network inspections. * [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. * [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. * [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. From a98cddda19117579b9b153c854a4cce27ab55797 Mon Sep 17 00:00:00 2001 From: Rijul Gulati <67535440+grijul@users.noreply.github.com> Date: Wed, 2 Jun 2021 21:52:13 +0530 Subject: [PATCH 2334/3440] Added go-andotp --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d043abb8c4a..f63ca4e978e 100644 --- a/README.md +++ b/README.md @@ -237,6 +237,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. * [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. * [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package. +* [go-andotp](https://github.com/grijul/go-andotp) - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. * [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go. * [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. From 343b1e2280801fcc8392da250c98d8e1a3f8fe9d Mon Sep 17 00:00:00 2001 From: Rijul Gulati <67535440+grijul@users.noreply.github.com> Date: Wed, 2 Jun 2021 21:54:17 +0530 Subject: [PATCH 2335/3440] Added go-andotp --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f63ca4e978e..dc05b29535d 100644 --- a/README.md +++ b/README.md @@ -237,7 +237,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. * [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. * [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package. -* [go-andotp](https://github.com/grijul/go-andotp) - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. +* [go-andotp](https://github.com/grijul/go-andotp) - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as library as well. * [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go. * [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. From 7a488af7fddd1a22cc6df61f938ee3fe66349b86 Mon Sep 17 00:00:00 2001 From: olku Date: Mon, 28 Jun 2021 12:21:19 +0200 Subject: [PATCH 2336/3440] Remove QBS Removed QBS (Query By Struct) ORM as QBS hasn't been updated for over 4 years. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index dc05b29535d..37cd740a317 100644 --- a/README.md +++ b/README.md @@ -1510,7 +1510,6 @@ _**Unofficial** set of patterns for structuring projects._ * [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. * [marlow](https://github.com/marlow/marlow) - Generated ORM from project structs for compile time safety assurances. * [pop/soda](https://github.com/gobuffalo/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. -* [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. * [rel](https://github.com/go-rel/rel) - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API. * [SQLBoiler](https://github.com/volatiletech/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. From a8c277513c2bb5e6832803c26f984be070182488 Mon Sep 17 00:00:00 2001 From: wizjin Date: Thu, 10 Jun 2021 12:26:06 +0800 Subject: [PATCH 2337/3440] Add chanify. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37cd740a317..567b894f996 100644 --- a/README.md +++ b/README.md @@ -1199,6 +1199,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. * [Bus](https://github.com/mustafaturan/bus) - Minimalist message bus implementation for internal communication. * [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. +* [Chanify](https://github.com/chanify/chanify) - A push notification server send message to your iOS devices. * [Commander](https://github.com/jeroenrinzema/commander) - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka. * [Confluent Kafka Golang Client](https://github.com/confluentinc/confluent-kafka-go) - confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform. * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. From f1bb0d63d0dad5b8c5ea4d4c28af69e7f3da3052 Mon Sep 17 00:00:00 2001 From: Roman Atachiants Date: Fri, 11 Jun 2021 16:53:08 +0800 Subject: [PATCH 2338/3440] Adding kelindar/bitmap Hi folks, I'm adding a high quality implementation of a dense bitmap/bitset which supports various logical operations, iterating over, filtering and is SIMD-enabled (AVX2) for large dense bitsets. AVX-512 contributions would be welcome, if anyone has CPU that supports these. - github.com repo: https://github.com/kelindar/bitmap - pkg.go.dev: https://pkg.go.dev/github.com/kelindar/bitmap - goreportcard.com: https://goreportcard.com/report/github.com/kelindar/bitmap - coverage service link: https://coveralls.io/github/kelindar/bitmap (**97% coverage**) **Make sure that you've checked the boxes below before you submit PR:** - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added pkg.go.dev link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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 reviewing this! --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 567b894f996..3f71cfb67a0 100644 --- a/README.md +++ b/README.md @@ -374,6 +374,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. * [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. * [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. +* [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go * [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. From c09afed5936bf631aa4f9fe05d6c702b43e636fc Mon Sep 17 00:00:00 2001 From: Wendell Sun Date: Sat, 5 Jun 2021 00:11:30 +0800 Subject: [PATCH 2339/3440] Add awesome-go-extra --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f71cfb67a0..5e136fde121 100644 --- a/README.md +++ b/README.md @@ -2727,6 +2727,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. * [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. +* [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. * [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. * [Go Blog](http://blog.golang.org) - The official Go blog. * [Go Challenge](http://golang-challenge.org/) - Learn Go by solving problems and getting feedback from Go experts. From d59a22ed1715e68f89240cb6b62bdf45615fff15 Mon Sep 17 00:00:00 2001 From: Max Chechel Date: Fri, 18 Jun 2021 16:51:25 +0300 Subject: [PATCH 2340/3440] Added hexdingest/execpool to the Goroutines category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5e136fde121..3971ab05a44 100644 --- a/README.md +++ b/README.md @@ -912,6 +912,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [concurrency-limiter](https://github.com/vivek-ng/concurrency-limiter) - Concurrency limiter with support for timeouts , dynamic priority and context cancellation of goroutines. * [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. * [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. +* [execpool](https://github.com/hexdigest/execpool) - A pool built around exec.Cmd that spins up a given number of processes in advance and attaches stdin and stdout to them when needed. Very similar to FastCGI or Apache Prefork MPM but works for any command. * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. * [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. From 5768897105246b1c55f181baad445274a0c0a373 Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Sun, 27 Jun 2021 00:01:41 +0800 Subject: [PATCH 2341/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3971ab05a44..cda2c05daea 100644 --- a/README.md +++ b/README.md @@ -1612,6 +1612,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gosl](https://github.com/cpmech/gosl) - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. * [GoStats](https://github.com/OGFris/GoStats) - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. * [graph](https://github.com/yourbasic/graph) - Library of basic graph algorithms. +* [jsonl-graph](https://github.com/nikolaydubina/jsonl-graph) - Tool to manipulate JSONL graphs with graphviz support. * [ode](https://github.com/ChristopherRabotin/ode) - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions. * [orb](https://github.com/paulmach/orb) - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support. * [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go. From 75d0cf0f5dc132506c44c73426271862dd17d887 Mon Sep 17 00:00:00 2001 From: Milad Ebrahimi Date: Wed, 30 Jun 2021 11:50:16 +0430 Subject: [PATCH 2342/3440] Add vjson library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cda2c05daea..524dbe87c5e 100644 --- a/README.md +++ b/README.md @@ -1092,6 +1092,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. * [ujson](https://github.com/olvrng/ujson) - Fast and minimal JSON parser and transformer that works on unstructured JSON. +* [vjson](https://github.com/miladibra10/vjson) - Go package for validating JSON objects with declaring a JSON schema with fluent API. ## Logging From e6744318b8a632ed697edcc36ec3f6d0847d403b Mon Sep 17 00:00:00 2001 From: Samuel Guyah Date: Fri, 2 Jul 2021 21:17:42 -0500 Subject: [PATCH 2343/3440] Elvish Programming Language --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 524dbe87c5e..7949c42d975 100644 --- a/README.md +++ b/README.md @@ -233,6 +233,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. * [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync. +* [elvish](https://github.com/elves/elvish) - An expressive programming language and a versatile interactive shell * [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. * [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. From 6d335c4e8dbabfcce25df8d534669176c4e6d39a Mon Sep 17 00:00:00 2001 From: Samuel Guyah Date: Fri, 2 Jul 2021 21:27:34 -0500 Subject: [PATCH 2344/3440] added period --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7949c42d975..e7941ea68b5 100644 --- a/README.md +++ b/README.md @@ -233,7 +233,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. * [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync. -* [elvish](https://github.com/elves/elvish) - An expressive programming language and a versatile interactive shell +* [elvish](https://github.com/elves/elvish) - An expressive programming language and a versatile interactive shell. * [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. * [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. * [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. From aa8021f3103e283bdc87b6a16387cbead4adbc09 Mon Sep 17 00:00:00 2001 From: Negasus Date: Mon, 5 Jul 2021 17:38:31 +0300 Subject: [PATCH 2345/3440] add Balerter to the DevOps section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e7941ea68b5..241df256a8e 100644 --- a/README.md +++ b/README.md @@ -2439,6 +2439,7 @@ _**Unofficial** set of patterns for structuring projects._ * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. * [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. * [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. +* [Balerter](https://github.com/balerter/balerter) - A self-hosted script-based alerting manager * [Blast](https://github.com/dave/blast) - A simple tool for API load testing and batch jobs. * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. From 7d59fa9bf998325990f968fab456e0410c4f5a01 Mon Sep 17 00:00:00 2001 From: James Mills Date: Mon, 12 Jul 2021 15:24:52 +1000 Subject: [PATCH 2346/3440] Fix the sourcecode URLs for many of my (prologic) Go libraries --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 241df256a8e..b5727c82f61 100644 --- a/README.md +++ b/README.md @@ -447,7 +447,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go. * [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. * [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. -* [Bitcask](https://github.com/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). +* [Bitcask](https://git.mills.io/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). * [buntdb](https://github.com/tidwall/buntdb) - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. * [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. * [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. From 9807e5b6ab9d475f24bf1d3fbfcc942677f6b1ac Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 15 Jul 2021 07:11:22 -0300 Subject: [PATCH 2347/3440] Update and rename PULL_REQUEST_TEMPLATE.md to PULL_REQUEST_TEMPLATE.yaml --- .github/PULL_REQUEST_TEMPLATE.md | 24 --------------- .github/PULL_REQUEST_TEMPLATE.yaml | 47 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 24 deletions(-) delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.yaml diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index a096b5bb3e0..00000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,24 +0,0 @@ -Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! - -**Please provide package links to:** - -- github.com repo: -- pkg.go.dev: -- goreportcard.com: -- coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.) - - -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 have an appropriate description with correct grammar. -- [ ] I know that this package was not listed before. -- [ ] I have added pkg.go.dev 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-standards). - -Thanks for your PR, you're awesome! :+1: diff --git a/.github/PULL_REQUEST_TEMPLATE.yaml b/.github/PULL_REQUEST_TEMPLATE.yaml new file mode 100644 index 00000000000..7d8d0ca8bb0 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.yaml @@ -0,0 +1,47 @@ +description: | + Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! + **Note**: that new categories can be added only when there are 3 packages or more. + Thanks for your PR, you're awesome! :+1: +body: + - type: input + id: repo + attributes: + label: repo or link + description: github.com, gitlab.com, etc + placeholder: ex. github.com/avelino/... + validations: + required: true + - type: input + id: pkgdev + attributes: + label: pkg.go.dev + placeholder: ex. github.com/you-username/project-name + validations: + required: false + - type: input + id: goreportcard + attributes: + label: goreportcard.com + placeholder: ex. goreportcard.com/github.com/you-username/project-name + validations: + required: false + - type: input + id: coverage + attributes: + label: coverage link + placeholder: coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.) + validations: + required: false + - type: checkboxes + attributes: + label: Make sure that you've checked the boxes below before you submit PR + description: not every repository (project) will fit into every option, but most projects should + options: + - label: I have added my package in alphabetical order. + - label: I have an appropriate description with correct grammar. + - label: I know that this package was not listed before. + - label: I have added pkg.go.dev link to the repo and to my pull request. + - label: I have added coverage service link to the repo and to my pull request. + - label: I have added goreportcard link to the repo and to my pull request. + - label: 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-standards). + required: true From 1be1b0131b7f7c6201bdb35a5302400ad22234d5 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 15 Jul 2021 07:24:36 -0300 Subject: [PATCH 2348/3440] recovery pull request template to md Signed-off-by: Avelino --- .github/PULL_REQUEST_TEMPLATE.md | 25 ++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.yaml | 47 ------------------------------ 2 files changed, 25 insertions(+), 47 deletions(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE.yaml diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000000..75816438fbd --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,25 @@ +> Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! + +**Please provide package links to:** + +- repo link (github.com, gitlab.com, etc): +- pkg.go.dev: +- goreportcard.com: +- coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.) + +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:** +_not every repository (project) will fit into every option, but most projects should_ + +- [ ] 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 pkg.go.dev 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-standards). + +Thanks for your PR, you're awesome! :+1: diff --git a/.github/PULL_REQUEST_TEMPLATE.yaml b/.github/PULL_REQUEST_TEMPLATE.yaml deleted file mode 100644 index 7d8d0ca8bb0..00000000000 --- a/.github/PULL_REQUEST_TEMPLATE.yaml +++ /dev/null @@ -1,47 +0,0 @@ -description: | - Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! - **Note**: that new categories can be added only when there are 3 packages or more. - Thanks for your PR, you're awesome! :+1: -body: - - type: input - id: repo - attributes: - label: repo or link - description: github.com, gitlab.com, etc - placeholder: ex. github.com/avelino/... - validations: - required: true - - type: input - id: pkgdev - attributes: - label: pkg.go.dev - placeholder: ex. github.com/you-username/project-name - validations: - required: false - - type: input - id: goreportcard - attributes: - label: goreportcard.com - placeholder: ex. goreportcard.com/github.com/you-username/project-name - validations: - required: false - - type: input - id: coverage - attributes: - label: coverage link - placeholder: coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.) - validations: - required: false - - type: checkboxes - attributes: - label: Make sure that you've checked the boxes below before you submit PR - description: not every repository (project) will fit into every option, but most projects should - options: - - label: I have added my package in alphabetical order. - - label: I have an appropriate description with correct grammar. - - label: I know that this package was not listed before. - - label: I have added pkg.go.dev link to the repo and to my pull request. - - label: I have added coverage service link to the repo and to my pull request. - - label: I have added goreportcard link to the repo and to my pull request. - - label: 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-standards). - required: true From 364b1bcddd590761f833ac22e4fa61af4c57f961 Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Tue, 22 Jun 2021 00:28:10 +0100 Subject: [PATCH 2349/3440] Add zenity --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b5727c82f61..04efbf4c0f5 100644 --- a/README.md +++ b/README.md @@ -975,6 +975,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. +* [zenity](https://github.com/ncruces/zenity) - Cross-platform Go library and CLI to create simple dialogs that interact graphically with the user. ## Hardware From 57853e15319f306cac3639b17550fb8777b63473 Mon Sep 17 00:00:00 2001 From: Owen Young <62473795+theowenyoung@users.noreply.github.com> Date: Sat, 3 Jul 2021 13:54:03 +0800 Subject: [PATCH 2350/3440] Add Track Awesome List --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 04efbf4c0f5..5c08a14c3fe 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) +[![Track Awesome List](https://www.trackawesomelist.com/badge.svg)](https://www.trackawesomelist.com/avelino/awesome-go/) awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt From 161a9cf863d0bb687bad86746399dec615bbadc4 Mon Sep 17 00:00:00 2001 From: Ed Freyfogle Date: Tue, 6 Jul 2021 16:22:56 +0200 Subject: [PATCH 2351/3440] Update OpenCage URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c08a14c3fe..60f63614b2c 100644 --- a/README.md +++ b/README.md @@ -1932,7 +1932,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. -* [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](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](http://geocoder.opencagedata.com/api.html), [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. +* [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](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](https://opencagedata.com/api), [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. * [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-aws-news](https://github.com/circa10a/go-aws-news) - Go application and library to fetch what's new from AWS. From 7732a3ae1b7be186b03ef403a35996f6c9358ee5 Mon Sep 17 00:00:00 2001 From: Peter Stace Date: Wed, 14 Jul 2021 05:33:52 +1000 Subject: [PATCH 2352/3440] Add simplefeatures --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 60f63614b2c..bbe8d32f1c6 100644 --- a/README.md +++ b/README.md @@ -889,6 +889,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. * [S2 geojson](https://github.com/pantrif/s2-geojson) - Convert geojson to s2 cells & demonstrating some S2 geometry features on map. * [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. +* [simplefeatures](https://github.com/peterstace/simplefeatures) - simplesfeatures is a 2D geometry library that provides Go types that model geometries, as well as algorithms that operate on them. * [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. * [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM). From 164db5c04c968a7ec7faad15eb7eb1ecfaf33089 Mon Sep 17 00:00:00 2001 From: Marko Kungla Date: Sat, 17 Jul 2021 19:13:22 +0300 Subject: [PATCH 2353/3440] Add bexp - Brace Expansion library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bbe8d32f1c6..642b306e901 100644 --- a/README.md +++ b/README.md @@ -1301,6 +1301,7 @@ _**Unofficial** set of patterns for structuring projects._ *Libraries for working with strings.* +* [bexp](https://github.com/mkungla/bexp) - Go implementation of Brace Expansion mechanism to generate arbitrary strings. * [go-formatter](https://gitlab.com/tymonx/go-formatter) - Implements **replacement fields** surrounded by curly braces `{}` format strings. * [gobeam/Stringy](https://github.com/gobeam/Stringy) - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. * [strutil](https://github.com/ozgio/strutil) - String utilities. From f1aa93136762ad3e5fc936004d00fef7e66ac3cb Mon Sep 17 00:00:00 2001 From: Shubham Sinha Date: Wed, 21 Jul 2021 12:16:04 +0530 Subject: [PATCH 2354/3440] Adding Go-Actuator --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 642b306e901..3363a95f844 100644 --- a/README.md +++ b/README.md @@ -2045,6 +2045,7 @@ _**Unofficial** set of patterns for structuring projects._ * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. * [ghokin](https://github.com/antham/ghokin) - Parallelized formatter with no external dependencies for gherkin (cucumber, behat...). * [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git. +* [go-actuator](https://github.com/sinhashubham95/go-actuator) - Production ready features for Go based web frameworks. * [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-bsdiff](https://github.com/gabstv/go-bsdiff) - Pure Go bsdiff and bspatch libraries and CLI tools. From 47cc02b575585fbcee87d4671edf40f3b3beed90 Mon Sep 17 00:00:00 2001 From: Marvin Wendt Date: Wed, 21 Jul 2021 16:26:43 +0200 Subject: [PATCH 2355/3440] add testza --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3363a95f844..0e50ebddf78 100644 --- a/README.md +++ b/README.md @@ -1806,6 +1806,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Testify](https://github.com/stretchr/testify) - Sacred extension to the standard go testing package. * [testmd](https://godoc.org/github.com/tvastar/test/cmd/testmd) - Convert markdown snippets into testable go code. * [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. + * [testza](https://github.com/MarvinJWendt/testza) - Full-featured test framework with nice colorized output. * [trial](https://github.com/jgroeneveld/trial) - Quick and easy extendable assertions without introducing much boilerplate. * [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. * [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler. From 57a98300ba1061841780471cd20421b364270836 Mon Sep 17 00:00:00 2001 From: Raphael Santo Domingo Date: Wed, 21 Jul 2021 22:56:26 -0500 Subject: [PATCH 2356/3440] Add ach --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0e50ebddf78..5587559cadf 100644 --- a/README.md +++ b/README.md @@ -796,6 +796,7 @@ 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. +* [ach](https://github.com/moov-io/ach) - A reader, writer, and valdiator for Automated Clearing House (ACH) files. * [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. * [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. * [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. From f01f105a66e1ccbe83cb2cccad726a4b789fb4df Mon Sep 17 00:00:00 2001 From: Daniel Milde Date: Thu, 22 Jul 2021 18:52:27 +0200 Subject: [PATCH 2357/3440] Add gdu **Please provide package links to:** - repo link (github.com, gitlab.com, etc): https://github.com/dundee/gdu - pkg.go.dev: https://pkg.go.dev/github.com/dundee/gdu - goreportcard.com: https://goreportcard.com/report/github.com/dundee/gdu - coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.): https://coveralls.io/github/dundee/gdu?branch=master 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:** _not every repository (project) will fit into every option, but most projects should_ - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added pkg.go.dev link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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-standards). Thanks for your PR, you're awesome! :+1: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5587559cadf..931461c4c4d 100644 --- a/README.md +++ b/README.md @@ -775,6 +775,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5 and SHA256, for large files. * [copy](https://github.com/otiai10/copy) - Copy directory recursively. * [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). +* [gdu](https://github.com/dundee/gdu) - Disk usage analyzer with console interface * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. * [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). From f28f528c00dc7a2f79c8a73bc617c1d45dfcdc30 Mon Sep 17 00:00:00 2001 From: whiteShtef <61300470+whiteShtef@users.noreply.github.com> Date: Wed, 28 Jul 2021 22:17:55 +0200 Subject: [PATCH 2358/3440] Remove whiteshtef/clockwork (#3682) * remove clockwork --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 931461c4c4d..1d415a1b477 100644 --- a/README.md +++ b/README.md @@ -1054,7 +1054,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for scheduling jobs.* * [clockwerk](http://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. -* [clockwork](https://github.com/whiteShtef/clockwork) - Simple and intuitive job scheduling library in Go. * [cronticker](https://github.com/krayzpipes/cronticker) - A ticker implementation to support cron schedules. * [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. From eff992509dfb533c01bdd33e0cbd39221ed4a311 Mon Sep 17 00:00:00 2001 From: Alexander Liesenfeld Date: Thu, 29 Jul 2021 22:14:16 +0200 Subject: [PATCH 2359/3440] Added github.com/alexliesenfeld/health. (#3683) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1d415a1b477..02d7b88af34 100644 --- a/README.md +++ b/README.md @@ -1339,6 +1339,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. * [gotoprom](https://github.com/cabify/gotoprom) - Type-safe metrics builder wrapper library for the official Prometheus client. * [gountries](https://github.com/pariz/gountries) - Package that exposes country and subdivision data. +* [health](https://github.com/alexliesenfeld/health) - A simple and flexible health check library for Go. * [health](https://github.com/dimiro1/health) - Easy to use, extensible health check library. * [healthcheck](https://github.com/etherlabsio/healthcheck) - An opinionated and concurrent health-check HTTP handler for RESTful services. * [hostutils](https://github.com/Wing924/hostutils) - A golang library for packing and unpacking FQDNs list. From 968cd2ce429fac65230c9767a0a86be040ca1785 Mon Sep 17 00:00:00 2001 From: gouguoyin <245629560@qq.com> Date: Sun, 1 Aug 2021 15:09:02 +0800 Subject: [PATCH 2360/3440] Add carbon (#3670) > Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! **Please provide package links to:** - repo link (github.com, gitlab.com, etc):https://github.com/golang-module/carbon - pkg.go.dev:https://pkg.go.dev/github.com/golang-module/carbon - goreportcard.com:https://goreportcard.com/report/github.com/golang-module/carbon - coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.):https://app.codecov.io/gh/golang-module/carbon 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:** _not every repository (project) will fit into every option, but most projects should_ - [x] I have added my package in alphabetical order. - [x] I have an appropriate description with correct grammar. - [x] I know that this package was not listed before. - [x] I have added pkg.go.dev link to the repo and to my pull request. - [x] I have added coverage service link to the repo and to my pull request. - [x] I have added goreportcard link to the repo and to my pull request. - [x] 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-standards). Thanks for your PR, you're awesome! :+1: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 02d7b88af34..e3a9dc7eca8 100644 --- a/README.md +++ b/README.md @@ -621,6 +621,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for working with dates and times.* +* [carbon](https://github.com/golang-module/carbon) - A simple, semantic and developer-friendly golang package for datetime. * [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library. * [cronrange](https://github.com/1set/cronrange) - Parses Cron-style time range expressions, checks if the given time is within any ranges. * [date](https://github.com/rickb777/date) - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day. From 81317b6ede165f2620bb3168b39a7045d92ba16e Mon Sep 17 00:00:00 2001 From: xuri Date: Tue, 3 Aug 2021 10:08:21 +0800 Subject: [PATCH 2361/3440] Update excelize repo URL (#3690) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e3a9dc7eca8..6e4772fe2a4 100644 --- a/README.md +++ b/README.md @@ -1259,7 +1259,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for working with Microsoft Excel.* -* [excelize](https://github.com/360EntSecGroup-Skylar/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. +* [excelize](https://github.com/xuri/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. * [go-excel](https://github.com/szyhf/go-excel) - A simple and light reader to read a relate-db-like excel as a table. * [goxlsxwriter](https://github.com/fterrag/goxlsxwriter) - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files. * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. From 5ea88ba202d546d539ace2077da7ff9d7542a44b Mon Sep 17 00:00:00 2001 From: yedf2 <43027375+yedf2@users.noreply.github.com> Date: Wed, 4 Aug 2021 12:40:14 +0800 Subject: [PATCH 2362/3440] add dtm (#3662) * add dtm * dtm changes made Co-authored-by: yedongfu --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e4772fe2a4..a644a22764e 100644 --- a/README.md +++ b/README.md @@ -230,7 +230,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idomatic way. * [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. * [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. -* [command-chain](https://github.com/rainu/go-command-chain) - A go library for configure and run command chains - such like pipelining in unix shells. +* [command-chain](https://github.com/rainu/go-command-chain) - A go library for configure and run command chains - such like pipelining in unix shells. * [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. * [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. * [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync. @@ -461,6 +461,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Databunker](https://github.com/paranoidguy/databunker) - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. * [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. +* [dtm](https://github.com/yedf/dtm) - A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages. * [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. * [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. * [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. From b290fe4a02bf2f606140139d393832e3373d5e8b Mon Sep 17 00:00:00 2001 From: Mark Kopenga Date: Wed, 4 Aug 2021 06:42:47 +0200 Subject: [PATCH 2363/3440] Add muesli/termenv (#3685) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a644a22764e..2dabf5a6dbe 100644 --- a/README.md +++ b/README.md @@ -292,6 +292,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). +* [termenv](https://github.com/muesli/termenv) - Advanced ANSI style & color support for your terminal applications * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). * [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. * [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. From 86fbfe71924b79de87ef35f3ff763267f6c3784c Mon Sep 17 00:00:00 2001 From: benjaminwu Date: Sat, 7 Aug 2021 19:21:26 +0800 Subject: [PATCH 2364/3440] Add Easegress (#3634) Co-authored-by: benjaminwu --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2dabf5a6dbe..38c17dffab6 100644 --- a/README.md +++ b/README.md @@ -1703,6 +1703,7 @@ _**Unofficial** set of patterns for structuring projects._ * [devd](https://github.com/cortesi/devd) - Local webserver for developers. * [discovery](https://github.com/Bilibili/discovery) - A registry for resilient mid-tier load balancing and failover. * [dudeldu](https://github.com/krotik/dudeldu) - A simple SHOUTcast server. +* [Easegress](https://github.com/megaease/easegress) - A cloud native high availability/performance traffic orchestration system with observability and extensibility. * [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. From a2033196ee3b767b726596d9d3685cbc894686ab Mon Sep 17 00:00:00 2001 From: Nhat Date: Mon, 9 Aug 2021 09:59:10 +0700 Subject: [PATCH 2365/3440] add sunary/sqlize (#3697) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 38c17dffab6..15c66a7015b 100644 --- a/README.md +++ b/README.md @@ -511,6 +511,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. * [soda](https://github.com/gobuffalo/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. +* [sqlize](https://github.com/sunary/sqlize) - Database migration generator. Allows generate sql migration from model and existing sql by differ them. *Database tools.* From 0c9736bfb8af8b27c09b5a43c3db2ef6b2d91f1f Mon Sep 17 00:00:00 2001 From: Manuel Wieser Date: Wed, 12 May 2021 17:59:07 +0200 Subject: [PATCH 2366/3440] Add go-starter --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 15c66a7015b..ce65009310d 100644 --- a/README.md +++ b/README.md @@ -1293,6 +1293,7 @@ _**Unofficial** set of patterns for structuring projects._ * [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. +* [go-starter](https://github.com/allaboutapps/go-starter) - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers. * [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. * [gobase](https://github.com/wajox/gobase) - A simple skeleton for golang application with basic setup for real golang application. * [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. From 35f98eef329672ce08edb2359c47fb433c19d580 Mon Sep 17 00:00:00 2001 From: Felix <7132415+TerraTalpi@users.noreply.github.com> Date: Tue, 10 Aug 2021 09:40:49 +0200 Subject: [PATCH 2367/3440] correct beego orm link (#3699) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ce65009310d..bcd66c6142f 100644 --- a/README.md +++ b/README.md @@ -1511,7 +1511,7 @@ _**Unofficial** set of patterns for structuring projects._ *Libraries that implement Object-Relational Mapping or datamapping techniques.* -* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - Powerful orm framework for go. Support: pq/mysql/sqlite3. +* [beego orm](https://github.com/beego/beego) - Powerful orm framework for go. Support: pq/mysql/sqlite3. * [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. * [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. * [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. From ca70fb5fb1d34699aea735eef38678df788d6ae8 Mon Sep 17 00:00:00 2001 From: Mario Date: Wed, 11 Aug 2021 12:38:38 +0200 Subject: [PATCH 2368/3440] Add bafi to list (#3677) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bcd66c6142f..f0fcd715694 100644 --- a/README.md +++ b/README.md @@ -1857,6 +1857,7 @@ _**Unofficial** set of patterns for structuring projects._ * Specific Formats * [align](https://github.com/Guitarbum722/align) - A general purpose application that aligns text. * [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. + * [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates * [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. From 4029bf3f4dbb2201ee9e1b250902dca8ba35096a Mon Sep 17 00:00:00 2001 From: Carl Johnson Date: Mon, 26 Jul 2021 14:44:06 -0400 Subject: [PATCH 2369/3440] README: Add requests: HTTP requests for Gophers --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0fcd715694..be60f34c25e 100644 --- a/README.md +++ b/README.md @@ -1492,6 +1492,7 @@ _**Unofficial** set of patterns for structuring projects._ * [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [request](https://github.com/monaco-io/request) - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency. +* [requests](https://github.com/carlmjohnson/requests) - HTTP requests for Gophers. It uses context.Context and doesn't hide the underlying net/http.Client, so it is compatible with standard Go APIs. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. * [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. From ec32d6e65e28d91e06f6db4da84fabf567e5eba9 Mon Sep 17 00:00:00 2001 From: Carl Johnson Date: Wed, 11 Aug 2021 17:13:48 -0400 Subject: [PATCH 2370/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be60f34c25e..bab39e511aa 100644 --- a/README.md +++ b/README.md @@ -1492,7 +1492,7 @@ _**Unofficial** set of patterns for structuring projects._ * [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [request](https://github.com/monaco-io/request) - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency. -* [requests](https://github.com/carlmjohnson/requests) - HTTP requests for Gophers. It uses context.Context and doesn't hide the underlying net/http.Client, so it is compatible with standard Go APIs. +* [requests](https://github.com/carlmjohnson/requests) - HTTP requests for Gophers. Uses context.Context and doesn't hide the underlying net/http.Client, making it compatible with standard Go APIs. Also includes testing tools. * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. * [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. From f5793d6d34337f2b8669bc131848c488999255e1 Mon Sep 17 00:00:00 2001 From: Luca Sepe Date: Tue, 27 Jul 2021 08:53:45 +0200 Subject: [PATCH 2371/3440] add tbd - a really simple way to create text templates (with builtin Git repo metadata exposed) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bab39e511aa..de459af8b5a 100644 --- a/README.md +++ b/README.md @@ -1760,6 +1760,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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/). * [sprig](https://github.com/Masterminds/sprig) - Useful template functions for Go templates. +* [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata * [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go. ## Testing From 41c0098194b3156ea5ad7b4b7d5b9cbce7b6d045 Mon Sep 17 00:00:00 2001 From: Shubham Sinha Date: Wed, 28 Jul 2021 12:10:19 +0530 Subject: [PATCH 2372/3440] Adding Moxy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index de459af8b5a..6a8b37658f9 100644 --- a/README.md +++ b/README.md @@ -1716,6 +1716,7 @@ _**Unofficial** set of patterns for structuring projects._ * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. * [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. +* [Moxy](https://github.com/sinhashubham95/moxy) - Moxy is a simple mocker and proxy application server, you can create mock endpoints as well as proxy requests in case no mock exists for the endpoint. * [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. * [nsq](http://nsq.io/) - A realtime distributed messaging platform. * [protoxy](https://github.com/camgraff/protoxy) - A proxy server that converts JSON request bodies to Protocol Buffers. From 3cb32a62486ec40d3e1afd143c49ae6328bffed3 Mon Sep 17 00:00:00 2001 From: Janos Pasztor <86970079+janosdebugs@users.noreply.github.com> Date: Wed, 28 Jul 2021 11:03:55 +0000 Subject: [PATCH 2373/3440] Added gotestfmt Added gotestfmt, a tool to post-process go test output and make it more readable in CI systems. https://github.com/haveyoudebuggedit/gotestfmt --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6a8b37658f9..d181ce703e2 100644 --- a/README.md +++ b/README.md @@ -359,6 +359,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. * [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. * [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. +* [gotestfmt](https://github.com/haveyoudebuggedit/gotestfmt) - go test output for humans. * [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. From 0c517bf376c629db27d0bc217dfa058bc17a9419 Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Sat, 31 Jul 2021 19:05:44 -0700 Subject: [PATCH 2374/3440] Add github.com/bobg/merkle --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d181ce703e2..d684cf5b139 100644 --- a/README.md +++ b/README.md @@ -419,6 +419,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [iter](https://github.com/disksing/iter) - Go implementation of C++ STL iterators and algorithms. * [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. +* [merkle](https://github.com/bobg/merkle) - Space-efficient computation of Merkle root hashes and inclusion proofs. * [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. * [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. From 7b98f5f4f57ab4758abdd40713468b8c730aad7f Mon Sep 17 00:00:00 2001 From: andy2046 Date: Mon, 2 Aug 2021 11:37:46 +0800 Subject: [PATCH 2375/3440] feat: add adaptive accrual failure detector --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d684cf5b139..f85a0b9cd55 100644 --- a/README.md +++ b/README.md @@ -664,6 +664,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation. * [dynatomic](https://github.com/tylfin/dynatomic) - A library for using DynamoDB as an atomic counter. * [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. +* [failured](https://github.com/andy2046/failured) - adaptive accrual failure detector for distributed systems. * [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package. * [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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. From 4ae5ea3c84553cffd7de64f1812e0f586b1c7638 Mon Sep 17 00:00:00 2001 From: Marco Ferragina Date: Mon, 2 Aug 2021 16:09:04 +0200 Subject: [PATCH 2376/3440] Add github.com/ferama/rospo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f85a0b9cd55..1b87c9f344a 100644 --- a/README.md +++ b/README.md @@ -2148,6 +2148,7 @@ _**Unofficial** set of patterns for structuring projects._ * [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. +* [rospo](https://github.com/ferama/rospo) - Simple and reliable ssh tunnels with embedded ssh server in Golang * [scan](https://github.com/blockloop/scan) - Scan golang `sql.Rows` directly to structs, slices, or primitive types. * [scany](https://github.com/georgysavva/scany) - Library for scanning data from a database into Go structs and more. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. From 0a8d73003cc00a8ec5349f6a6188de6775b56107 Mon Sep 17 00:00:00 2001 From: Jonathan Chun Date: Tue, 3 Aug 2021 16:36:47 -0400 Subject: [PATCH 2377/3440] Add github.com/jonchun/pathtype --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1b87c9f344a..2abc3413302 100644 --- a/README.md +++ b/README.md @@ -792,6 +792,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. * [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. * [parquet](https://github.com/parsyl/parquet) - Read and write [parquet](https://parquet.apache.org) files. +* [pathtype](https://github.com/jonchun/pathtype) - Treat paths as their own type instead of using strings. * [pdfcpu](https://github.com/pdfcpu/pdfcpu) - PDF processor. * [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. * [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. From 4611f94a31a07653575b0b591f9bc93202d06778 Mon Sep 17 00:00:00 2001 From: Chris Cross Date: Wed, 4 Aug 2021 19:19:14 +0100 Subject: [PATCH 2378/3440] Add github.com/chriscross0/go-restcountries --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2abc3413302..5e7dcd4c793 100644 --- a/README.md +++ b/README.md @@ -1964,6 +1964,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-myanimelist](https://github.com/nstratos/go-myanimelist) - Go client library for accessing the [MyAnimeList API](https://myanimelist.net/apiconfig/references/api/v2). * [go-openproject](https://github.com/manuelbcd/go-openproject) - Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API. * [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). +* [go-restcountries](https://github.com/chriscross0/go-restcountries) - Go library for the [REST Countries API](https://restcountries.eu/). * [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. * [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. * [go-swagger-ui](https://github.com/esurdam/go-swagger-ui) - Go library containing precompiled [Swagger UI](https://swagger.io/tools/swagger-ui/) for serving swagger json. From 1fd70cc948af860a0c4e2c79178003dc182d81a3 Mon Sep 17 00:00:00 2001 From: "Timofey.Kovalev" Date: Thu, 5 Aug 2021 14:57:33 +0300 Subject: [PATCH 2379/3440] add omg.jsonparser --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5e7dcd4c793..f2f4b193122 100644 --- a/README.md +++ b/README.md @@ -1104,6 +1104,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. * [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. +* [omg.jsonparser](https://github.com/dedalqq/omg.jsonparser) - Simple JSON parser with validation by condition via golang struct fields tags. * [ujson](https://github.com/olvrng/ujson) - Fast and minimal JSON parser and transformer that works on unstructured JSON. * [vjson](https://github.com/miladibra10/vjson) - Go package for validating JSON objects with declaring a JSON schema with fluent API. From dc0569c91b0743bf8956549afac6b64c90c2175b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20N=C3=BCtzi?= Date: Mon, 14 Jun 2021 21:57:27 +0200 Subject: [PATCH 2380/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f2f4b193122..62c07a4d841 100644 --- a/README.md +++ b/README.md @@ -2214,6 +2214,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. +* [githooks](https://github.com/gabyx/githooks) - Per-repo and shared Git hooks with version control and auto update. * [go-git](https://github.com/go-git/go-git) - highly extensible Git implementation in pure Go. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hercules](https://github.com/src-d/hercules) - gaining advanced insights from Git repository history. From 1d14133a45af80f9b1a388948822588ba4e7afbf Mon Sep 17 00:00:00 2001 From: valord577 <30427460+valord577@users.noreply.github.com> Date: Thu, 12 Aug 2021 11:34:58 +0800 Subject: [PATCH 2381/3440] add customizable HTTP client library - httpc --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 62c07a4d841..30f227b4c3a 100644 --- a/README.md +++ b/README.md @@ -1494,6 +1494,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. * [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. * [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. +* [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. * [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. * [request](https://github.com/monaco-io/request) - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency. From ec7a4deb55d6ea6782aefb3f7ca8cad043bf6994 Mon Sep 17 00:00:00 2001 From: gouguoyin <245629560@qq.com> Date: Mon, 23 Aug 2021 21:02:06 +0800 Subject: [PATCH 2382/3440] Add dongle (#3702) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 30f227b4c3a..d96a7a23c37 100644 --- a/README.md +++ b/README.md @@ -1657,6 +1657,7 @@ _**Unofficial** set of patterns for structuring projects._ * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. * [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. * [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. +* [dongle](https://github.com/golang-module/dongle) - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption. * [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. * [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. * [go-password-validator](https://github.com/lane-c-wagner/go-password-validator) - Password validator based on raw cryptographic entropy values. From 455a91b2a24208f3bd00fa2b4ac1170f5a65caba Mon Sep 17 00:00:00 2001 From: Amangeldy Kadyl Date: Mon, 23 Aug 2021 19:04:33 +0600 Subject: [PATCH 2383/3440] add go-webp library (#3710) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d96a7a23c37..fb4c7eb35cd 100644 --- a/README.md +++ b/README.md @@ -1015,6 +1015,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. * [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. * [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. +* [go-webp](https://github.com/kolesa-team/go-webp) - Library for encode and decode webp pictures, using libwebp. * [gocv](https://github.com/hybridgroup/gocv) - Go package for computer vision using OpenCV 3.3+. * [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. * [goimghdr](https://github.com/corona10/goimghdr) - The imghdr module determines the type of image contained in a file for Go. From dc66d831218ffbc33f071ee370999dec4a7c0e49 Mon Sep 17 00:00:00 2001 From: Roman Sharkov Date: Sat, 26 Jun 2021 21:00:34 +0200 Subject: [PATCH 2384/3440] Add sched --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb4c7eb35cd..ea1ee6c5427 100644 --- a/README.md +++ b/README.md @@ -1071,6 +1071,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. * [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling. +* [sched](https://github.com/romshark/sched) - A job scheduler with the ability to fast-forward time. * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [tasks](https://github.com/madflojo/tasks) - An easy to use in-process scheduler for recurring tasks in Go. From 29ede596b4c073852098c1b4230f6721b193ffc0 Mon Sep 17 00:00:00 2001 From: Nikita Titov Date: Wed, 4 Aug 2021 16:26:18 +0300 Subject: [PATCH 2385/3440] Add m2cgen for transpiling ML models into Go code --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ea1ee6c5427..021d7774de4 100644 --- a/README.md +++ b/README.md @@ -1196,6 +1196,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. * [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. +* [m2cgen](https://github.com/BayesWitnesses/m2cgen) - A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies. * [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. * [ocrserver](https://github.com/otiai10/ocrserver) - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. From dada92cc9a115d318e3306780707900277609d22 Mon Sep 17 00:00:00 2001 From: Nikita Titov Date: Fri, 13 Aug 2021 16:49:02 +0300 Subject: [PATCH 2386/3440] address review comment --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 021d7774de4..458bedb2832 100644 --- a/README.md +++ b/README.md @@ -1196,7 +1196,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. * [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. -* [m2cgen](https://github.com/BayesWitnesses/m2cgen) - A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies. +* [m2cgen](https://github.com/BayesWitnesses/m2cgen) - A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies, written in Python with Go language support. * [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. * [ocrserver](https://github.com/otiai10/ocrserver) - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. From 4368374ca6b3b42e15f716539f478f281953372b Mon Sep 17 00:00:00 2001 From: jonoton <65074561+jonoton@users.noreply.github.com> Date: Mon, 9 Aug 2021 12:27:33 -0400 Subject: [PATCH 2387/3440] Add Scout --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 458bedb2832..88d7ebddeb5 100644 --- a/README.md +++ b/README.md @@ -1035,6 +1035,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pt](https://github.com/fogleman/pt) - Path tracing engine written in Go. * [resize](https://github.com/nfnt/resize) - Image resizing for Go with common interpolation methods. * [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. +* [scout](https://github.com/jonoton/scout) - Scout is a standalone open source software solution for DIY video security. * [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. * [steganography](https://github.com/auyer/steganography) - Pure Go Library for LSB steganography. * [stegify](https://github.com/DimitarPetrov/stegify) - Go tool for LSB steganography, capable of hiding any file within an image. From 907becc0e62f56b1ee1436970b09925cb802f63e Mon Sep 17 00:00:00 2001 From: Aurelie Vache Date: Sat, 14 Aug 2021 14:31:41 +0200 Subject: [PATCH 2388/3440] feat: add gophers artwork and learning go by example tutorial --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 88d7ebddeb5..20bad5fd7d4 100644 --- a/README.md +++ b/README.md @@ -2670,6 +2670,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gophers](https://github.com/egonelbre/gophers) - Free gophers. * [gophers](https://github.com/rogeralsing/gophers) - random gopher graphics. * [gophers](https://github.com/sillecelik/go-gopher) - Gopher amigurumi toy pattern. +* [gophers](https://github.com/scraly/gophers) - Gophers by Aurélie Vache. ## Meetups @@ -2834,3 +2835,4 @@ _**Unofficial** set of patterns for structuring projects._ * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. +* [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example From 4ea55a44fba14b8a6a3b2a85f50f75199a4c3105 Mon Sep 17 00:00:00 2001 From: Ani Channarasappa Date: Thu, 4 Feb 2021 22:14:37 -0500 Subject: [PATCH 2389/3440] Added ticker to Financial --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20bad5fd7d4..f941bb1ba3c 100644 --- a/README.md +++ b/README.md @@ -820,6 +820,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [payme](https://github.com/jovandeginste/payme) - QR code generator (ASCII & PNG) for SEPA payments. * [sleet](https://github.com/BoltApp/sleet) - One unified interface for multiple Payment Service Providers (PsP) to process online payment. * [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies. +* [ticker](https://github.com/achannarasappa/ticker) - Terminal stock watcher and stock position tracker. * [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. From 1610c834e64fe32e383621554c19c818d80fa0d9 Mon Sep 17 00:00:00 2001 From: Peter Ohler Date: Sat, 14 Aug 2021 18:44:18 -0400 Subject: [PATCH 2390/3440] Add OjG --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f941bb1ba3c..593fe26a67a 100644 --- a/README.md +++ b/README.md @@ -1108,6 +1108,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. * [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. * [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. +* [OjG](https://github.com/ohler55/ojg) - Optimized JSON for Go is a high performance parser with a variety of additional JSON tools including JSONPath. * [omg.jsonparser](https://github.com/dedalqq/omg.jsonparser) - Simple JSON parser with validation by condition via golang struct fields tags. * [ujson](https://github.com/olvrng/ujson) - Fast and minimal JSON parser and transformer that works on unstructured JSON. * [vjson](https://github.com/miladibra10/vjson) - Go package for validating JSON objects with declaring a JSON schema with fluent API. @@ -1829,7 +1830,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Testify](https://github.com/stretchr/testify) - Sacred extension to the standard go testing package. * [testmd](https://godoc.org/github.com/tvastar/test/cmd/testmd) - Convert markdown snippets into testable go code. * [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. - * [testza](https://github.com/MarvinJWendt/testza) - Full-featured test framework with nice colorized output. + * [testza](https://github.com/MarvinJWendt/testza) - Full-featured test framework with nice colorized output. * [trial](https://github.com/jgroeneveld/trial) - Quick and easy extendable assertions without introducing much boilerplate. * [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. * [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler. From 25dbd95e20370f64b17e614d659f113f83e43b62 Mon Sep 17 00:00:00 2001 From: DarthPestilane Date: Wed, 18 Aug 2021 17:33:20 +0800 Subject: [PATCH 2391/3440] add easytcp --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 593fe26a67a..cc57a64d74c 100644 --- a/README.md +++ b/README.md @@ -1435,6 +1435,7 @@ _**Unofficial** set of patterns for structuring projects._ * [cidranger](https://github.com/yl2chen/cidranger) - Fast IP to CIDR lookup for Go. * [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. +* [easytcp](https://github.com/DarthPestilane/easytcp) - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. * [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. From b4ec19d009cc95a623d21b49a520d76ee8a5f972 Mon Sep 17 00:00:00 2001 From: GOSAMPLES <78894763+gosamplesdev@users.noreply.github.com> Date: Fri, 3 Sep 2021 08:51:56 +0200 Subject: [PATCH 2392/3440] Add gosamples.dev (#3704) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cc57a64d74c..d76889292d7 100644 --- a/README.md +++ b/README.md @@ -2826,6 +2826,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. * [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. +* [Gosamples](https://gosamples.dev/) - Collection of code snippets that let you solve everyday code problems. * [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. * [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM. * [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. From 7bcc10dd00d424fc6479f67f37217b2a1d392dc1 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 6 Sep 2021 12:52:55 -0300 Subject: [PATCH 2393/3440] remove freenode (irc/chat) link on contributing guide --- CONTRIBUTING.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4847f08348b..6bd5377c488 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,8 +1,5 @@ This resource was made by the Go community and wouldn't be possible without you! We appreciate and recognize [all contributors](https://github.com/avelino/awesome-go/graphs/contributors). -Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freenode.net/?channels=awesome-go) - - # Contribution Guidelines > Please be aware that we want to accept your contribution, but we have **some rules to keep the minimum quality** of the packages listed here. All reviews are **not personal feedback**, even if you are a _developer reviewing your contribution_. **Sorry if we can't meet your expectations, we do our best**. From c4f0e5ec0d460908cbeec239515cdb9b0a73089b Mon Sep 17 00:00:00 2001 From: Barbariansyah Date: Mon, 6 Sep 2021 20:46:15 +0700 Subject: [PATCH 2394/3440] chore: Replace Link for 'Building Web Apps With Go' and 'Build Web Application with Golang' --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d76889292d7..35b9a63af90 100644 --- a/README.md +++ b/README.md @@ -2642,8 +2642,8 @@ _**Unofficial** set of patterns for structuring projects._ * [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) * [An Introduction to Programming in Go](http://www.golang-book.com/) -* [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) +* [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) +* [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) * [For the Love of Go](https://bitfieldconsulting.com/books) - A series of introductory books for Go beginners. * [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. * [Go Bootcamp](http://golangbootcamp.com) From db0d70defd6aa082417742cd20460711c9c3966a Mon Sep 17 00:00:00 2001 From: Rajashekar <35585996+Rajashekar-P@users.noreply.github.com> Date: Fri, 13 Aug 2021 09:07:51 +0530 Subject: [PATCH 2395/3440] Removed Golang Challenge Website http://golang-challenge.org is not available now. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 35b9a63af90..4433e0f5307 100644 --- a/README.md +++ b/README.md @@ -2771,7 +2771,6 @@ _**Unofficial** set of patterns for structuring projects._ * [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. * [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. * [Go Blog](http://blog.golang.org) - The official Go blog. -* [Go Challenge](http://golang-challenge.org/) - Learn Go by solving problems and getting feedback from Go experts. * [Go Code Club](https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3) - A group of Gophers read and discuss a different Go project every week. * [Go Community on Hashnode](https://hashnode.com/n/go) - Community of Gophers on Hashnode. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. From f91380186c2c671bd4a54d06585cbd6feb5a8502 Mon Sep 17 00:00:00 2001 From: Amit Davidson Date: Mon, 23 Aug 2021 17:22:44 +0300 Subject: [PATCH 2396/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4433e0f5307..2df975891d3 100644 --- a/README.md +++ b/README.md @@ -2767,6 +2767,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. * [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. +* [Awesome Golang Workshops](https://github.com/amit-davidson/awesome-golang-workshops) - A curated list of awesome golang workshops. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. * [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. * [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. From bf8feaca4c723842062d3d3647e1ee7407050ef5 Mon Sep 17 00:00:00 2001 From: wener Date: Wed, 8 Sep 2021 00:10:31 +0800 Subject: [PATCH 2397/3440] Add go-req --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2df975891d3..5eeb2dd9300 100644 --- a/README.md +++ b/README.md @@ -1499,6 +1499,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. * [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. +* [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. * [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. * [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. * [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. From ccb86504edd38a9393bbe812a5cfcf03301800a0 Mon Sep 17 00:00:00 2001 From: John Arundel Date: Tue, 7 Sep 2021 18:24:53 +0100 Subject: [PATCH 2398/3440] Update 'For the Love of Go' link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5eeb2dd9300..6d3354bde93 100644 --- a/README.md +++ b/README.md @@ -2645,7 +2645,7 @@ _**Unofficial** set of patterns for structuring projects._ * [An Introduction to Programming in Go](http://www.golang-book.com/) * [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) * [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) -* [For the Love of Go](https://bitfieldconsulting.com/books) - A series of introductory books for Go beginners. +* [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. * [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. * [Go Bootcamp](http://golangbootcamp.com) * [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. From 8b444edb559fb83e78708bea71d668d19f7df26c Mon Sep 17 00:00:00 2001 From: yudppp Date: Wed, 25 Aug 2021 00:24:52 +0900 Subject: [PATCH 2399/3440] Add throttle library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6d3354bde93..b2d04ced9cd 100644 --- a/README.md +++ b/README.md @@ -2176,6 +2176,7 @@ _**Unofficial** set of patterns for structuring projects._ * [statiks](https://github.com/janiltonmaciel/statiks) - Fast, zero-configuration, static HTTP filer server. * [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. +* [throttle](https://github.com/yudppp/throttle) - Throttle is an object that will perform exactly one action per duration. * [tik](https://github.com/andy2046/tik) - Simple and easy timing wheel package for Go. * [tome](https://github.com/cyruzin/tome) - Tome was designed to paginate simple RESTful APIs. * [toolbox](https://github.com/viant/toolbox) - Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer. From b57245e0ca21df343577c34efbc9e42fefabf1cb Mon Sep 17 00:00:00 2001 From: Dj_Mike238 <22237379+DjMike238@users.noreply.github.com> Date: Wed, 25 Aug 2021 14:56:39 +0200 Subject: [PATCH 2400/3440] echotron: update description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2d04ced9cd..e0b4ac8efba 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building and working with bots.* -* [echotron](https://github.com/NicoNex/echotron) - Library for Telegram Bots written in pure Go. +* [echotron](https://github.com/NicoNex/echotron) - Concurrent library for Telegram Bots written in pure Go. * [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. From 8972edf79d892bf4b7d2f87af2d42e8901124bdb Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Sat, 28 Aug 2021 13:14:54 +0200 Subject: [PATCH 2401/3440] Add github.com/jmattheis/goverter --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e0b4ac8efba..d95c5af400a 100644 --- a/README.md +++ b/README.md @@ -883,6 +883,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-xray](https://github.com/pieterclaerhout/go-xray) - Helpers for making the use of reflection easier. * [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. * [gotype](https://github.com/wzshiming/gotype) - Golang source code parsing, usage like reflect package. +* [goverter](https://github.com/jmattheis/goverter) - Generate converters by defining an interface. * [GoWrap](https://github.com/hexdigest/gowrap) - Generate decorators for Go interfaces using simple templates. * [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. * [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. From 1719b7b4daa30175eef31d33b98dce4ef5131b90 Mon Sep 17 00:00:00 2001 From: levene Date: Thu, 26 Aug 2021 22:33:22 +0800 Subject: [PATCH 2402/3440] Update README.md add ini library repo link:https://github.com/wlevene/ini pkg.go.dev:https://pkg.go.dev/github.com/wlevene/ini/parser --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d95c5af400a..2c609924b2f 100644 --- a/README.md +++ b/README.md @@ -350,6 +350,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [viper](https://github.com/spf13/viper) - Go configuration with fangs. * [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). * [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). +* [ini](https://github.com/wlevene/ini) - INI Parser & Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file. ## Continuous Integration From 6c00af5fc3c0fd542e6362c2d1ed51490f731a34 Mon Sep 17 00:00:00 2001 From: dongxuny Date: Thu, 9 Sep 2021 15:07:05 +0800 Subject: [PATCH 2403/3440] Add rookie-ninja/rk-boot under Web Frameworks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c609924b2f..f878fbee49d 100644 --- a/README.md +++ b/README.md @@ -2292,6 +2292,7 @@ _**Unofficial** set of patterns for structuring projects._ * [REST Layer](http://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. +* [rk-boot](https://github.com/rookie-ninja/rk-boot) - A bootstrapper library for building enterprise go microservice with Gin and gRPC quickly and easily. * [rux](https://github.com/gookit/rux) - Simple and fast web framework for build golang HTTP 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. From e2031e31f6122c1c30f3ac304c120253acc744a5 Mon Sep 17 00:00:00 2001 From: dongxuny Date: Thu, 9 Sep 2021 15:14:10 +0800 Subject: [PATCH 2404/3440] Add rookie-ninja/rk-gin under Middlewares --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f878fbee49d..07aea5116e3 100644 --- a/README.md +++ b/README.md @@ -2313,6 +2313,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. * [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. * [ln-paywall](https://github.com/philippgille/ln-paywall) - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin). +* [rk-gin](https://github.com/rookie-ninja/rk-gin) - Middleware for Gin framework with logging, metrics, auth, tracing etc. * [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. * [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. From 9a1bc41d529dc89204bd5869db31e3ac1968a7fa Mon Sep 17 00:00:00 2001 From: dongxuny <50768414+dongxuny@users.noreply.github.com> Date: Fri, 10 Sep 2021 03:10:30 +0800 Subject: [PATCH 2405/3440] Add rookie-ninja/rk-grpc under Middleware --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 07aea5116e3..9f3505c715f 100644 --- a/README.md +++ b/README.md @@ -2314,6 +2314,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. * [ln-paywall](https://github.com/philippgille/ln-paywall) - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin). * [rk-gin](https://github.com/rookie-ninja/rk-gin) - Middleware for Gin framework with logging, metrics, auth, tracing etc. +* [rk-grpc](https://github.com/rookie-ninja/rk-grpc) - Middleware for gRPC with logging, metrics, auth, tracing etc. * [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. * [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. From d3e4c02b4130a46173494a0e92cff6384938ee59 Mon Sep 17 00:00:00 2001 From: Timofey Koolin Date: Sun, 5 Sep 2021 22:19:43 +0300 Subject: [PATCH 2406/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f3505c715f..8102dd92fc1 100644 --- a/README.md +++ b/README.md @@ -1799,6 +1799,7 @@ _**Unofficial** set of patterns for structuring projects._ * [dsunit](https://github.com/viant/dsunit) - Datastore testing for SQL, NoSQL, structured files. * [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. * [endly](https://github.com/viant/endly) - Declarative end to end functional testing. + * [fixenv](https://github.com/rekby/fixenv) - Fixture manage engine, inspired by pytest fixtures. * [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. * [frisby](https://github.com/verdverm/frisby) - REST API testing framework. * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. From 79453532afb8cd5bc85f75eaca7c0b3cfe7d91c2 Mon Sep 17 00:00:00 2001 From: Aidas <65505947+aidasap@users.noreply.github.com> Date: Sun, 5 Sep 2021 12:57:38 -0400 Subject: [PATCH 2407/3440] Update README.md --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8102dd92fc1..866e5960c9d 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Awesome Go](#awesome-go) - [Audio and Music](#audio-and-music) - [Authentication and OAuth](#authentication-and-oauth) + - [Blockchain](#blockchain) - [Bot Building](#bot-building) - [Build Automation](#build-automation) - [Command Line](#command-line) @@ -175,6 +176,17 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package. * [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser. +## Blockchain + +*Tools for building blockchains.* + +* [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem. +* [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol. +* [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host +* [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. + + + ## Bot Building *Libraries for building and working with bots.* @@ -699,7 +711,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [rpcx](https://github.com/smallnest/rpcx) - Distributed pluggable RPC service framework like alibaba Dubbo. * [Semaphore](https://github.com/jexia/semaphore) - A straightforward (micro) service orchestrator. * [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. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. ## Dynamic DNS From ebab0eee9f471b568ac4b02b94f055e75115f8f8 Mon Sep 17 00:00:00 2001 From: Nofeatures Onlybugs Date: Mon, 30 Aug 2021 11:23:05 -0700 Subject: [PATCH 2408/3440] Add `set` to README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 866e5960c9d..4b0633dfaf5 100644 --- a/README.md +++ b/README.md @@ -2179,6 +2179,7 @@ _**Unofficial** set of patterns for structuring projects._ * [scan](https://github.com/blockloop/scan) - Scan golang `sql.Rows` directly to structs, slices, or primitive types. * [scany](https://github.com/georgysavva/scany) - Library for scanning data from a database into Go structs and more. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. +* [set](https://github.com/nofeaturesonlybugs/set) - Performant and flexible struct mapping and loose type conversion. * [shutdown](https://github.com/ztrue/shutdown) - App shutdown hooks for `os.Signal` handling. * [silk](https://github.com/chrispassas/silk) - Read silk netflow files. * [slice](https://github.com/psampaz/slice) - Type-safe functions for common Go slice operations. From c825f4853b6ee6bbf32caf5f8a83d72258940931 Mon Sep 17 00:00:00 2001 From: Alexander Melentyev Date: Wed, 1 Sep 2021 19:38:39 +0300 Subject: [PATCH 2409/3440] Add go-clean-template --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4b0633dfaf5..8905d2bbac4 100644 --- a/README.md +++ b/README.md @@ -2840,6 +2840,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. * [Go Playground for iOS](https://codeplayground.app) - Interactively edit & play Go snippets on your mobile device. * [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) +* [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services * [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. * [goapp](https://github.com/bnkamalesh/goapp) - An opinionated guideline to structure & develop a Go web application/service. * [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. From c8f0cff0e695d789090795e3cfa3bcfd70795133 Mon Sep 17 00:00:00 2001 From: Alexander Melentyev Date: Wed, 1 Sep 2021 19:42:45 +0300 Subject: [PATCH 2410/3440] Add dot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8905d2bbac4..8a2a13ab416 100644 --- a/README.md +++ b/README.md @@ -2840,7 +2840,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. * [Go Playground for iOS](https://codeplayground.app) - Interactively edit & play Go snippets on your mobile device. * [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) -* [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services +* [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services. * [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. * [goapp](https://github.com/bnkamalesh/goapp) - An opinionated guideline to structure & develop a Go web application/service. * [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. From ca8066b41cf805ee6698b8a7de0ac92c54aef36d Mon Sep 17 00:00:00 2001 From: Sam Ban Date: Fri, 27 Aug 2021 19:23:30 +0100 Subject: [PATCH 2411/3440] adding sshman - remote authorized_keys manager --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a2a13ab416..6a15e9c5382 100644 --- a/README.md +++ b/README.md @@ -2188,6 +2188,7 @@ _**Unofficial** set of patterns for structuring projects._ * [sorty](https://github.com/jfcg/sorty) - Fast Concurrent / Parallel Sorting. * [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. +* [sshman](https://github.com/shoobyban/sshman) - SSH Manager for authorized_keys files on multiple remote servers. * [statiks](https://github.com/janiltonmaciel/statiks) - Fast, zero-configuration, static HTTP filer server. * [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. * [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. From 148123fde3129904234250b74abf0da15978e2d2 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sun, 12 Sep 2021 08:50:39 -0300 Subject: [PATCH 2412/3440] remove waveform archived Signed-off-by: Avelino --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6a15e9c5382..fd46e9574b0 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [vorbis](https://github.com/mccoyst/vorbis) - "Native" Go Vorbis decoder (uses CGO, but has no dependencies). -* [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. ## Authentication and OAuth From de225ec82f0677d24069d9a98fb2838ca2eab100 Mon Sep 17 00:00:00 2001 From: Ben Asaf Date: Tue, 14 Sep 2021 19:39:34 +0900 Subject: [PATCH 2413/3440] Added a 'back to top' to the README.md. You can find it after every section that starts with ## and ### --- README.md | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 181 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fd46e9574b0..5595bb949de 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt + ## Sponsorships > [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) @@ -119,6 +120,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Websites](#websites) - [Tutorials](#tutorials) +**[⬆ back to top](#contents)** + ## Audio and Music *Libraries for manipulating audio.* @@ -137,7 +140,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [vorbis](https://github.com/mccoyst/vorbis) - "Native" Go Vorbis decoder (uses CGO, but has no dependencies). -## Authentication and OAuth +## + *Libraries for implementing authentications schemes.* @@ -175,7 +179,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package. * [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser. -## Blockchain +## + *Tools for building blockchains.* @@ -186,6 +191,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a +**[⬆ back to top](#contents)** + ## Bot Building *Libraries for building and working with bots.* @@ -212,6 +219,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. +**[⬆ back to top](#contents)** + ## Build Automation *Libraries and tools helping with build automation.* @@ -226,6 +235,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Task](https://github.com/go-task/task) - simple "Make" alternative. * [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. +**[⬆ back to top](#contents)** + ## Command Line ### Standard CLI @@ -273,6 +284,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency. * [wmenu](https://github.com/dixonwille/wmenu) - Easy to use menu structure for cli applications that prompts users to make choices. +**[⬆ back to top](#contents)** + ### Advanced Console UIs *Libraries for building Console Applications and Console User Interfaces.* @@ -310,6 +323,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data. * [yacspin](https://github.com/theckman/yacspin) - Yet Another CLi Spinner package, for working with terminal spinners. +**[⬆ back to top](#contents)** + ## Configuration *Libraries for configuration parsing.* @@ -363,6 +378,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). * [ini](https://github.com/wlevene/ini) - INI Parser & Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file. +**[⬆ back to top](#contents)** + ## Continuous Integration *Tools for help with continuous integration.* @@ -376,6 +393,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +**[⬆ back to top](#contents)** + ## CSS Preprocessors *Libraries for preprocessing CSS files.* @@ -383,6 +402,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +**[⬆ back to top](#contents)** + ## Data Structures *Generic datastructures and algorithms in Go.* @@ -455,6 +476,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. * [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. +**[⬆ back to top](#contents)** + ## Database *Databases implemented in Go.* @@ -570,6 +593,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. * [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. +**[⬆ back to top](#contents)** + ## Database Drivers *Libraries for connecting and operating databases.* @@ -634,6 +659,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [dsc](https://github.com/viant/dsc) - Datastore connectivity for SQL, NoSQL, structured files. * [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more). +**[⬆ back to top](#contents)** + ## Date and Time *Libraries for working with dates and times.* @@ -659,6 +686,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. * [tuesday](https://github.com/osteele/tuesday) - Ruby-compatible Strftime function. +**[⬆ back to top](#contents)** + ## Distributed Systems *Packages that help with building Distributed Systems.* @@ -712,6 +741,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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)). * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. +**[⬆ back to top](#contents)** + ## Dynamic DNS *Tools for updating dynamic DNS records.* @@ -720,6 +751,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [dyndns](https://gitlab.com/alcastle/dyndns) - Background Go process to regularly and automatically check your IP Address and make updates to (one or many) Dynamic DNS records for Google domains whenever your address changes. * [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. +**[⬆ back to top](#contents)** + ## Email *Libraries and tools that implement email creation and sending.* @@ -742,6 +775,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +**[⬆ back to top](#contents)** + ## Embeddable Scripting Languages *Embedding other languages inside your go code.* @@ -765,6 +800,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go. * [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. +**[⬆ back to top](#contents)** + ## Error Handling *Libraries for handling errors.* @@ -782,6 +819,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. * [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. +**[⬆ back to top](#contents)** + ## File Handling *Libraries for handling files and file systems.* @@ -811,6 +850,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [*todo.txt*](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [*todo.txt* format](https://github.com/todotxt/todo.txt). * [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. +**[⬆ back to top](#contents)** + ## Financial *Packages for accounting and finance.* @@ -835,6 +876,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. * [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. +**[⬆ back to top](#contents)** + ## Forms *Libraries for working with forms.* @@ -850,6 +893,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [qs](https://github.com/sonh/qs) - Go module for encoding structs into URL query parameters. * [queryparam](https://github.com/tomwright/queryparam) - Decode `url.Values` into usable struct values of standard or custom types. +**[⬆ back to top](#contents)** + ## Functional *Packages to support functional programming in Go.* @@ -859,6 +904,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. * [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang. +**[⬆ back to top](#contents)** + ## Game Development *Awesome game development libraries.* @@ -882,6 +929,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox. * [tile](https://github.com/kelindar/tile) - Data-oriented and cache-friendly 2D Grid library (TileMap), includes pathfinding, observers and import/export. +**[⬆ back to top](#contents)** + ## Generation and Generics *Tools to enhance the language with features like generics via code generation.* @@ -901,6 +950,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection. * [typeregistry](https://github.com/xiaoxin01/typeregistry) - A library to create type dynamically. +**[⬆ back to top](#contents)** + ## Geographic *Geographic tools and servers* @@ -916,6 +967,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. * [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM). +**[⬆ back to top](#contents)** + ## Go Compilers *Tools for compiling Go to other languages.* @@ -925,6 +978,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gopherjs](https://github.com/gopherjs/gopherjs) - Compiler from Go to JavaScript. * [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. +**[⬆ back to top](#contents)** + ## Goroutines *Tools for managing and working with Goroutines.* @@ -972,6 +1027,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [worker-pool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool. * [workerpool](https://github.com/gammazero/workerpool) - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued. +**[⬆ back to top](#contents)** + ## GUI *Libraries for building GUI Applications.* @@ -1003,12 +1060,16 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [zenity](https://github.com/ncruces/zenity) - Cross-platform Go library and CLI to create simple dialogs that interact graphically with the user. +**[⬆ back to top](#contents)** + ## Hardware *Libraries, tools, and tutorials for interacting with hardware.* See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive list. +**[⬆ back to top](#contents)** + ## Images *Libraries for manipulating images.* @@ -1056,6 +1117,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. * [webp-server](https://github.com/mehdipourfar/webp-server) - Simple and minimal image server capable of storing, resizing, converting and caching images. +**[⬆ back to top](#contents)** + ## IoT (Internet of Things) *Libraries for programming devices of the IoT.* @@ -1072,6 +1135,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. * [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. +**[⬆ back to top](#contents)** + ## Job Scheduler *Libraries for scheduling jobs.* @@ -1089,6 +1154,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [tasks](https://github.com/madflojo/tasks) - An easy to use in-process scheduler for recurring tasks in Go. +**[⬆ back to top](#contents)** + ## JSON *Libraries for working with JSON.* @@ -1125,6 +1192,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ujson](https://github.com/olvrng/ujson) - Fast and minimal JSON parser and transformer that works on unstructured JSON. * [vjson](https://github.com/miladibra10/vjson) - Go package for validating JSON objects with declaring a JSON schema with fluent API. +**[⬆ back to top](#contents)** + ## Logging *Libraries for generating and working with log files.* @@ -1180,6 +1249,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. * [zkits-logger](https://github.com/edoger/zkits-logger) - A powerful zero-dependency JSON logger. +**[⬆ back to top](#contents)** + ## Machine Learning *Libraries for Machine Learning.* @@ -1223,6 +1294,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tfgo](https://github.com/galeone/tfgo) - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python. * [Varis](https://github.com/Xamber/Varis) - Golang Neural Network. +**[⬆ back to top](#contents)** + ## Messaging *Libraries that implement messaging systems.* @@ -1277,6 +1350,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [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). +**[⬆ back to top](#contents)** + ## Microsoft Office * [unioffice](https://github.com/unidoc/unioffice) - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents. @@ -1291,6 +1366,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. * [xlsx](https://github.com/plandem/xlsx) - Fast and safe way to read/update your existing Microsoft Excel files in Go programs. +**[⬆ back to top](#contents)** + ## Miscellaneous ### Dependency Injection @@ -1310,6 +1387,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [nject/npoint](https://github.com/BlueOwlOpenSource/nject) - A type safe, reflective framework based on types for libraries, tests, and endpoints. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. +**[⬆ back to top](#contents)** + ### Project Layout _**Unofficial** set of patterns for structuring projects._ @@ -1326,6 +1405,8 @@ _**Unofficial** set of patterns for structuring projects._ * [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. * [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout. +**[⬆ back to top](#contents)** + ### Strings *Libraries for working with strings.* @@ -1336,6 +1417,8 @@ _**Unofficial** set of patterns for structuring projects._ * [strutil](https://github.com/ozgio/strutil) - String utilities. * [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. +**[⬆ back to top](#contents)** + ### Uncategorized *These libraries were placed here because none of the other categories seemed to fit.* @@ -1391,6 +1474,8 @@ _**Unofficial** set of patterns for structuring projects._ * [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go. * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber. +**[⬆ back to top](#contents)** + ## Natural Language Processing *Libraries for working with human languages.* @@ -1437,6 +1522,8 @@ _**Unofficial** set of patterns for structuring projects._ * [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. +**[⬆ back to top](#contents)** + ## Networking *Libraries for working with various layers of the network.* @@ -1505,6 +1592,8 @@ _**Unofficial** set of patterns for structuring projects._ * [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, and custom protocol. +**[⬆ back to top](#contents)** + ### HTTP Clients *Libraries for making HTTP requests.* @@ -1523,6 +1612,8 @@ _**Unofficial** set of patterns for structuring projects._ * [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. * [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. +**[⬆ back to top](#contents)** + ## OpenGL *Libraries for using OpenGL in Go.* @@ -1534,6 +1625,8 @@ _**Unofficial** set of patterns for structuring projects._ * [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. * [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. +**[⬆ back to top](#contents)** + ## ORM *Libraries that implement Object-Relational Mapping or datamapping techniques.* @@ -1560,6 +1653,8 @@ _**Unofficial** set of patterns for structuring projects._ * [XORM](https://gitea.com/xorm/xorm) - Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle). * [Zoom](https://github.com/albrow/zoom) - Blazing-fast datastore and querying engine built on Redis. +**[⬆ back to top](#contents)** + ## Package Management *Official tooling for dependency and package management* @@ -1587,6 +1682,8 @@ _**Unofficial** set of patterns for structuring projects._ * [nut](https://github.com/jingweno/nut) - Vendor Go dependencies. * [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments. +**[⬆ back to top](#contents)** + ## Performance * [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. @@ -1595,6 +1692,8 @@ _**Unofficial** set of patterns for structuring projects._ * [statsviz](https://github.com/arl/statsviz) - Live visualization of your Go application runtime statistics. * [tracer](https://github.com/kamilsk/tracer) - Simple, lightweight tracing. +**[⬆ back to top](#contents)** + ## Query Language * [api-fu](https://github.com/ccbrown/api-fu) - Comprehensive GraphQL implementation. @@ -1612,6 +1711,8 @@ _**Unofficial** set of patterns for structuring projects._ * [rqp](https://github.com/timsolov/rest-query-parser) - Query Parser for REST API. Filtering, validations, both `AND`, `OR` operations are supported directly in the query. * [straf](https://github.com/SonicRoshan/straf) - Easily Convert Golang structs to GraphQL objects. +**[⬆ back to top](#contents)** + ## Resource Embedding * [debme](https://github.com/leaanthony/debme) - Create an `embed.FS` from an existing `embed.FS` subdirectory. @@ -1627,6 +1728,8 @@ _**Unofficial** set of patterns for structuring projects._ * [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. +**[⬆ back to top](#contents)** + ## Science and Data Analysis *Libraries for scientific computing and data analyzing.* @@ -1665,6 +1768,8 @@ _**Unofficial** set of patterns for structuring projects._ * [TextRank](https://github.com/DavidBelicza/TextRank) - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. * [triangolatte](https://github.com/tchayen/triangolatte) - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. +**[⬆ back to top](#contents)** + ## Security *Libraries that are used to help make your application more secure.* @@ -1698,6 +1803,8 @@ _**Unofficial** set of patterns for structuring projects._ * [themis](https://github.com/cossacklabs/themis) - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps. +**[⬆ back to top](#contents)** + ## Serialization *Libraries and tools for binary serialization.* @@ -1724,6 +1831,8 @@ _**Unofficial** set of patterns for structuring projects._ * [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. * [unitpacking](https://github.com/recolude/unitpacking) - Library to pack unit vectors into as fewest bytes as possible. +**[⬆ back to top](#contents)** + ## Server Applications * [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. @@ -1755,6 +1864,8 @@ _**Unofficial** set of patterns for structuring projects._ * [Trickster](https://github.com/tricksterproxy/trickster) - HTTP reverse proxy cache and time series accelerator. +**[⬆ back to top](#contents)** + ## Stream Processing *Libraries and tools for stream processing and reactive programming.* @@ -1763,6 +1874,8 @@ _**Unofficial** set of patterns for structuring projects._ * [machine](https://github.com/whitaker-io/machine) - Go library for writing and generating stream workers with built in metrics and traceability. * [stream](https://github.com/youthlin/stream) - Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce... +**[⬆ back to top](#contents)** + ## Template Engines *Libraries and tools for templating and lexing.* @@ -1791,6 +1904,8 @@ _**Unofficial** set of patterns for structuring projects._ * [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata * [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go. +**[⬆ back to top](#contents)** + ## Testing *Libraries for testing codebases and generating test data.* @@ -1881,6 +1996,8 @@ _**Unofficial** set of patterns for structuring projects._ * Fail injection * [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](http://www.freebsd.org/cgi/man.cgi?query=fail) for Golang. +**[⬆ back to top](#contents)** + ## Text Processing *Libraries for parsing and manipulating texts.* @@ -1952,6 +2069,8 @@ _**Unofficial** set of patterns for structuring projects._ * [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. * [xurls](https://github.com/mvdan/xurls) - Extract urls from text. +**[⬆ back to top](#contents)** + ## Third-party APIs *Libraries for accessing third party APIs.* @@ -2048,6 +2167,8 @@ _**Unofficial** set of patterns for structuring projects._ * [ynab](https://github.com/brunomvsouza/ynab.go) - Go wrapper for the YNAB API. * [zooz](https://github.com/gojuno/go-zooz) - Go client for the Zooz API. +**[⬆ back to top](#contents)** + ## Utilities *General utilities and tools to make your life easier.* @@ -2202,6 +2323,8 @@ _**Unofficial** set of patterns for structuring projects._ * [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. +**[⬆ back to top](#contents)** + ## UUID *Libraries for working with UUIDs.* @@ -2218,6 +2341,8 @@ _**Unofficial** set of patterns for structuring projects._ * [uuid](https://github.com/google/uuid) - Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. +**[⬆ back to top](#contents)** + ## Validation *Libraries for validation.* @@ -2234,6 +2359,8 @@ _**Unofficial** set of patterns for structuring projects._ * [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications. * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. +**[⬆ back to top](#contents)** + ## Version Control *Libraries for version control.* @@ -2246,6 +2373,8 @@ _**Unofficial** set of patterns for structuring projects._ * [hercules](https://github.com/src-d/hercules) - gaining advanced insights from Git repository history. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. +**[⬆ back to top](#contents)** + ## Video *Libraries for manipulating video.* @@ -2263,6 +2392,8 @@ _**Unofficial** set of patterns for structuring projects._ * [m3u8](https://github.com/grafov/m3u8) - Parser and generator library of M3U8 playlists for Apple HLS. * [v4l](https://github.com/korandiz/v4l) - Video capture library for Linux, written in Go. +**[⬆ back to top](#contents)** + ## Web Frameworks *Full stack web frameworks.* @@ -2315,6 +2446,8 @@ _**Unofficial** set of patterns for structuring projects._ * [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc). * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. +**[⬆ back to top](#contents)** + ### Middlewares #### Actual middlewares @@ -2347,6 +2480,8 @@ _**Unofficial** set of patterns for structuring projects._ * [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. +**[⬆ back to top](#contents)** + ### Routers * [alien](https://github.com/gernest/alien) - Lightweight and fast http router from outer space. @@ -2373,6 +2508,8 @@ _**Unofficial** set of patterns for structuring projects._ * [xmux](https://github.com/rs/xmux) - High performance muxer based on `httprouter` with `net/context` support. * [xujiajun/gorouter](https://github.com/xujiajun/gorouter) - A simple and fast HTTP router for Go. +**[⬆ back to top](#contents)** + ## WebAssembly * [dom](https://github.com/dennwc/dom) - DOM library. @@ -2382,12 +2519,16 @@ _**Unofficial** set of patterns for structuring projects._ * [wasmbrowsertest](https://github.com/agnivade/wasmbrowsertest) - Run Go WASM tests in your browser. * [webapi](https://github.com/gowebapi/webapi) - Bindings for DOM and HTML generated from WebIDL. +**[⬆ back to top](#contents)** + ## Windows * [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9. * [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. * [gosddl](https://github.com/MonaxGT/gosddl) - Converter from SDDL-string to user-friendly JSON. SDDL consist of four part: Owner, Primary Group, DACL, SACL. +**[⬆ back to top](#contents)** + ## XML *Libraries and tools for manipulating XML.* @@ -2403,6 +2544,8 @@ _**Unofficial** set of patterns for structuring projects._ *Go software and plugins.* +**[⬆ back to top](#contents)** + ## Code Analysis * [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. @@ -2434,6 +2577,8 @@ _**Unofficial** set of patterns for structuring projects._ * [unused](https://github.com/dominikh/go-tools/tree/master/cmd/unused) - unused checks Go code for unused constants, variables, functions and types. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. +**[⬆ back to top](#contents)** + ## Editor Plugins * [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs. @@ -2451,6 +2596,8 @@ _**Unofficial** set of patterns for structuring projects._ * [vscode-go](https://github.com/golang/vscode-go) - Extension for Visual Studio Code (VS Code) which provides support for the Go language. * [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. +**[⬆ back to top](#contents)** + ## Go Generate Tools * [generic](https://github.com/usk81/generic) - flexible data type for Go. @@ -2464,6 +2611,8 @@ _**Unofficial** set of patterns for structuring projects._ * [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly. * [xgen](https://github.com/xuri/xgen) - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator. +**[⬆ back to top](#contents)** + ## Go Tools * [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. @@ -2484,10 +2633,14 @@ _**Unofficial** set of patterns for structuring projects._ * [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. * [typex](https://github.com/dtgorski/typex) - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration. +**[⬆ back to top](#contents)** + ## Software Packages *Software written in Go.* +**[⬆ back to top](#contents)** + ### DevOps Tools * [abbreviate](https://github.com/dnnrly/abbreviate) - abbreviate is a tool turning long strings in to shorter ones with configurable seperaters, for example to embed branch names in to deployment stack IDs. @@ -2556,6 +2709,8 @@ _**Unofficial** set of patterns for structuring projects._ * [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. +**[⬆ back to top](#contents)** + ### Other Software * [Better Go Playground](https://goplay.tools) - Go playground with syntax highlight, code completion and other features. @@ -2616,10 +2771,14 @@ _**Unofficial** set of patterns for structuring projects._ * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). * [woke](https://github.com/get-woke/woke) - Detect non-inclusive language in your source code. +**[⬆ back to top](#contents)** + # Resources *Where to discover new Go libraries.* +**[⬆ back to top](#contents)** + ## Benchmarks * [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. @@ -2637,6 +2796,8 @@ _**Unofficial** set of patterns for structuring projects._ * [skynet](https://github.com/atemerev/skynet) - Skynet 1M threads microbenchmark. * [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. +**[⬆ back to top](#contents)** + ## Conferences * [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA. @@ -2658,6 +2819,8 @@ _**Unofficial** set of patterns for structuring projects._ * [GothamGo](http://gothamgo.com/) - New York City, USA. * [GoWayFest](https://goway.io/) - Minsk, Belarus. +**[⬆ back to top](#contents)** + ## E-Books * [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) @@ -2680,6 +2843,8 @@ _**Unofficial** set of patterns for structuring projects._ * [Writing A Compiler In Go](https://compilerbook.com) * [Writing An Interpreter In Go](https://interpreterbook.com) +**[⬆ back to top](#contents)** + ## Gophers * [Free Gophers Pack](https://github.com/MariaLetta/free-gophers-pack) - Gopher graphics pack by Maria Letta with illustrations and emotional characters in vector and raster. @@ -2695,6 +2860,8 @@ _**Unofficial** set of patterns for structuring projects._ * [gophers](https://github.com/sillecelik/go-gopher) - Gopher amigurumi toy pattern. * [gophers](https://github.com/scraly/gophers) - Gophers by Aurélie Vache. +**[⬆ back to top](#contents)** + ## Meetups * [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) @@ -2760,6 +2927,8 @@ _**Unofficial** set of patterns for structuring projects._ *Add the group of your city/country here (send **PR**)* +**[⬆ back to top](#contents)** + ## Style Guides * [bahlo/go-styleguide](https://github.com/bahlo/go-styleguide) @@ -2771,6 +2940,8 @@ _**Unofficial** set of patterns for structuring projects._ * [Thanos](https://thanos.io/tip/contributing/coding-style-guide.md/) * [Uber](https://github.com/uber-go/guide/blob/master/style.md) +**[⬆ back to top](#contents)** + ## Social Media ### Twitter @@ -2780,9 +2951,13 @@ _**Unofficial** set of patterns for structuring projects._ * [@golangflow](https://twitter.com/golangflow) * [@golangweekly](https://twitter.com/golangweekly) +**[⬆ back to top](#contents)** + ### Reddit * [r/golang](https://www.reddit.com/r/golang/) +**[⬆ back to top](#contents)** + ## Websites * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. @@ -2821,6 +2996,8 @@ _**Unofficial** set of patterns for structuring projects._ * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. * [TutorialEdge - Golang](https://tutorialedge.net/course/golang/) +**[⬆ back to top](#contents)** + ### Tutorials * [50 Shades of Go](http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs. @@ -2861,3 +3038,5 @@ _**Unofficial** set of patterns for structuring projects._ * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. * [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example + +**[⬆ back to top](#contents)** \ No newline at end of file From 54881b5fbf0c946763da490c67dd9d164d84d6f4 Mon Sep 17 00:00:00 2001 From: Ben Asaf Date: Tue, 14 Sep 2021 19:46:57 +0900 Subject: [PATCH 2414/3440] Fixed broken Hyperlinks for 'Authentication and OAuth' and 'Blockchain'. Added 'back-to-top' hyperlink. --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5595bb949de..c5e55360e36 100644 --- a/README.md +++ b/README.md @@ -140,8 +140,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [vorbis](https://github.com/mccoyst/vorbis) - "Native" Go Vorbis decoder (uses CGO, but has no dependencies). -## +**[⬆ back to top](#contents)** +## Authentication and OAuth *Libraries for implementing authentications schemes.* @@ -179,8 +180,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package. * [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser. -## +**[⬆ back to top](#contents)** +## Blockchain *Tools for building blockchains.* @@ -189,8 +191,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host * [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. - - **[⬆ back to top](#contents)** ## Bot Building From 1da80209be6aa3318a138ca36aacd5ac2eb85905 Mon Sep 17 00:00:00 2001 From: alessandroargentieri Date: Fri, 17 Sep 2021 17:12:58 +0200 Subject: [PATCH 2415/3440] added noodlog library to the list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c5e55360e36..c367c1e38dd 100644 --- a/README.md +++ b/README.md @@ -1233,6 +1233,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [logxi](https://github.com/mgutz/logxi) - 12-factor app logger that is fast and makes you happy. * [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. * [mlog](https://github.com/jbrodriguez/mlog) - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. +* [noodlog](https://github.com/gyozatech/noodlog) - Parametrized JSON logging library which lets you obfuscate sensitive data and marshal any kind of content. No more printed pointers instead of values, nor escape chars for the JSON strings. * [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation. * [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). * [phuslu/log](https://github.com/phuslu/log) - Structured Logging Made Easy. From 13b7630c7f153eac1ddd81b34a0ea7f19bc1adec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Youth=EF=BC=8E=E9=9C=96?= <6056413+youthlin@users.noreply.github.com> Date: Tue, 14 Sep 2021 23:09:10 +0800 Subject: [PATCH 2416/3440] add `github.com/youthlin/t` add a i18n package --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c367c1e38dd..03aa78155c6 100644 --- a/README.md +++ b/README.md @@ -1522,6 +1522,7 @@ _**Unofficial** set of patterns for structuring projects._ * [transliterator](https://github.com/alexsergivan/transliterator) - Provides one-way string transliteration with supporting of language-specific transliteration rules. * [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. +* [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. **[⬆ back to top](#contents)** @@ -3040,4 +3041,4 @@ _**Unofficial** set of patterns for structuring projects._ * [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. * [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example -**[⬆ back to top](#contents)** \ No newline at end of file +**[⬆ back to top](#contents)** From f02f83e88123bb37f03799b4297db619daed625a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Youth=EF=BC=8E=E9=9C=96?= <6056413+youthlin@users.noreply.github.com> Date: Tue, 14 Sep 2021 23:15:05 +0800 Subject: [PATCH 2417/3440] fix alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 03aa78155c6..f49b86b9618 100644 --- a/README.md +++ b/README.md @@ -1518,11 +1518,11 @@ _**Unofficial** set of patterns for structuring projects._ * [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). * [spaGO](https://github.com/nlpodyssey/spago) - Self-contained Machine Learning and Natural Language Processing library in Go. * [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. +* [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. * [textcat](https://github.com/pebbe/textcat) - Go package for n-gram based text categorization, with support for utf-8 and raw text. * [transliterator](https://github.com/alexsergivan/transliterator) - Provides one-way string transliteration with supporting of language-specific transliteration rules. * [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. -* [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. **[⬆ back to top](#contents)** From 251558b85bfa56524f2ff370d739dfaed3709f72 Mon Sep 17 00:00:00 2001 From: Daniil Literate Date: Sun, 12 Sep 2021 14:22:46 +0300 Subject: [PATCH 2418/3440] Add genmock (mocking with code generator) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f49b86b9618..293740cc938 100644 --- a/README.md +++ b/README.md @@ -1969,6 +1969,7 @@ _**Unofficial** set of patterns for structuring projects._ * Mock * [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects. + * [genmock](https://gitlab.com/so_literate/genmock) - Go mocking system with code generator for building calls of the interface methods. * [go-localstack](https://github.com/elgohr/go-localstack) - Tool for using localstack in AWS testing. * [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. From bfd17362ce5be68698cc3dea93a1a727d8955aa7 Mon Sep 17 00:00:00 2001 From: Achilles Kaloeridis Date: Mon, 27 Sep 2021 12:57:58 +0300 Subject: [PATCH 2419/3440] Add Thessaloniki golang meetup (#3760) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 293740cc938..9853dfc2a78 100644 --- a/README.md +++ b/README.md @@ -2915,6 +2915,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Golang Sydney, AU](https://www.meetup.com/golang-syd/) * [Golang São Paulo - Brazil](https://www.meetup.com/golangbr/) * [Golang Taipei](https://www.meetup.com/golang-taipei-meetup/) +* [Golang Thessaloniki](https://www.meetup.com/thessaloniki-golang-meetup/) * [Golang Turkey](https://kommunity.com/goturkiye) * [Golang Vancouver, BC](https://www.meetup.com/golangvan/) * [Golang Vienna, Austria](https://www.meetup.com/viennago/) From fa5b412db33998e99b09f2dcac9fdf320bfc0cf9 Mon Sep 17 00:00:00 2001 From: Abhimanyu Sharma Date: Mon, 27 Sep 2021 15:36:54 +0530 Subject: [PATCH 2420/3440] Adding sttr (#3756) Adding sttr cross-platform, cli app to perform various operations on string. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9853dfc2a78..65877760b3b 100644 --- a/README.md +++ b/README.md @@ -1416,6 +1416,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-formatter](https://gitlab.com/tymonx/go-formatter) - Implements **replacement fields** surrounded by curly braces `{}` format strings. * [gobeam/Stringy](https://github.com/gobeam/Stringy) - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. * [strutil](https://github.com/ozgio/strutil) - String utilities. +* [sttr](https://github.com/abhimanyu003/sttr) - cross-platform, cli app to perform various operations on string. * [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. **[⬆ back to top](#contents)** From efb0363df45b9c810c9f0d43393aedebc49dc0a1 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 27 Sep 2021 20:15:58 +1000 Subject: [PATCH 2421/3440] update description with newly supported hashes (#3754) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 65877760b3b..a5557e5b073 100644 --- a/README.md +++ b/README.md @@ -829,7 +829,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [afs](https://github.com/viant/afs) - Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go. * [baraka](https://github.com/xis/baraka) - A library to process http file uploads easily. * [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client. -* [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5 and SHA256, for large files. +* [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5, SHA256, SHA1 or CRC, for large files. * [copy](https://github.com/otiai10/copy) - Copy directory recursively. * [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). * [gdu](https://github.com/dundee/gdu) - Disk usage analyzer with console interface From 9a3eeba75e9e4fc7725c4b7738d9d87dfb477135 Mon Sep 17 00:00:00 2001 From: Alessandro Ros Date: Thu, 30 Sep 2021 11:19:58 +0200 Subject: [PATCH 2422/3440] replace unmaintained go-hardware link with a selected list of packages (#3751) --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a5557e5b073..a02be861db8 100644 --- a/README.md +++ b/README.md @@ -1066,7 +1066,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries, tools, and tutorials for interacting with hardware.* -See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive list. +* [emgo](https://github.com/ziutek/emgo) - Go-like language for programming embedded systems (e.g. STM32 MCU). +* [ghw](https://github.com/jaypipes/ghw) - Golang hardware discovery/inspection library. +* [go-osc](https://github.com/hypebeast/go-osc) - Open Sound Control (OSC) bindings for Go. +* [go-rpio](https://github.com/stianeikeland/go-rpio) - GPIO for Go, doesn't require cgo. +* [joystick](https://github.com/0xcafed00d/joystick) - a polled API to read the state of an attached joystick. +* [sysinfo](https://github.com/zcalusic/sysinfo) - A pure Go library providing Linux OS / kernel / hardware system information. **[⬆ back to top](#contents)** From d8959b740aa5375ad401e0c0494807579e3bfc83 Mon Sep 17 00:00:00 2001 From: Doychin Atanasov Date: Sun, 3 Oct 2021 10:48:20 +0300 Subject: [PATCH 2423/3440] Add Euterpe to the list of servers (#3737) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a02be861db8..213cb1e8d17 100644 --- a/README.md +++ b/README.md @@ -1852,6 +1852,7 @@ _**Unofficial** set of patterns for structuring projects._ * [dudeldu](https://github.com/krotik/dudeldu) - A simple SHOUTcast server. * [Easegress](https://github.com/megaease/easegress) - A cloud native high availability/performance traffic orchestration system with observability and extensibility. * [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. +* [Euterpe](https://github.com/ironsmile/euterpe) - Self-hosted music streaming server with built-in web UI and REST API. * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. * [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js From 4162917c6174a839848ed2958c85d3b24a00fb89 Mon Sep 17 00:00:00 2001 From: Milica Date: Tue, 5 Oct 2021 14:47:17 +0200 Subject: [PATCH 2424/3440] add belgrade golang meetup --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 213cb1e8d17..dd133ca1629 100644 --- a/README.md +++ b/README.md @@ -2875,6 +2875,7 @@ _**Unofficial** set of patterns for structuring projects._ ## Meetups * [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) +* [Belgrade Golang Meetup](https://www.meetup.com/golang-serbia/) * [Belfast Gophers](https://www.meetup.com/Belfast-Gophers/) * [Berlin Golang](https://www.meetup.com/golang-users-berlin/) * [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) From 2ace9eeb845a027dddaba3cd3b3479cbaa137899 Mon Sep 17 00:00:00 2001 From: Tom Zille Date: Tue, 5 Oct 2021 08:29:09 +0200 Subject: [PATCH 2425/3440] Fixed two Typos --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dd133ca1629..13f9b3e820f 100644 --- a/README.md +++ b/README.md @@ -203,7 +203,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. * [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. -* [go-twitch-irc](https://github.com/gempir/go-twitch-irc) - Libary to write bots for twitch.tv chat +* [go-twitch-irc](https://github.com/gempir/go-twitch-irc) - Library to write bots for twitch.tv chat * [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. * [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. * [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. @@ -249,7 +249,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. * [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. * [clîr](https://github.com/leaanthony/clir) - A Simple and Clear CLI library. Dependency free. -* [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idomatic way. +* [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idiomatic way. * [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. * [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. * [command-chain](https://github.com/rainu/go-command-chain) - A go library for configure and run command chains - such like pipelining in unix shells. From 663cd9f6b3a7e0c346a930846ba19bbe8ff5aee8 Mon Sep 17 00:00:00 2001 From: 0xflotus <0xflotus@gmail.com> Date: Wed, 6 Oct 2021 00:30:06 +0200 Subject: [PATCH 2426/3440] fix: few typo errors (#3801) --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 13f9b3e820f..c9bc690169e 100644 --- a/README.md +++ b/README.md @@ -1610,7 +1610,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. * [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. * [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. -* [heimdall](https://github.com/gojektech/heimdall) - An enchanced http client with retry and hystrix capabilities. +* [heimdall](https://github.com/gojektech/heimdall) - An enhanced http client with retry and hystrix capabilities. * [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. * [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. @@ -1759,7 +1759,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. * [gonum](https://github.com/gonum/gonum) - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. * [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). +* [goraph](https://github.com/gyuho/goraph) - Pure Go graph theory library(data structure, algorithm visualization). * [gosl](https://github.com/cpmech/gosl) - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. * [GoStats](https://github.com/OGFris/GoStats) - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. * [graph](https://github.com/yourbasic/graph) - Library of basic graph algorithms. @@ -2223,7 +2223,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-bind-plugin](https://github.com/wendigo/go-bind-plugin) - go:generate tool for wrapping symbols exported by golang plugins (1.8 only). * [go-bsdiff](https://github.com/gabstv/go-bsdiff) - Pure Go bsdiff and bspatch libraries and CLI tools. * [go-clip](https://github.com/prashantgupta24/go-clip) - A minimalistic clipboard manager for Mac. -* [go-convert](https://github.com/Eun/go-convert) - Package go-convert enbles you to convert a value into another type. +* [go-convert](https://github.com/Eun/go-convert) - Package go-convert enables you to convert a value into another type. * [go-countries](https://github.com/mikekonan/go-countries) - Lightweight lookup over ISO-3166 codes. * [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, ...). @@ -2433,7 +2433,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. -* [GoTuna](https://github.com/gotuna/gotuna) - Minimalistic web framework for Go with mux router, middlewares, sessions, templates, embeded views and static files. +* [GoTuna](https://github.com/gotuna/gotuna) - Minimalistic web framework for Go with mux router, middlewares, sessions, templates, embedded views and static files. * [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. * [Goyave](https://github.com/go-goyave/goyave) - Feature-complete REST API framework aimed at clean code and fast development, with powerful built-in functionalities. * [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. @@ -2504,7 +2504,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gocraft/web](https://github.com/gocraft/web) - Mux and middleware package in Go. * [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. * [goroute](https://github.com/goroute/route) - Simple yet powerful HTTP request multiplexer. -* [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framwework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. +* [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. * [gowww/router](https://github.com/gowww/router) - Lightning fast HTTP router fully compatible with the net/http.Handler interface. * [httprouter](https://github.com/julienschmidt/httprouter) - High performance router. Use this and the standard http handlers to form a very high performance web framework. * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. From faaf1ee605b3d4976e13ed31e7f94ebbd51d5b43 Mon Sep 17 00:00:00 2001 From: Alex Archer Date: Wed, 6 Oct 2021 17:29:03 +0100 Subject: [PATCH 2427/3440] Update pull request template to be clearer for coverage service link section --- .github/PULL_REQUEST_TEMPLATE.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 75816438fbd..779cc095e3b 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,9 +5,7 @@ - repo link (github.com, gitlab.com, etc): - pkg.go.dev: - goreportcard.com: -- coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.) - -Very good coverage +- coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.): **Note**: _that new categories can be added only when there are 3 packages or more._ From 292df7c7f78472e8623c51e8fffc2b098476fac9 Mon Sep 17 00:00:00 2001 From: Alex <13932330+TheArchDev@users.noreply.github.com> Date: Thu, 7 Oct 2021 04:05:50 +0100 Subject: [PATCH 2428/3440] Change weblinks to use https rather than http only in cases when have confirmed link still works with https (#3808) --- README.md | 88 +++++++++++++++++++++++++++---------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index c9bc690169e..c94ffbfb2cf 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Build Status](https://travis-ci.com/avelino/awesome-go.svg?branch=master)](https://travis-ci.com/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) -[![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](http://gophers.slack.com/messages/awesome) +[![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](https://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) [![Track Awesome List](https://www.trackawesomelist.com/badge.svg)](https://www.trackawesomelist.com/avelino/awesome-go/) @@ -247,7 +247,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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 struct tags. * [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. -* [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. +* [climax](https://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. * [clîr](https://github.com/leaanthony/clir) - A Simple and Clear CLI library. Dependency free. * [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idiomatic way. * [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. @@ -368,7 +368,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. * [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. * [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. -* [onion](http://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. +* [onion](https://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. * [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. * [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). * [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library. @@ -609,7 +609,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. * [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver. - * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). + * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org). * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. @@ -625,7 +625,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. * [gocosmos](https://github.com/btnguyen2k/gocosmos) - REST client and standard `database/sql` driver for Azure Cosmos DB. - * [gocql](http://gocql.github.io) - Go language driver for Apache Cassandra. + * [gocql](https://gocql.github.io) - Go language driver for Apache Cassandra. * [godis](https://github.com/piaohao/godis) - redis client implement by golang, inspired by jedis. * [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. * [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language. @@ -925,7 +925,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Pitaya](https://github.com/topfreegames/pitaya) - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. * [Pixel](https://github.com/faiface/pixel) - Hand-crafted 2D game library in Go. * [prototype](https://github.com/gonutz/prototype) - Cross-platform (Windows/Linux/Mac) library for creating desktop games using a minimal API. -* [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. +* [raylib-go](https://github.com/gen2brain/raylib-go) - Go bindings for [raylib](https://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. * [tile](https://github.com/kelindar/tile) - Data-oriented and cache-friendly 2D Grid library (TileMap), includes pathfinding, observers and import/export. @@ -1038,7 +1038,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. * [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. * [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-gtk](https://mattn.github.io/go-gtk/) - Go bindings for GTK. * [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. * [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. @@ -1146,7 +1146,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for scheduling jobs.* -* [clockwerk](http://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. +* [clockwerk](https://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. * [cronticker](https://github.com/krayzpipes/cronticker) - A ticker implementation to support cron schedules. * [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. @@ -1439,7 +1439,7 @@ _**Unofficial** set of patterns for structuring projects._ * [base64Captcha](https://github.com/mojocn/base64Captcha) - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha. * [battery](https://github.com/distatus/battery) - Cross-platform, normalized battery information library. * [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. -* [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](https://browscap.org/). * [captcha](https://github.com/steambap/captcha) - Package captcha provides an easy to use, unopinionated API for captcha generation. * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. @@ -1518,7 +1518,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. English only. * [RAKE.go](https://github.com/afjoseph/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/) +* [segment](https://github.com/blevesearch/segment) - Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://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/). @@ -1547,7 +1547,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. * [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. -* [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959). * [ftpserverlib](https://github.com/fclairamb/ftpserverlib) - Fully featured FTP server library. * [gaio](https://github.com/xtaci/gaio) - High performance async-io networking for Golang in proactor mode. * [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. @@ -1628,7 +1628,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). * [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. -* [go-glmatrix](https://github.com/technohippy/go-glmatrix) - Go port of [glMatrix](http://glmatrix.net/) library. +* [go-glmatrix](https://github.com/technohippy/go-glmatrix) - Go port of [glMatrix](https://glmatrix.net/) library. * [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). * [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. * [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. @@ -1863,7 +1863,7 @@ _**Unofficial** set of patterns for structuring projects._ * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. * [Moxy](https://github.com/sinhashubham95/moxy) - Moxy is a simple mocker and proxy application server, you can create mock endpoints as well as proxy requests in case no mock exists for the endpoint. * [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. -* [nsq](http://nsq.io/) - A realtime distributed messaging platform. +* [nsq](https://nsq.io/) - A realtime distributed messaging platform. * [protoxy](https://github.com/camgraff/protoxy) - A proxy server that converts JSON request bodies to Protocol Buffers. * [psql-streamer](https://github.com/blind-oracle/psql-streamer) - Stream database events from PostgreSQL to Kafka. * [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. @@ -1894,7 +1894,7 @@ _**Unofficial** set of patterns for structuring projects._ * [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. * [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. * [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. -* [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/). +* [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). * [gofpdf](https://github.com/jung-kurt/gofpdf) - PDF document generator with high level support for text, drawing and images. * [gospin](https://github.com/m1/gospin) - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations. * [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. @@ -1936,7 +1936,7 @@ _**Unofficial** set of patterns for structuring projects._ * [fixenv](https://github.com/rekby/fixenv) - Fixture manage engine, inspired by pytest fixtures. * [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. * [frisby](https://github.com/verdverm/frisby) - REST API testing framework. - * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. + * [ginkgo](https://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. * [gnomock](https://github.com/orlangure/gnomock) - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks. * [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal. * [go-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests. @@ -1946,14 +1946,14 @@ _**Unofficial** set of patterns for structuring projects._ * [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. * [goc](https://github.com/qiniu/goc) - Goc is a comprehensive coverage testing system for The Go Programming Language. - * [gocheck](http://labix.org/gocheck) - More advanced testing framework alternative to gotest. + * [gocheck](https://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. * [gocrest](https://github.com/corbym/gocrest) - Composable hamcrest-like matchers for Go assertions. * [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. * [gogiven](https://github.com/corbym/gogiven) - YATSPEC-like BDD testing framework for Go. * [gomatch](https://github.com/jfilipczyk/gomatch) - library created for testing JSON against patterns. - * [gomega](http://onsi.github.io/gomega/) - Rspec like matcher/assertion library. + * [gomega](https://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. @@ -2004,7 +2004,7 @@ _**Unofficial** set of patterns for structuring projects._ * [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. * Fail injection - * [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](http://www.freebsd.org/cgi/man.cgi?query=fail) for Golang. + * [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](https://www.freebsd.org/cgi/man.cgi?query=fail) for Golang. **[⬆ back to top](#contents)** @@ -2026,7 +2026,7 @@ _**Unofficial** set of patterns for structuring projects._ * [did](https://github.com/ockam-network/did) - DID (Decentralized Identifiers) Parser and Stringer in Go. * [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. * [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/). + * [enca](https://github.com/endeveit/enca) - Minimal cgo bindings for [libenca](https://cihar.com/software/enca/). * [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. * [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. @@ -2104,7 +2104,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. -* [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](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](https://opencagedata.com/api), [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. +* [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](https://open.mapquestapi.com/geocoding/), [Nominatim](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](https://opencagedata.com/api), [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. * [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-aws-news](https://github.com/circa10a/go-aws-news) - Go application and library to fetch what's new from AWS. @@ -2131,7 +2131,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gogtrends](https://github.com/groovili/gogtrends) - Google Trends Unofficial API. * [golang-tmdb](https://github.com/cyruzin/golang-tmdb) - Golang wrapper for The Movie Database API v3. * [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. -* [gomalshare](https://github.com/MonaxGT/gomalshare) - Go library MalShare API [malshare.com](http://www.malshare.com/) +* [gomalshare](https://github.com/MonaxGT/gomalshare) - Go library MalShare API [malshare.com](https://www.malshare.com/) * [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - Go MusicBrainz WS2 client library. * [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. * [google-analytics](https://github.com/chonthu/go-google-analytics) - Simple wrapper for easy google analytics reporting. @@ -2146,9 +2146,9 @@ _**Unofficial** set of patterns for structuring projects._ * [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). * [kanka](https://github.com/Henry-Sarabia/kanka) - Go client for the [Kanka API](https://kanka.io/en-US/docs/1.0). * [lastpass-go](https://github.com/ansd/lastpass-go) - Go client library for the [LastPass](https://www.lastpass.com/) API. -* [libgoffi](https://github.com/clevabit/libgoffi) - Library adapter toolbox for native [libffi](http://sourceware.org/libffi/) integration +* [libgoffi](https://github.com/clevabit/libgoffi) - Library adapter toolbox for native [libffi](https://sourceware.org/libffi/) integration * [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](https://mesos.apache.org/) cluster. * [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. @@ -2201,7 +2201,7 @@ _**Unofficial** set of patterns for structuring projects._ * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. * [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. * [create-go-app](https://github.com/create-go-app/cli) - A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command. -* [ctop](https://github.com/bcicen/ctop) - [Top-like](http://ctop.sh) interface (e.g. htop) for container metrics. +* [ctop](https://github.com/bcicen/ctop) - [Top-like](https://ctop.sh) interface (e.g. htop) for container metrics. * [ctxutil](https://github.com/posener/ctxutil) - A collection of utility functions for contexts. * [dbt](https://github.com/nikogura/dbt) - A framework for running self-updating signed binaries from a central, trusted repository. * [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. @@ -2414,7 +2414,7 @@ _**Unofficial** set of patterns for structuring projects._ * [appy](https://github.com/appist/appy) - An opinionated productive web framework that helps scaling business easier. * [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. -* [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! +* [Buffalo](https://gobuffalo.io) - Bringing the productivity of Rails to Go! * [Confetti Framework](https://www.confetti-framework.com) - Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go. * [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. * [Fiber](https://github.com/gofiber/fiber) - An Express.js inspired web framework build on Fasthttp. @@ -2443,7 +2443,7 @@ _**Unofficial** set of patterns for structuring projects._ * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. * [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. * [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. -* [REST Layer](http://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. +* [REST Layer](https://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. * [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [rk-boot](https://github.com/rookie-ninja/rk-boot) - A bootstrapper library for building enterprise go microservice with Gin and gRPC quickly and easily. @@ -2568,7 +2568,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-mod-outdated](https://github.com/psampaz/go-mod-outdated) - An easy way to find outdated dependencies of your Go projects. * [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. * [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. -* [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. +* [GoCover.io](https://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [golang-ifood-sdk](https://github.com/arxdsilva/golang-ifood-sdk) - iFood API SDK. * [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. @@ -2613,7 +2613,7 @@ _**Unofficial** set of patterns for structuring projects._ * [generic](https://github.com/usk81/generic) - flexible data type for Go. * [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. * [gocontracts](https://github.com/Parquery/gocontracts) - brings design-by-contract to Go by synchronizing the code with the documentation. -* [gonerics](http://github.com/bouk/gonerics) - Idiomatic Generics in Go. +* [gonerics](https://github.com/bouk/gonerics) - Idiomatic Generics in Go. * [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. * [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. * [hasgo](https://github.com/DylanMeeus/hasgo) - Generate Haskell inspired functions for your slices. @@ -2628,7 +2628,7 @@ _**Unofficial** set of patterns for structuring projects._ * [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. * [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. * [docs](https://github.com/go-oas/docs) - Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard. -* [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](http://yeoman.io) generator to get new Go projects started. +* [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](https://yeoman.io) generator to get new Go projects started. * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. * [go-james](https://github.com/pieterclaerhout/go-james) - Go project skeleton creator, builds and tests your projects without the manual setup. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. @@ -2732,7 +2732,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Comcast](https://github.com/tylertreat/Comcast) - Simulate bad network connections. * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. * [croc](https://github.com/schollz/croc) - Easily and securely send files or folders from one computer to another. -* [Docker](http://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. +* [Docker](https://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. * [dp](https://github.com/scryinfo/dp) - Through SDK for data exchange with blockchain, developers can get easy access to DAPP development. * [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. @@ -2748,7 +2748,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [Guora](https://github.com/meloalright/guora) - A self-hosted Quora like web application written in Go. * [hoofli](https://github.com/dnnrly/hoofli) - Generate PlantUML diagrams from Chrome or Firefox network inspections. -* [hugo](http://gohugo.io/) - Fast and Modern Static Website Engine. +* [hugo](https://gohugo.io/) - Fast and Modern Static Website Engine. * [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. * [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. * [joincap](https://github.com/assafmo/joincap) - Command-line utility for merging multiple pcap files together. @@ -2811,13 +2811,13 @@ _**Unofficial** set of patterns for structuring projects._ ## Conferences * [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA. -* [dotGo](http://www.dotgo.eu) - Paris, France. -* [GoCon](http://gocon.connpass.com/) - Tokyo, Japan. +* [dotGo](https://www.dotgo.eu) - Paris, France. +* [GoCon](https://gocon.connpass.com/) - Tokyo, Japan. * [GoDays](https://www.godays.io/) - Berlin, Germany. -* [GoLab](http://golab.io/) - Florence, Italy. -* [GolangUK](http://golanguk.com/) - London, UK. -* [GopherChina](http://gopherchina.org) - Shanghai, China. -* [GopherCon](http://www.gophercon.com/) - Denver, USA. +* [GoLab](https://golab.io/) - Florence, Italy. +* [GolangUK](https://golanguk.com/) - London, UK. +* [GopherChina](https://gopherchina.org) - Shanghai, China. +* [GopherCon](https://www.gophercon.com/) - Denver, USA. * [GopherCon Australia](https://gophercon.com.au/) - Sydney, Australia. * [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR. * [GopherCon Europe](https://gophercon.is/) - Berlin, Germany. @@ -2834,7 +2834,7 @@ _**Unofficial** set of patterns for structuring projects._ ## E-Books * [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) -* [An Introduction to Programming in Go](http://www.golang-book.com/) +* [An Introduction to Programming in Go](https://www.golang-book.com/) * [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) * [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) * [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. @@ -2847,7 +2847,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Network Programming With Go](https://jan.newmarch.name/go/) * [Practical Go Lessons](https://www.practical-go-lessons.com/) * [Spaceship Go A Journey to the Standard Library](https://blasrodri.github.io/spaceship-go-gh-pages/) -* [The Go Programming Language](http://www.gopl.io/) +* [The Go Programming Language](https://www.gopl.io/) * [The Golang Standard Library by Example (Chinese)](https://github.com/polaris1119/The-Golang-Standard-Library-by-Example) * [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) * [Writing A Compiler In Go](https://compilerbook.com) @@ -2978,7 +2978,7 @@ _**Unofficial** set of patterns for structuring projects._ * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. * [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. * [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. -* [Go Blog](http://blog.golang.org) - The official Go blog. +* [Go Blog](https://blog.golang.org) - The official Go blog. * [Go Code Club](https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3) - A group of Gophers read and discuss a different Go project every week. * [Go Community on Hashnode](https://hashnode.com/n/go) - Community of Gophers on Hashnode. * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. @@ -3012,9 +3012,9 @@ _**Unofficial** set of patterns for structuring projects._ ### Tutorials -* [50 Shades of Go](http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs. +* [50 Shades of Go](https://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs. * [A Guide to Golang E-Commerce](https://snipcart.com/blog/golang-ecommerce-ponzu-cms-demo?utm_term=golang-ecommerce-ponzu-cms-demo) - Building a Golang site for e-commerce (demo included). -* [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. +* [A Tour of Go](https://tour.golang.org/) - Interactive tour of Go. * [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. * [Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL](https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql) - We’ll write an API with the help of the powerful Gorilla Mux. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. @@ -3023,7 +3023,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Debugged.it Go patterns](https://github.com/haveyoudebuggedit/go-patterns) - Advanced Go patterns with ready-to-run examples. * [Design Patterns in Go](https://github.com/shubhamzanwar/design-patterns) - Collection of programming design patterns implemented in Go. * [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. -* [Games With Go](http://gameswithgo.org/) - A video series teaching programming and game development. +* [Games With Go](https://gameswithgo.org/) - A video series teaching programming and game development. * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. @@ -3048,7 +3048,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. -* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's. +* [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. * [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example **[⬆ back to top](#contents)** From 54f738597f11d250f0fad27f7bbaad6f37f18ea9 Mon Sep 17 00:00:00 2001 From: Alex Meyer Date: Wed, 6 Oct 2021 23:06:38 -0400 Subject: [PATCH 2429/3440] add arduino-cli to Hardware section (#3809) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c94ffbfb2cf..820c44eef44 100644 --- a/README.md +++ b/README.md @@ -1066,6 +1066,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries, tools, and tutorials for interacting with hardware.* +* [arduino-cli](https://github.com/arduino/arduino-cli) - Official Arduino CLI and library. Can run standalone, or be incorporated into larger Go projects. * [emgo](https://github.com/ziutek/emgo) - Go-like language for programming embedded systems (e.g. STM32 MCU). * [ghw](https://github.com/jaypipes/ghw) - Golang hardware discovery/inspection library. * [go-osc](https://github.com/hypebeast/go-osc) - Open Sound Control (OSC) bindings for Go. From 5fbe5a10ca61af628cc051f9970b106eddcf95c4 Mon Sep 17 00:00:00 2001 From: Alex <13932330+TheArchDev@users.noreply.github.com> Date: Thu, 7 Oct 2021 04:21:53 +0100 Subject: [PATCH 2430/3440] Update conferences (#3807) * Update GolangUK conference with revised name GopherCon UK * Include GoWest Conference in the USA * Re-write BR as Brazil to be consistent with other conference namings Co-authored-by: Phani Rithvij --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 820c44eef44..1f55d4c498c 100644 --- a/README.md +++ b/README.md @@ -2816,19 +2816,20 @@ _**Unofficial** set of patterns for structuring projects._ * [GoCon](https://gocon.connpass.com/) - Tokyo, Japan. * [GoDays](https://www.godays.io/) - Berlin, Germany. * [GoLab](https://golab.io/) - Florence, Italy. -* [GolangUK](https://golanguk.com/) - London, UK. * [GopherChina](https://gopherchina.org) - Shanghai, China. * [GopherCon](https://www.gophercon.com/) - Denver, USA. * [GopherCon Australia](https://gophercon.com.au/) - Sydney, Australia. -* [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, BR. +* [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, Brazil. * [GopherCon Europe](https://gophercon.is/) - Berlin, Germany. * [GopherCon India](https://www.gophercon.in/) - Pune, India. * [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel. * [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia. * [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore. +* [GopherCon UK](https://www.gophercon.co.uk/) - London, UK. * [GopherCon Vietnam](https://gophercon.vn/) - Ho Chi Minh City, Vietnam. * [GothamGo](http://gothamgo.com/) - New York City, USA. * [GoWayFest](https://goway.io/) - Minsk, Belarus. +* [GoWest Conference](https://www.gowestconf.com/) - Lehi, USA. **[⬆ back to top](#contents)** From 04e5fdbdcda95069941611d17dd5afbd361e9f23 Mon Sep 17 00:00:00 2001 From: Alex <13932330+TheArchDev@users.noreply.github.com> Date: Thu, 7 Oct 2021 04:25:16 +0100 Subject: [PATCH 2431/3440] Add glab to list of libraries for version control (#3805) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1f55d4c498c..14ad2eecbe5 100644 --- a/README.md +++ b/README.md @@ -2379,6 +2379,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. * [githooks](https://github.com/gabyx/githooks) - Per-repo and shared Git hooks with version control and auto update. +* [glab](https://github.com/profclems/glab) - An open-source GitLab command line tool bringing GitLab's cool features to your command line. * [go-git](https://github.com/go-git/go-git) - highly extensible Git implementation in pure Go. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hercules](https://github.com/src-d/hercules) - gaining advanced insights from Git repository history. From fc25cd3abb81317fcac7875654389dbe35db36c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fatih=20Baltac=C4=B1?= Date: Thu, 7 Oct 2021 06:32:33 +0300 Subject: [PATCH 2432/3440] Add ddosify load testing tool (#3804) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 14ad2eecbe5..40396deb8ae 100644 --- a/README.md +++ b/README.md @@ -2664,6 +2664,7 @@ _**Unofficial** set of patterns for structuring projects._ * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [cassowary](https://github.com/rogerwelin/cassowary) - Modern cross-platform HTTP load-testing tool written in Go. +* [Ddosify](https://github.com/ddosify/ddosify) - High-performance load testing tool, written in Golang. * [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. * [docker-go-mingw](https://github.com/x1unix/docker-go-mingw) - Docker image for building Go binaries for Windows with MinGW toolchain. * [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. From e8feee0793cc8a768de574c31a0fdd3d38feac90 Mon Sep 17 00:00:00 2001 From: Bambang Supriadi Date: Thu, 7 Oct 2021 12:20:46 +0700 Subject: [PATCH 2433/3440] Added Tutorial (#3810) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 40396deb8ae..1777859dc24 100644 --- a/README.md +++ b/README.md @@ -3050,6 +3050,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. * [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. +* [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. From 0ed22ae27cfd2c88b1ca9bb5de7ecf97d3a63a9a Mon Sep 17 00:00:00 2001 From: Vicente Eduardo Ferrer Garcia <7854099+viferga@users.noreply.github.com> Date: Thu, 7 Oct 2021 01:27:53 -0400 Subject: [PATCH 2434/3440] Update README.md (#3800) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1777859dc24..53a98cbc8ba 100644 --- a/README.md +++ b/README.md @@ -796,6 +796,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [gval](https://github.com/PaesslerAG/gval) - A highly customizable expression language written in Go. +* [metacall](https://github.com/metacall/core) - Cross-platform Polyglot Runtime which supports NodeJS, JavaScript, TypeScript, Python, Ruby, C#, WebAssembly, Java, Cobol and more. * [ngaro](https://github.com/db47h/ngaro) - Embeddable Ngaro VM implementation enabling scripting in Retro. * [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go. * [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. From 45c3a1b36dc88631f5d61c0f573bc863f3b642f5 Mon Sep 17 00:00:00 2001 From: Danny Carrillo Date: Wed, 6 Oct 2021 22:29:30 -0700 Subject: [PATCH 2435/3440] Adds GoProverbs to website list (#3799) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 53a98cbc8ba..03adb5ec653 100644 --- a/README.md +++ b/README.md @@ -2989,6 +2989,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. * [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. +* [Go Proverbs](https://go-proverbs.github.io/) - Go Proverbs by Rob Pike. * [Go Report Card](https://goreportcard.com) - A report card for your Go package. * [go.dev](https://go.dev/) - A hub for Go developers. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. From 81a1f91f1081d0007207ee5db7b1032820b302a6 Mon Sep 17 00:00:00 2001 From: CesarCueva <74628190+CesarCueva@users.noreply.github.com> Date: Thu, 7 Oct 2021 00:58:19 -0500 Subject: [PATCH 2436/3440] adding my colaboration for this callenge (#3781) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 03adb5ec653..ce045d0ee94 100644 --- a/README.md +++ b/README.md @@ -1988,6 +1988,7 @@ _**Unofficial** set of patterns for structuring projects._ * [hoverfly](https://github.com/SpectoLabs/hoverfly) - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI. * [httpmock](https://github.com/jarcoal/httpmock) - Easy mocking of HTTP responses from external resources. * [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. + * [mockery](https://github.com/vektra/mockery) - Tool to generate Go interfaces. * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. * [mockit](https://github.com/pasdam/mockit) - Allows functions and method easy mocking, without defining new types; it's similar to Mockito for Java. * [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. From 69bc6ab65bc1ced737615e6a444312936c106641 Mon Sep 17 00:00:00 2001 From: Will Wu Date: Thu, 7 Oct 2021 14:02:57 +0800 Subject: [PATCH 2437/3440] add https://github.com/unionj-cloud/go-doudou (#3729) * add https://github.com/unionj-cloud/go-doudou add go-doudou https://github.com/unionj-cloud/go-doudou * Change order to comply with alphabetical order Change order to comply with alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ce045d0ee94..3b1378abc61 100644 --- a/README.md +++ b/README.md @@ -710,6 +710,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. * [gmsec](https://github.com/gmsec/micro) - A Go distributed systems development framework. +* [go-doudou](https://github.com/unionj-cloud/go-doudou) - A gossip protocol and OpenAPI 3.0 spec based decentralized microservice framework. Built-in go-doudou cli focusing on low-code and rapid dev can power up your productivity. * [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service. * [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. * [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. From f6908c90c21124b7ff0d852ac20d2c8a13e5eefd Mon Sep 17 00:00:00 2001 From: Alex Archer Date: Fri, 8 Oct 2021 18:46:36 +0100 Subject: [PATCH 2438/3440] Remove GothamGo conference; website no longer functioning --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 3b1378abc61..a0d98b45351 100644 --- a/README.md +++ b/README.md @@ -2832,7 +2832,6 @@ _**Unofficial** set of patterns for structuring projects._ * [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore. * [GopherCon UK](https://www.gophercon.co.uk/) - London, UK. * [GopherCon Vietnam](https://gophercon.vn/) - Ho Chi Minh City, Vietnam. -* [GothamGo](http://gothamgo.com/) - New York City, USA. * [GoWayFest](https://goway.io/) - Minsk, Belarus. * [GoWest Conference](https://www.gowestconf.com/) - Lehi, USA. From 9875f5a645cded6cfe3ea5f62b3d05812c6f0a34 Mon Sep 17 00:00:00 2001 From: Thomas Bonfort Date: Sat, 9 Oct 2021 07:49:37 +0200 Subject: [PATCH 2439/3440] add godal to geographic (#3797) * add cogger and godal to geographic * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a0d98b45351..300be21cb8a 100644 --- a/README.md +++ b/README.md @@ -960,6 +960,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. * [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver. +* [godal](https://github.com/airbusgeo/godal) - Go wrapper for GDAL. * [mbtileserver](https://github.com/consbio/mbtileserver) - A simple Go-based server for map tiles stored in mbtiles format. * [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. * [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. From 647de4253bc3dd83c020bfde4cc877cf56a15cc0 Mon Sep 17 00:00:00 2001 From: Herman Slatman Date: Sat, 9 Oct 2021 07:54:59 +0200 Subject: [PATCH 2440/3440] Add CertMagic (#3811) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 300be21cb8a..868aeb50bf1 100644 --- a/README.md +++ b/README.md @@ -1794,6 +1794,7 @@ _**Unofficial** set of patterns for structuring projects._ * [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. * [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. * [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. +* [CertMagic](https://github.com/caddyserver/certmagic) - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal. * [dongle](https://github.com/golang-module/dongle) - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption. * [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. * [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. From bf8eb73403e6022872b4c66086455b4c53049800 Mon Sep 17 00:00:00 2001 From: Herman Slatman Date: Sat, 9 Oct 2021 07:55:38 +0200 Subject: [PATCH 2441/3440] Add Age (#3795) * Add github/FiloSottile/age * Add CertMagic * Remove CertMagic (from this PR) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 868aeb50bf1..f3318ca30c2 100644 --- a/README.md +++ b/README.md @@ -1788,6 +1788,7 @@ _**Unofficial** set of patterns for structuring projects._ * [acmetool](https://github.com/hlandau/acme) - ACME (Let's Encrypt) client tool with automatic renewal. * [acra](https://github.com/cossacklabs/acra) - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system. +* [age](https://github.com/FiloSottile/age) - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. * [argon2-hashing](https://github.com/andskur/argon2-hashing) - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package. * [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. * [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. From a83eb4b6088c02c99910a292112f84315051e074 Mon Sep 17 00:00:00 2001 From: Apipol Sukgler Date: Sat, 9 Oct 2021 12:57:57 +0700 Subject: [PATCH 2442/3440] replace goribot with gospider because project has been move to gospider (#3816) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3318ca30c2..dc517339b54 100644 --- a/README.md +++ b/README.md @@ -2054,7 +2054,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. - * [goribot](https://github.com/zhshch2002/goribot) - A simple golang spider/scraping framework,build a spider in 3 lines. + * [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. * [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. From 016c0c6ea3b9dfc05327af3b017e25864d02ee04 Mon Sep 17 00:00:00 2001 From: Achilles Kaloeridis Date: Sat, 9 Oct 2021 08:58:45 +0300 Subject: [PATCH 2443/3440] Add the Golang Athens Meetup to the list (#3813) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dc517339b54..b87aff736d0 100644 --- a/README.md +++ b/README.md @@ -2900,6 +2900,7 @@ _**Unofficial** set of patterns for structuring projects._ * [GoJakarta](https://www.meetup.com/GoJakarta/) * [Golang Amsterdam](https://www.meetup.com/golang-amsterdam/) * [Golang Argentina](https://www.meetup.com/Golang-Argentina/) +* [Golang Athens](https://www.meetup.com/Athens-Gophers/) * [Golang Baltimore, MD](https://www.meetup.com/BaltimoreGolang/) * [Golang Bangalore](https://www.meetup.com/Golang-Bangalore/) * [Golang Belo Horizonte - Brazil](https://www.meetup.com/go-belo-horizonte/) From 1515a3a921be7d0d29b86cb35816554a1935ab68 Mon Sep 17 00:00:00 2001 From: Xiangyu Wang Date: Sat, 9 Oct 2021 14:00:56 +0800 Subject: [PATCH 2444/3440] add milvus (#3794) Signed-off-by: Xiangyu Wang --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b87aff736d0..0b1bcdec968 100644 --- a/README.md +++ b/README.md @@ -513,6 +513,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. * [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. +* [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. * [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. * [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. * [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. From abbed626f4edb799b2b8e08ad3fb911b9902869d Mon Sep 17 00:00:00 2001 From: Jovan Date: Sat, 9 Oct 2021 14:17:47 +0800 Subject: [PATCH 2445/3440] feat: A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. (#3757) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0b1bcdec968..674daa233e3 100644 --- a/README.md +++ b/README.md @@ -429,6 +429,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. * [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation in Go. * [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. +* [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. * [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-edlib](https://github.com/hbollon/go-edlib) - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode. From 2ceccf5bbeba0352d475df42d69aed0db06a8185 Mon Sep 17 00:00:00 2001 From: Neil O'Toole Date: Sat, 9 Oct 2021 01:18:17 -0600 Subject: [PATCH 2446/3440] add neilotoole/jsoncolor to JSON section (#3792) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 674daa233e3..9ab925998df 100644 --- a/README.md +++ b/README.md @@ -1189,6 +1189,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [JSON-to-Proto](https://json-to-proto.github.io/) - Convert JSON to Protobuf online. * [json2go](https://github.com/m-zajac/json2go) - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. * [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. +* [jsoncolor](https://github.com/neilotoole/jsoncolor) - Drop-in replacement for `encoding/json` that outputs colorized JSON. * [jsondiff](https://github.com/wI2L/jsondiff) - JSON diff library for Go based on RFC6902 (JSON Patch). * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. From f16187e82389648c7dacca1beef20c57e0fa3217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stjepan=20Jurekovi=C4=87?= Date: Thu, 14 Oct 2021 12:08:27 +0200 Subject: [PATCH 2447/3440] Added Continuous Delivery in Go (#3832) * Added 100 Go Mistakes: How to Avoid Them * Adde 100 Go Mistakes: How to Avoid Them * Added Build an Orchestrator in Go * Added Continuous Delivery in Go * Fixed merge conflicts (@phanirithvij) Co-authored-by: Phani Rithvij --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9ab925998df..29f2a4adec8 100644 --- a/README.md +++ b/README.md @@ -2845,11 +2845,14 @@ _**Unofficial** set of patterns for structuring projects._ ## E-Books +* [100 Go Mistakes: How to Avoid Them](https://www.manning.com/books/100-go-mistakes-how-to-avoid-them) * [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) -* [An Introduction to Programming in Go](https://www.golang-book.com/) +* [An Introduction to Programming in Go](http://www.golang-book.com/) +* [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) * [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) * [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) -* [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. +* [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. +* [For the Love of Go](https://bitfieldconsulting.com/books) - A series of introductory books for Go beginners. * [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. * [Go Bootcamp](http://golangbootcamp.com) * [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. @@ -2863,7 +2866,8 @@ _**Unofficial** set of patterns for structuring projects._ * [The Golang Standard Library by Example (Chinese)](https://github.com/polaris1119/The-Golang-Standard-Library-by-Example) * [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) * [Writing A Compiler In Go](https://compilerbook.com) -* [Writing An Interpreter In Go](https://interpreterbook.com) +* [Writing An Interpreter In Go](https://interpreterbook.com) - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. + **[⬆ back to top](#contents)** From 51fb7a767cc07536d0f4c33e73726a01b063842f Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Thu, 14 Oct 2021 15:43:52 +0530 Subject: [PATCH 2448/3440] Revert book link and description (#3833) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29f2a4adec8..22dbdefaecb 100644 --- a/README.md +++ b/README.md @@ -2852,7 +2852,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) * [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) * [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. -* [For the Love of Go](https://bitfieldconsulting.com/books) - A series of introductory books for Go beginners. +* [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. * [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. * [Go Bootcamp](http://golangbootcamp.com) * [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. From 9916986f8c7528fd52c719421c7b1a5304eee19b Mon Sep 17 00:00:00 2001 From: Siddharth Johri <34266009+JodisKripe@users.noreply.github.com> Date: Sun, 17 Oct 2021 05:33:18 +0000 Subject: [PATCH 2449/3440] Add gowitness (#3839) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 22dbdefaecb..46509842890 100644 --- a/README.md +++ b/README.md @@ -1105,6 +1105,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. * [goimghdr](https://github.com/corona10/goimghdr) - The imghdr module determines the type of image contained in a file for Go. * [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. +* [gowitness](https://github.com/sensepost/gowitness) - Screenshoting webpages using go and headless chrome on command line. * [govips](https://github.com/davidbyttow/govips) - A lightning fast image processing and resizing library for Go. * [gridder](https://github.com/shomali11/gridder) - A Grid based 2D Graphics library. * [image2ascii](https://github.com/qeesung/image2ascii) - Convert image to ASCII. From 223a729ce7083d5628b407652606bb858a3e8724 Mon Sep 17 00:00:00 2001 From: Bhargav SNV <44526455+Gituser143@users.noreply.github.com> Date: Sun, 17 Oct 2021 14:14:18 +0530 Subject: [PATCH 2450/3440] Add cryptgo to list! (#3782) * Add cryptgo to list! * Revert Changes * Add cryptgo without table formatting --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46509842890..83dfde0c667 100644 --- a/README.md +++ b/README.md @@ -2212,6 +2212,7 @@ _**Unofficial** set of patterns for structuring projects._ * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. * [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. * [create-go-app](https://github.com/create-go-app/cli) - A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command. +* [cryptgo](https://github.com/Gituser143/cryptgo) - Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time! * [ctop](https://github.com/bcicen/ctop) - [Top-like](https://ctop.sh) interface (e.g. htop) for container metrics. * [ctxutil](https://github.com/posener/ctxutil) - A collection of utility functions for contexts. * [dbt](https://github.com/nikogura/dbt) - A framework for running self-updating signed binaries from a central, trusted repository. From e9dce3fa9daf856dee04303503b513c54f7045d9 Mon Sep 17 00:00:00 2001 From: "Thanakorn.K" Date: Sun, 17 Oct 2021 16:08:33 +0700 Subject: [PATCH 2451/3440] Update Go RabbitMQ Client Library into README.md file (#3831) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 83dfde0c667..7b88bb029a5 100644 --- a/README.md +++ b/README.md @@ -1315,6 +1315,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries that implement messaging systems.* * [ami](https://github.com/kak-tus/ami) - Go client to reliable queues based on Redis Cluster Streams. +* [amqp](https://github.com/rabbitmq/amqp091-go) - Go RabbitMQ Client Library. * [APNs2](https://github.com/sideshow/apns2) - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. * [Asynq](https://github.com/hibiken/asynq) - A simple, reliable, and efficient distributed task queue for Go built on top of Redis. * [Beaver](https://github.com/Clivern/Beaver) - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. From 9f661d574d553242b2ee0f6e01ab3293bd313551 Mon Sep 17 00:00:00 2001 From: Jitendra <2908547+adhocore@users.noreply.github.com> Date: Sun, 17 Oct 2021 16:11:31 +0700 Subject: [PATCH 2452/3440] Add adhocore/gronx in Job Scheduling section (#3837) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7b88bb029a5..c3514dbdd80 100644 --- a/README.md +++ b/README.md @@ -1159,6 +1159,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. * [gocron](https://github.com/go-co-op/gocron) - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. +* [gronx](https://github.com/adhocore/gronx) - Cron expression parser, task runner and daemon consuming crontab like task list. * [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. * [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling. From b0d84b6b342fcf4b5862372d31b650a08a2aa080 Mon Sep 17 00:00:00 2001 From: satboy78 Date: Sun, 17 Oct 2021 11:21:45 +0200 Subject: [PATCH 2453/3440] add lana-commandbus to miscellaneous section (#3828) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c3514dbdd80..2f8e3d8c578 100644 --- a/README.md +++ b/README.md @@ -1456,6 +1456,7 @@ _**Unofficial** set of patterns for structuring projects._ * [faker](https://github.com/pioz/faker) - Random fake data and struct generator for Go. * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [gatus](https://github.com/TwinProduction/gatus) - Automated service health dashboard. +* [go-commandbus](https://github.com/lana/go-commandbus) - A slight and pluggable command-bus for Go. * [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool 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. From 04c8eb1ba4d45c88bae0bc60cf68d30e58ff2e92 Mon Sep 17 00:00:00 2001 From: Muhamad Azizi <60250744+MuhamadAzizi@users.noreply.github.com> Date: Sun, 3 Oct 2021 02:00:59 +0700 Subject: [PATCH 2454/3440] Add Tutorial Add tutorial Golang Tutorial Guide --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2f8e3d8c578..83c763d7348 100644 --- a/README.md +++ b/README.md @@ -3056,6 +3056,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. * [goapp](https://github.com/bnkamalesh/goapp) - An opinionated guideline to structure & develop a Go web application/service. * [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. +* [Golang Tutorial Guide](https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/) - A List of Free Courses to Learn the Go Programming Language * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. * [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. From d2f725e59c8a38456cdfdb97cf133161a94397d9 Mon Sep 17 00:00:00 2001 From: itsAftabAlam <88653530+itsAftabAlam@users.noreply.github.com> Date: Mon, 18 Oct 2021 23:58:55 +0530 Subject: [PATCH 2455/3440] updated README.md , added hyperlink to banner --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 83c763d7348..5a8ef58e156 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# awesome-go Awesome Go +# awesome-go Awesome Go [![Build Status](https://travis-ci.com/avelino/awesome-go.svg?branch=master)](https://travis-ci.com/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) From 9ea466ea221814d1b2d22cc8c12b1bb852e911f9 Mon Sep 17 00:00:00 2001 From: Thomas Obenaus Date: Mon, 16 Aug 2021 09:42:14 +0200 Subject: [PATCH 2456/3440] Update added go-conf --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a8ef58e156..5fbc252f648 100644 --- a/README.md +++ b/README.md @@ -348,6 +348,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. * [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. * [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store. +* [go-conf](https://github.com/ThomasObenaus/go-conf) - Simple library for application configuration based on annotated structs. It supports reading the configuration from env-vars, config files and command line parameters. * [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. * [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). * [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. From 4644639d7baa0dfbd1c96f58d7e5629834ae934b Mon Sep 17 00:00:00 2001 From: Thomas Obenaus Date: Tue, 12 Oct 2021 21:40:41 +0200 Subject: [PATCH 2457/3440] Update added small change --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5fbc252f648..5fe29ecbbb6 100644 --- a/README.md +++ b/README.md @@ -348,7 +348,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. * [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. * [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store. -* [go-conf](https://github.com/ThomasObenaus/go-conf) - Simple library for application configuration based on annotated structs. It supports reading the configuration from env-vars, config files and command line parameters. +* [go-conf](https://github.com/ThomasObenaus/go-conf) - Simple library for application configuration based on annotated structs. It supports reading the configuration from environment variables, config files and command line parameters. * [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. * [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). * [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. From 39587eb73e41a89741499f350dcf190f6edacb9f Mon Sep 17 00:00:00 2001 From: adamantal Date: Thu, 30 Sep 2021 13:54:54 +0200 Subject: [PATCH 2458/3440] Renaming KrakenD to Lura --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5fe29ecbbb6..dccc814ae79 100644 --- a/README.md +++ b/README.md @@ -727,8 +727,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [KrakenD](https://github.com/devopsfaith/krakend) - Ultra performant API Gateway framework with middlewares. * [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. +* [lura](https://github.com/luraproject/lura) - Ultra performant API Gateway framework with middlewares. * [micro](https://github.com/micro/micro) - A distributed systems runtime for the cloud and beyond. * [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems. * [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. From 42660e6349cf913247e5b18169c0b3ee77f75f94 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Sun, 3 Oct 2021 14:41:07 +0200 Subject: [PATCH 2459/3440] add goroslib --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dccc814ae79..953f83ef1b2 100644 --- a/README.md +++ b/README.md @@ -1077,6 +1077,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [ghw](https://github.com/jaypipes/ghw) - Golang hardware discovery/inspection library. * [go-osc](https://github.com/hypebeast/go-osc) - Open Sound Control (OSC) bindings for Go. * [go-rpio](https://github.com/stianeikeland/go-rpio) - GPIO for Go, doesn't require cgo. +* [goroslib](https://github.com/aler9/goroslib) - Robot Operating System (ROS) library for Go. * [joystick](https://github.com/0xcafed00d/joystick) - a polled API to read the state of an attached joystick. * [sysinfo](https://github.com/zcalusic/sysinfo) - A pure Go library providing Linux OS / kernel / hardware system information. From aa21ee43f5eeaedc185a5125f815e460e94542c9 Mon Sep 17 00:00:00 2001 From: Mukesh Sharma Date: Sun, 3 Oct 2021 13:04:31 +1300 Subject: [PATCH 2460/3440] docs: Added coc-go vim/neovim language server extension to editor plugins --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 953f83ef1b2..834a30c759b 100644 --- a/README.md +++ b/README.md @@ -2609,6 +2609,7 @@ _**Unofficial** set of patterns for structuring projects._ ## Editor Plugins +* [coc-go language server extension for Vim/Neovim](https://github.com/josa42/coc-go) - This plugin adds [gopls](https://github.com/golang/tools/blob/master/gopls/README.md) features to Vim/Neovim. * [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs. * [go-language-server](https://github.com/theia-ide/go-language-server) - A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol. * [go-mode](https://github.com/dominikh/go-mode.el) - Go mode for GNU/Emacs. From 4936239b96f8f7d9af29b6362fac65886276d77c Mon Sep 17 00:00:00 2001 From: karolinyoliveira Date: Wed, 20 Oct 2021 19:14:05 -0300 Subject: [PATCH 2461/3440] add linkedin avro repo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 834a30c759b..88254687645 100644 --- a/README.md +++ b/README.md @@ -538,6 +538,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. * [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go. +* [goavro](https://github.com/linkedin/goavro) - A Go package that encodes and decodes Avro data. * [go-fixtures](https://github.com/RichardKnop/go-fixtures) - Django style fixtures for Golang's excellent built-in database/sql library. * [go-pg-migrate](https://github.com/lawzava/go-pg-migrate) - CLI-friendly package for go-pg migrations management. * [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. From 7dd2627ea090bb6287232263048d181934b0ea3b Mon Sep 17 00:00:00 2001 From: alfiankan Date: Mon, 4 Oct 2021 12:39:28 +0700 Subject: [PATCH 2462/3440] add teleterm Telegram Bot Exec Terminal Command --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 88254687645..019a6473765 100644 --- a/README.md +++ b/README.md @@ -217,6 +217,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [teleterm](hhttps://github.com/alfiankan/teleterm) - Telegram Bot Exec Terminal Command. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. **[⬆ back to top](#contents)** From 161f0dad9e3dd2a7e0760f4e58b6a64888f25a11 Mon Sep 17 00:00:00 2001 From: mafulong Date: Wed, 17 Mar 2021 11:10:48 +0800 Subject: [PATCH 2463/3440] godal sql to golang model --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 019a6473765..9ba95725256 100644 --- a/README.md +++ b/README.md @@ -2634,6 +2634,7 @@ _**Unofficial** set of patterns for structuring projects._ * [generic](https://github.com/usk81/generic) - flexible data type for Go. * [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. * [gocontracts](https://github.com/Parquery/gocontracts) - brings design-by-contract to Go by synchronizing the code with the documentation. +* [godal](https://github.com/mafulong/godal) - Generate orm models corresponding to golang by specifying sql ddl file, which can be used by gorm. * [gonerics](https://github.com/bouk/gonerics) - Idiomatic Generics in Go. * [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. * [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. From 4e41eeb10c7e272bff0aa39fc798a6767fd0a943 Mon Sep 17 00:00:00 2001 From: Edilson Alves Date: Fri, 22 Oct 2021 19:31:50 -0300 Subject: [PATCH 2464/3440] docs: add kratos to distributed systems category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ba95725256..9536b3b1855 100644 --- a/README.md +++ b/README.md @@ -729,6 +729,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [Kratos](https://github.com/go-kratos/kratos) - A modular-designed and easy-to-use microservices framework in Go. * [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. * [lura](https://github.com/luraproject/lura) - Ultra performant API Gateway framework with middlewares. * [micro](https://github.com/micro/micro) - A distributed systems runtime for the cloud and beyond. From 846a870bc6cea825fb9a4af1cd272bdc7e740eef Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Thu, 30 Sep 2021 21:37:16 -0700 Subject: [PATCH 2465/3440] Add github.com/bobg/modver. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9536b3b1855..2796a2f2561 100644 --- a/README.md +++ b/README.md @@ -2660,6 +2660,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gomodrun](https://github.com/dustinblackman/gomodrun/) - Go tool that executes and caches binaries included in go.mod files. * [gothanks](https://github.com/psampaz/gothanks) - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. * [igo](https://github.com/rocketlaunchr/igo) - An igo to go transpiler (new language features for Go language!) +* [modver](https://github.com/bobg/modver) - Compare two versions of a Go module to check the version-number change required (major, minor, or patchlevel), according to [semver](https://semver.org/) rules. * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. * [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. * [roumon](https://github.com/becheran/roumon) - Monitor current state of all active goroutines via a command line interface. From b9c525148eef20a498a68c8cc61e62a645ea7189 Mon Sep 17 00:00:00 2001 From: mahajanrajan <91524562+mahajanrajan@users.noreply.github.com> Date: Fri, 1 Oct 2021 13:13:05 +0530 Subject: [PATCH 2466/3440] Made the writing more personalized to read. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2796a2f2561..69811bd1f75 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ ## Sponsorships > [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) -**We have no monthly cost**_, but we have employees **working hard** to maintain the Awesome Go, with money raised we can repay the effort of each person involved! All billing and distribution will be open to the entire community._ +**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community._ A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 83911c4e232561c280848b9d2a1f1e8a439268f0 Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Thu, 30 Sep 2021 21:39:28 -0700 Subject: [PATCH 2467/3440] Add github.com/bobg/hashsplit. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 69811bd1f75..469c290c046 100644 --- a/README.md +++ b/README.md @@ -449,6 +449,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gostl](https://github.com/liyue201/gostl) - Data structure and algorithm library for go, designed to provide functions similar to C++ STL. * [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. * [goterator](https://github.com/yaa110/goterator) - Iterator implementation to provide map and reduce functionalities. +* [hashsplit](http://github.com/bobg/hashsplit) - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position. * [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. * [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. * [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. From 54c563b960a11dbb85c778c8187a2243201cfccb Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Thu, 30 Sep 2021 21:38:35 -0700 Subject: [PATCH 2468/3440] Add github.com/bobg/mid. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 469c290c046..20fb0f7983e 100644 --- a/README.md +++ b/README.md @@ -2491,6 +2491,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. * [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. * [ln-paywall](https://github.com/philippgille/ln-paywall) - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin). +* [mid](https://github.com/bobg/mid) - Miscellaneous HTTP middleware features: idiomatic error return from handlers; receive/respond with JSON data; request tracing; and more. * [rk-gin](https://github.com/rookie-ninja/rk-gin) - Middleware for Gin framework with logging, metrics, auth, tracing etc. * [rk-grpc](https://github.com/rookie-ninja/rk-grpc) - Middleware for gRPC with logging, metrics, auth, tracing etc. * [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. From 88a2cc334baa9a25b57f8f72ff9b554c978f02d5 Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Thu, 30 Sep 2021 21:36:07 -0700 Subject: [PATCH 2469/3440] Add github.com/bobg/subcmd. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20fb0f7983e..037b0e9a66f 100644 --- a/README.md +++ b/README.md @@ -279,6 +279,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more. * [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. * [strumt](https://github.com/antham/strumt) - Library to create prompt chain. +* [subcmd](https://github.com/bobg/subcmd) - Another approach to parsing and running subcommands. Works alongside the standard `flag` package. * [ts](https://github.com/liujianping/ts) - Timestamp convert & compare tool. * [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. * [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). From 32b7afffd5f62af3e04bc216817e2ed1adc2bbc2 Mon Sep 17 00:00:00 2001 From: Raehan Afrizal Wicaksono <33539147+afrizalhan@users.noreply.github.com> Date: Sun, 24 Oct 2021 14:22:31 +0700 Subject: [PATCH 2470/3440] add go doc to editor plugins cataegory --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 037b0e9a66f..4f3761300be 100644 --- a/README.md +++ b/README.md @@ -2616,6 +2616,7 @@ _**Unofficial** set of patterns for structuring projects._ ## Editor Plugins * [coc-go language server extension for Vim/Neovim](https://github.com/josa42/coc-go) - This plugin adds [gopls](https://github.com/golang/tools/blob/master/gopls/README.md) features to Vim/Neovim. +* [Go Doc](https://github.com/msyrus/vscode-go-doc) - A Visual Studio Code extension for showing definition in output and generating go doc. * [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs. * [go-language-server](https://github.com/theia-ide/go-language-server) - A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol. * [go-mode](https://github.com/dominikh/go-mode.el) - Go mode for GNU/Emacs. From 8fdca31262d57c902692b5a73d2efe824331a75f Mon Sep 17 00:00:00 2001 From: Gituser143 Date: Mon, 25 Oct 2021 14:01:41 +0530 Subject: [PATCH 2471/3440] Add grofer to list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f3761300be..7816d8fd598 100644 --- a/README.md +++ b/README.md @@ -2275,6 +2275,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. * [goval](https://github.com/maja42/goval) - Evaluate arbitrary expressions in Go. * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. +* [grofer](https://github.com/pesos/grofer) - A system and resource monitoring tool written in Golang! * [gubrak](https://github.com/novalagung/gubrak) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [handy](https://github.com/miguelpragier/handy) - Many utilities and helpers like string handlers/formatters and validators. * [hostctl](https://github.com/guumaster/hostctl) - A CLI tool to manage /etc/hosts with easy commands. From f680dc62f6d9954f22fd3606bb30aba95660ff10 Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Sat, 2 Oct 2021 08:05:28 -0700 Subject: [PATCH 2472/3440] Add github.com/bobg/basexx. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7816d8fd598..e65f515c766 100644 --- a/README.md +++ b/README.md @@ -1454,6 +1454,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. * [base64Captcha](https://github.com/mojocn/base64Captcha) - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha. +* [basexx](https://github.com/bobg/basexx) - Convert to, from, and between digit strings in various number bases. * [battery](https://github.com/distatus/battery) - Cross-platform, normalized battery information library. * [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. * [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](https://browscap.org/). From 56aa1e433b71889dc11a8283e67d9717414f1d7b Mon Sep 17 00:00:00 2001 From: Hadi Hidayat Hammurabi Date: Sat, 2 Oct 2021 08:58:20 +0700 Subject: [PATCH 2473/3440] Add Ngamux/Ngamux HTTP Router --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e65f515c766..79a64d5db9f 100644 --- a/README.md +++ b/README.md @@ -2536,6 +2536,7 @@ _**Unofficial** set of patterns for structuring projects._ * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. * [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. * [mux](https://github.com/gorilla/mux) - Powerful URL router and dispatcher for golang. +* [ngamux](https://github.com/ngamux/ngamux) - Simple HTTP router for Go. * [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. * [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. From e504bebee49c9c066f7ba0f45e48b46a976c2e4f Mon Sep 17 00:00:00 2001 From: Daniel Jun Suguimoto Date: Tue, 28 Sep 2021 18:56:38 -0300 Subject: [PATCH 2474/3440] add kool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 79a64d5db9f..9ba8023c377 100644 --- a/README.md +++ b/README.md @@ -2723,6 +2723,7 @@ _**Unofficial** set of patterns for structuring projects._ * [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. +* [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. * [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. * [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. From 5db8f1bbf540075dfadb2d425186590db9d18662 Mon Sep 17 00:00:00 2001 From: Sophia Brandt <16630701+sophiabrandt@users.noreply.github.com> Date: Sat, 2 Oct 2021 11:32:08 +0200 Subject: [PATCH 2475/3440] Add ardanlabs/service starter kit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ba8023c377..426f052f3f7 100644 --- a/README.md +++ b/README.md @@ -1416,6 +1416,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a _**Unofficial** set of patterns for structuring projects._ +* [ardanlabs/service](https://github.com/ardanlabs/service) - A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications. * [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. * [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. * [go-starter](https://github.com/allaboutapps/go-starter) - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers. From acb4975c479863ce963ef6ce0cfe0ff86c6630fd Mon Sep 17 00:00:00 2001 From: Preslav Mihaylov Date: Mon, 1 Nov 2021 05:04:24 +0200 Subject: [PATCH 2476/3440] Add todocheck to awesome-go (#3753) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 426f052f3f7..b4e88356c80 100644 --- a/README.md +++ b/README.md @@ -2610,6 +2610,7 @@ _**Unofficial** set of patterns for structuring projects._ * [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. * [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#. * [tarp](https://github.com/verygoodsoftwarenotvirus/tarp) - tarp finds functions and methods without direct unit tests in Go source code. +* [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. * [tickgit](https://github.com/augmentable-dev/tickgit) - CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`to identify the author. * [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. From 1545cbf41c198a3b110367b55a7ec674d6d28335 Mon Sep 17 00:00:00 2001 From: Marco Franssen Date: Fri, 8 Oct 2021 10:26:48 +0200 Subject: [PATCH 2477/3440] Add section with Zero Trust related projects --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index b4e88356c80..5ec49f8b5df 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [WebAssembly](#webassembly) - [Windows](#windows) - [XML](#xml) + - [Zero Trust](#zero-trust) - [Tools](#tools) - [Code Analysis](#code-analysis) @@ -2578,6 +2579,15 @@ _**Unofficial** set of patterns for structuring projects._ * [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. * [zek](https://github.com/miku/zek) - Generate a Go struct from XML. +## Zero Trust + +*Libraries and tools to implement Zero Trust architectures.* + +* [Cosign](https://github.com/sigstore/cosign) - Container Signing, Verification and Storage in an OCI registry. +* [in-toto](https://github.com/in-toto/in-toto-golang) - Go implementation of the in-toto (provides a framework to protect the integrity of the software supply chain) python reference implementation. +* [Spiffe-Vault](https://github.com/philips-labs/spiffe-vault) - Utilizes Spiffe JWT authentication with Hashicorp Vault for secretless authentication. +* [Spire](https://github.com/spiffe/spire) - SPIRE (the SPIFFE Runtime Environment) is a toolchain of APIs for establishing trust between software systems across a wide variety of hosting platforms. + # Tools *Go software and plugins.* From 031d719a018bee917cc5d0b5aa1d312968af9f51 Mon Sep 17 00:00:00 2001 From: Michael Graf Date: Wed, 3 Nov 2021 18:07:06 -0700 Subject: [PATCH 2478/3440] Update README.md with controversy https://github.com/golang-standards/project-layout/issues/117 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5ec49f8b5df..152e0ea1d20 100644 --- a/README.md +++ b/README.md @@ -1423,7 +1423,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-starter](https://github.com/allaboutapps/go-starter) - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers. * [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. * [gobase](https://github.com/wajox/gobase) - A simple skeleton for golang application with basic setup for real golang application. -* [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. +* [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. Note: despite the org-name they do not represent official golang standards, see [this issue](https://github.com/golang-standards/project-layout/issues/117) for more information. Nonetheless, some may find the layout useful. * [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. * [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. * [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. From fc4cd297a38ae11a9b9870df2c79d2e6d67669f7 Mon Sep 17 00:00:00 2001 From: satboy78 Date: Tue, 12 Oct 2021 16:11:12 +0200 Subject: [PATCH 2479/3440] add andygeiss/esp32-transpiler transpiler from go to Arduino code. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 152e0ea1d20..f380dba331e 100644 --- a/README.md +++ b/README.md @@ -986,6 +986,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for compiling Go to other languages.* * [c4go](https://github.com/Konstantin8105/c4go) - Transpile C code to Go code. +* [esp32](https://github.com/andygeiss/esp32-transpiler) - Transpile Go into Arduino code. * [f4go](https://github.com/Konstantin8105/f4go) - Transpile FORTRAN 77 code to Go code. * [gopherjs](https://github.com/gopherjs/gopherjs) - Compiler from Go to JavaScript. * [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. From 4815c29c94da6a04037cda9f6b182c0a7b927d98 Mon Sep 17 00:00:00 2001 From: jfbus Date: Tue, 12 Oct 2021 22:27:17 +0200 Subject: [PATCH 2480/3440] Add fsm package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f380dba331e..9f918cc76cd 100644 --- a/README.md +++ b/README.md @@ -433,6 +433,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. * [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation in Go. * [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. +* [fsm](https://github.com/cocoonspace/fsm) - Finite-State Machine package. * [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. * [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. From 1bbb3cef411a87adea095b4c470a37e748e3af62 Mon Sep 17 00:00:00 2001 From: Abel Tay Date: Tue, 19 Oct 2021 10:02:58 +0800 Subject: [PATCH 2481/3440] Add xid library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f918cc76cd..c26b3d16be3 100644 --- a/README.md +++ b/README.md @@ -2378,6 +2378,7 @@ _**Unofficial** set of patterns for structuring projects._ * [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. * [uuid](https://github.com/google/uuid) - Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. * [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. +* [xid](https://github.com/rs/xid) - Xid is a globally unique id generator library, ready to be safely used directly in your server code. **[⬆ back to top](#contents)** From fd132294344d24f766cef684deab74c3c33bc3b1 Mon Sep 17 00:00:00 2001 From: Boshi Lian Date: Wed, 20 Oct 2021 13:59:12 -0700 Subject: [PATCH 2482/3440] add go-htpasswd --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c26b3d16be3..0e1514476d5 100644 --- a/README.md +++ b/README.md @@ -1817,6 +1817,7 @@ _**Unofficial** set of patterns for structuring projects._ * [CertMagic](https://github.com/caddyserver/certmagic) - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal. * [dongle](https://github.com/golang-module/dongle) - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption. * [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. +* [go-htpasswd](https://github.com/tg123/go-htpasswd) - Apache htpasswd Parser for Go. * [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. * [go-password-validator](https://github.com/lane-c-wagner/go-password-validator) - Password validator based on raw cryptographic entropy values. * [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)". From 86a3b15e31db27989660d93a9a8b006abc0b5bae Mon Sep 17 00:00:00 2001 From: tanushree57 <16234964+tanushree57@users.noreply.github.com> Date: Thu, 21 Oct 2021 00:03:32 +0530 Subject: [PATCH 2483/3440] Updated README.md with tutorials Added 2 tutorial sites for Go lang --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0e1514476d5..5b5d07ee8ad 100644 --- a/README.md +++ b/README.md @@ -3107,5 +3107,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. * [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example +* [Go Tutorial](https://www.tutorialspoint.com/go/index.htm) - Learn Go programming +* [Go Language Tutorial](https://www.javatpoint.com/go-tutorial) - Learn Go language Tutorial **[⬆ back to top](#contents)** From b4f65a39bba5d14a712620a8e3af7dc01bb8cf40 Mon Sep 17 00:00:00 2001 From: Jonathan Curran Date: Sun, 17 Oct 2021 11:44:12 -0600 Subject: [PATCH 2484/3440] Add "is" testing framework --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5b5d07ee8ad..ae29fc3d3fd 100644 --- a/README.md +++ b/README.md @@ -1986,6 +1986,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gotest.tools](https://github.com/gotestyourself/gotest.tools) - A collection of packages to augment the go testing package and support common patterns. * [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. + * [is](https://github.com/matryer/is) - Professional lightweight testing mini-framework for Go. * [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. * [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. * [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. From dfae6090aeb325773f23c34bcb53cd9a6a1f0436 Mon Sep 17 00:00:00 2001 From: Oleg Kovalov Date: Sun, 31 Oct 2021 09:49:34 +0100 Subject: [PATCH 2485/3440] add cristalhq/acmd --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ae29fc3d3fd..814dfc845bc 100644 --- a/README.md +++ b/README.md @@ -245,6 +245,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications.* +* [acmd](https://github.com/cristalhq/acmd) - Simple, useful and opinionated CLI package in Go. * [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. * [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 struct tags. From d613b670ae6aba331a01d0925c399e9f28ae107e Mon Sep 17 00:00:00 2001 From: presbrey Date: Sat, 23 Oct 2021 12:35:13 -0400 Subject: [PATCH 2486/3440] fix teleterm typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 814dfc845bc..6ab08ed8c06 100644 --- a/README.md +++ b/README.md @@ -218,7 +218,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. -* [teleterm](hhttps://github.com/alfiankan/teleterm) - Telegram Bot Exec Terminal Command. +* [teleterm](https://github.com/alfiankan/teleterm) - Telegram Bot Exec Terminal Command. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. **[⬆ back to top](#contents)** From 466d446fa6de7afedf094d2b7b6b3054f6bb9b5e Mon Sep 17 00:00:00 2001 From: "Timofey.Kovalev" Date: Fri, 15 Oct 2021 11:28:48 +0300 Subject: [PATCH 2487/3440] github.com/dedalqq/omg.testingtools add package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6ab08ed8c06..c21643c2a2c 100644 --- a/README.md +++ b/README.md @@ -1989,6 +1989,7 @@ _**Unofficial** set of patterns for structuring projects._ * [httpexpect](https://github.com/gavv/httpexpect) - Concise, declarative, and easy to use end-to-end HTTP and REST API testing. * [is](https://github.com/matryer/is) - Professional lightweight testing mini-framework for Go. * [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. + * [omg.testingtools](https://github.com/dedalqq/omg.testingtools) - The simple library for change a values of private fields for testing. * [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. * [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. * [stop-and-go](https://github.com/elgohr/stop-and-go) - Testing helper for concurrency. From 26f88a20e7bc74afea072d15cf2d656c1aa4b66e Mon Sep 17 00:00:00 2001 From: Marc-Antoine Argenton Date: Thu, 28 Oct 2021 22:49:25 -0700 Subject: [PATCH 2488/3440] Add `maargenton/go-testpredicate` under Testing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c21643c2a2c..009ae396f3b 100644 --- a/README.md +++ b/README.md @@ -1970,6 +1970,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-hit](https://github.com/Eun/go-hit) - Hit is an http integration test framework written in golang. * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. * [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. + * [go-testpredicate](https://github.com/maargenton/go-testpredicate) - Test predicate style assertions library with extensive diagnostics output. * [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. * [goc](https://github.com/qiniu/goc) - Goc is a comprehensive coverage testing system for The Go Programming Language. From 8740a8f7fcddd56b84e48e05405d0d0b70a1080c Mon Sep 17 00:00:00 2001 From: David Sharnoff Date: Thu, 28 Oct 2021 21:19:20 -0700 Subject: [PATCH 2489/3440] my fork of nject represents the ongoing development I'm the original author. BlueOwl declined to work with me on continued development so I kept going without them. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 009ae396f3b..4b601e18eac 100644 --- a/README.md +++ b/README.md @@ -1411,7 +1411,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. * [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. * [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. -* [nject/npoint](https://github.com/BlueOwlOpenSource/nject) - A type safe, reflective framework based on types for libraries, tests, and endpoints. +* [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, and http endpoints, and service startup. * [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. **[⬆ back to top](#contents)** From 8a336567aeed9425d2939eadb8d45841fe55b282 Mon Sep 17 00:00:00 2001 From: Surya Asriadie Date: Thu, 28 Oct 2021 21:51:50 +0900 Subject: [PATCH 2490/3440] Add rel --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4b601e18eac..27c6429fd97 100644 --- a/README.md +++ b/README.md @@ -554,6 +554,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. * [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. +* [rel](https://github.com/go-rel/rel) - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API. * [schema](https://github.com/adlio/schema) - Library to embed schema migrations for database/sql-compatible databases inside your Go binaries. * [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. * [soda](https://github.com/gobuffalo/pop/tree/master/soda) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. From b58df891e41f823f4dee0214f1c00c8713883585 Mon Sep 17 00:00:00 2001 From: lesismal Date: Thu, 28 Oct 2021 20:01:28 +0800 Subject: [PATCH 2491/3440] update: nbio --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27c6429fd97..a8e81ff4c13 100644 --- a/README.md +++ b/README.md @@ -1603,7 +1603,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. * [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. -* [nbio](https://github.com/lesismal/nbio) - High-performance, non-blocking, event-driven, easy-to-use, least-dependency networking framework written in Go. +* [nbio](https://github.com/lesismal/nbio) - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. * [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). * [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. * [panoptes-stream](https://github.com/yahoo/panoptes-stream) - A cloud native distributed streaming network telemetry (gNMI, Juniper JTI and Cisco MDT). From 06a98d51be38d3caf1ed3124bdbdab2476b315c1 Mon Sep 17 00:00:00 2001 From: Mohamed Sohail Date: Thu, 28 Oct 2021 08:15:14 +0300 Subject: [PATCH 2492/3440] add: dnsmonster --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a8e81ff4c13..f6889a2ef96 100644 --- a/README.md +++ b/README.md @@ -1567,6 +1567,7 @@ _**Unofficial** set of patterns for structuring projects._ * [cidranger](https://github.com/yl2chen/cidranger) - Fast IP to CIDR lookup for Go. * [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. +* [dnsmonster](https://github.com/mosajjal/dnsmonster) - Passive DNS Capture/Monitoring Framework * [easytcp](https://github.com/DarthPestilane/easytcp) - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. * [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. From 1417211f8dbc069a0ac7b5e8492cec422feaad51 Mon Sep 17 00:00:00 2001 From: Ibrahim hanif Date: Sat, 2 Oct 2021 09:50:07 +0700 Subject: [PATCH 2493/3440] add: prisma client go orm --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6889a2ef96..6b406209681 100644 --- a/README.md +++ b/README.md @@ -1680,6 +1680,7 @@ _**Unofficial** set of patterns for structuring projects._ * [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. * [marlow](https://github.com/marlow/marlow) - Generated ORM from project structs for compile time safety assurances. * [pop/soda](https://github.com/gobuffalo/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. +* [Prisma](https://github.com/prisma/prisma-client-go) - Prisma Client Go, Typesafe database access for Go. * [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. * [rel](https://github.com/go-rel/rel) - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API. * [SQLBoiler](https://github.com/volatiletech/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. From 311340ec6524808f2014ba4331c6b6c300c1967e Mon Sep 17 00:00:00 2001 From: Yiling-J Date: Sun, 14 Nov 2021 17:12:38 +0800 Subject: [PATCH 2494/3440] add cacheme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6b406209681..8e61ef5caef 100644 --- a/README.md +++ b/README.md @@ -1666,6 +1666,7 @@ _**Unofficial** set of patterns for structuring projects._ *Libraries that implement Object-Relational Mapping or datamapping techniques.* * [beego orm](https://github.com/beego/beego) - Powerful orm framework for go. Support: pq/mysql/sqlite3. +* [cacheme](https://github.com/Yiling-J/cacheme-go) - Schema based, typed Redis caching/memoize framework for Go. * [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. * [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. * [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. From 2f506f00887694f5cc34e41b11fca6d41b627ced Mon Sep 17 00:00:00 2001 From: Glen De Cauwsemaecker Date: Fri, 12 Nov 2021 11:26:47 +0100 Subject: [PATCH 2495/3440] add bqwriter to the list of Third-Party APIs The library is currently on `v0.6.0` and is already used in production for several products by OTA-Insight. We aim to have to be on a stable version in the near future. In order to do so we are waiting on: - the stabilisation of the Storage API used for one of three possible clients under the hood; - opt-in data write error handling with managed retry: decide whether we want it or not, and if so, lock this into the API; --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8e61ef5caef..c721b299948 100644 --- a/README.md +++ b/README.md @@ -2126,6 +2126,7 @@ _**Unofficial** set of patterns for structuring projects._ * [appstore-sdk-go](https://github.com/Kachit/appstore-sdk-go) - Unofficial Golang SDK for AppStore Connect 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. +* [bqwriter](https://github.com/OTA-Insight/bqwriter) - High Level Go Library to write data into [Google BigQuery](https://cloud.google.com/bigquery) at a high throughout. * [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. From e057206a1e7925e2dfdd68bd22ac92f3eb98bfe8 Mon Sep 17 00:00:00 2001 From: Charles-Antoine Mathieu Date: Wed, 24 Nov 2021 16:20:21 +0100 Subject: [PATCH 2496/3440] Add Plik to the Other Software section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Please check if what you want to add to awesome-go list meets quality standards before sending pull request. Thanks! Please provide package links to: repo link : - https://github.com/root-gg/plik/tree/master live demo : - https://plik.root.gg/#/ pkg.go.dev: - https://pkg.go.dev/github.com/root-gg/plik goreportcard.com: - https://goreportcard.com/report/github.com/root-gg/plik coverage service link (codecov, coveralls, gocover etc.): Can't get any of them to work but coverage is displayed in every build : https://github.com/root-gg/plik/runs/4300158864 ok github.com/root-gg/plik/plik 10.153s coverage: 90.1% of statements ok github.com/root-gg/plik/server/common 50.332s coverage: 87.0% of statements ok github.com/root-gg/plik/server/context 0.050s coverage: 25.3% of statements (automatically generated accessors) ok github.com/root-gg/plik/server/data/file 0.046s coverage: 89.5% of statements ok github.com/root-gg/plik/server/data/stream 0.084s coverage: 100.0% of statements ok github.com/root-gg/plik/server/data/testing 0.040s coverage: 96.4% of statements ok github.com/root-gg/plik/server/handlers 65.720s coverage: 83.9% of statements ok github.com/root-gg/plik/server/metadata 8.501s coverage: 82.1% of statements ok github.com/root-gg/plik/server/middleware 0.298s coverage: 90.2% of statements ok github.com/root-gg/plik/server/server 2.103s coverage: 75.9% of statements Tests are also run against compatible backends using Docker images (see the test-backends step) Make sure that you've checked the boxes below before you submit PR: not every repository (project) will fit into every option, but most projects should I have added my package in alphabetical order. YES I have an appropriate description with correct grammar. YES I know that this package was not listed before. YES I have added pkg.go.dev link to the repo and to my pull request. YES I have added coverage service link to the repo and to my pull request. See above I have added goreportcard link to the repo and to my pull request. YES I have read Contribution guidelines, maintainers note and Quality standard. YES Thanks for your PR, you're awesome! 👍 No YOU are awesome :) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c721b299948..efff0a870a4 100644 --- a/README.md +++ b/README.md @@ -2821,6 +2821,7 @@ _**Unofficial** set of patterns for structuring projects._ * [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. * [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. +* [Plik](https://github.com/root-gg/plik) - Plik is a temporary file upload system (Wetransfer like) in Go. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. From abf87067b09dfb55722fea0c104a7583c0d36d38 Mon Sep 17 00:00:00 2001 From: Eze Olea Figueroa Date: Mon, 15 Nov 2021 08:29:13 +0100 Subject: [PATCH 2497/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c721b299948..3eed650ac27 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. * [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. * [Kelp](https://github.com/stellar/kelp) - official trading and market-making bot for the [Stellar](https://www.stellar.org/) DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies. +* [larry](https://github.com/ezeoleaf/larry) - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. * [olivia](https://github.com/olivia-ai/olivia) - A chatbot built with an artificial neural network. From 5a2d653b8f1f692adfe8358c7dc9e4fe402cdece Mon Sep 17 00:00:00 2001 From: ddddddO Date: Sun, 21 Nov 2021 06:17:12 +0900 Subject: [PATCH 2498/3440] add gtree --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3eed650ac27..c082e85dbd0 100644 --- a/README.md +++ b/README.md @@ -1483,6 +1483,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. * [gotoprom](https://github.com/cabify/gotoprom) - Type-safe metrics builder wrapper library for the official Prometheus client. * [gountries](https://github.com/pariz/gountries) - Package that exposes country and subdivision data. +* [gtree](https://github.com/ddddddO/gtree) - Provide CLI and Package to generate tree from Markdown or programmatically, and the output is JSON/YAML/TOML/tree command. * [health](https://github.com/alexliesenfeld/health) - A simple and flexible health check library for Go. * [health](https://github.com/dimiro1/health) - Easy to use, extensible health check library. * [healthcheck](https://github.com/etherlabsio/healthcheck) - An opinionated and concurrent health-check HTTP handler for RESTful services. From 5b8f31dc3f0b271d41037c2d7d982df971145d0d Mon Sep 17 00:00:00 2001 From: Leo Antunes Date: Wed, 8 Dec 2021 05:54:50 +0100 Subject: [PATCH 2499/3440] add github.com/alecthomas/kong (#3930) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c082e85dbd0..9a5c59d69b4 100644 --- a/README.md +++ b/README.md @@ -273,7 +273,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. * [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection. * [job](https://github.com/liujianping/job) - JOB, make your short-term command as a long-term job. -* [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands. +* [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands (superseded by `kong`; see below). +* [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (succesor to `kingpin`). * [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. * [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. @@ -372,6 +373,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. * [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. * [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. +* [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (succesor to `kingpin`). * [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. * [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. * [onion](https://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. From 18ce4a209e4c387f69be66db036d30d0523582d5 Mon Sep 17 00:00:00 2001 From: Alexei Shevchenko Date: Wed, 8 Dec 2021 08:02:05 +0300 Subject: [PATCH 2500/3440] add crawley, with fixed coverage link (#3897) --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9a5c59d69b4..af654875d57 100644 --- a/README.md +++ b/README.md @@ -1571,7 +1571,7 @@ _**Unofficial** set of patterns for structuring projects._ * [cidranger](https://github.com/yl2chen/cidranger) - Fast IP to CIDR lookup for Go. * [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. -* [dnsmonster](https://github.com/mosajjal/dnsmonster) - Passive DNS Capture/Monitoring Framework +* [dnsmonster](https://github.com/mosajjal/dnsmonster) - Passive DNS Capture/Monitoring Framework * [easytcp](https://github.com/DarthPestilane/easytcp) - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. * [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. @@ -1816,7 +1816,7 @@ _**Unofficial** set of patterns for structuring projects._ * [acmetool](https://github.com/hlandau/acme) - ACME (Let's Encrypt) client tool with automatic renewal. * [acra](https://github.com/cossacklabs/acra) - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system. -* [age](https://github.com/FiloSottile/age) - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. +* [age](https://github.com/FiloSottile/age) - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. * [argon2-hashing](https://github.com/andskur/argon2-hashing) - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package. * [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. * [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. @@ -2294,7 +2294,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. * [goval](https://github.com/maja42/goval) - Evaluate arbitrary expressions in Go. * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. -* [grofer](https://github.com/pesos/grofer) - A system and resource monitoring tool written in Golang! +* [grofer](https://github.com/pesos/grofer) - A system and resource monitoring tool written in Golang! * [gubrak](https://github.com/novalagung/gubrak) - Golang utility library with syntactic sugar. It's like lodash, but for golang. * [handy](https://github.com/miguelpragier/handy) - Many utilities and helpers like string handlers/formatters and validators. * [hostctl](https://github.com/guumaster/hostctl) - A CLI tool to manage /etc/hosts with easy commands. @@ -2793,6 +2793,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. * [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. +* [crawley](https://github.com/s0rg/crawley) - Web scraper/crawler for cli. * [croc](https://github.com/schollz/croc) - Easily and securely send files or folders from one computer to another. * [Docker](https://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. * [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. @@ -3115,7 +3116,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. * [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. -* [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs +* [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. From 1c65ebae8bad7be4412de24bff7fc17e0b462d40 Mon Sep 17 00:00:00 2001 From: Vladislav Trotsenko Date: Wed, 8 Dec 2021 07:06:52 +0200 Subject: [PATCH 2501/3440] Add smtpmock (#3926) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af654875d57..a40436cb6d5 100644 --- a/README.md +++ b/README.md @@ -790,6 +790,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [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. +* [smtpmock](https://github.com/mocktools/go-smtp-mock) - Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP behaviour for your test environment. **[⬆ back to top](#contents)** From 7d07c7672c8d1bf2d9c2cfb489d9a261cf7f4ebd Mon Sep 17 00:00:00 2001 From: David Zhang Date: Thu, 18 Nov 2021 12:06:25 +0800 Subject: [PATCH 2502/3440] add go-lark --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a40436cb6d5..64f9df00508 100644 --- a/README.md +++ b/README.md @@ -2154,6 +2154,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-here](https://github.com/abdullahselek/go-here) - Go client library around the HERE location based APIs. * [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-lark](https://github.com/go-lark/lark) - An easy-to-use unofficial SDK for [Feishu](https://open.feishu.cn/) and [Lark](https://open.larksuite.com/) Open Platform. * [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](https://myanimelist.net/apiconfig/references/api/v2). * [go-openproject](https://github.com/manuelbcd/go-openproject) - Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API. From 7ed1836a05f68d0f334935df8b6ce93b25549f7d Mon Sep 17 00:00:00 2001 From: Aaron M Date: Sun, 21 Nov 2021 09:32:13 -0700 Subject: [PATCH 2503/3440] Add bqb "Basic Query Builder" A novel query builder with 100% coverage, A+ Go Report, full documentation, and at least monthly updates. * [x] I have added my package in alphabetical order. * [x] I have an appropriate description with correct grammar. * [x] I know that this package was not listed before. * [x] I have added pkg.go.dev link to the repo and to my pull request. * [x] I have added coverage service link to the repo and to my pull request. * [x] I have added goreportcard link to the repo and to my pull request. * [x] 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-standards). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 64f9df00508..c97c576848a 100644 --- a/README.md +++ b/README.md @@ -585,6 +585,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *SQL query builder, libraries for building and using SQL.* +* [bqb](https://github.com/nullism/bqb) - Lightweight and easy to learn query builder. * [buildsqlx](https://github.com/arthurkushman/buildsqlx) - Go database query builder library for PostgreSQL. * [dbq](https://github.com/rocketlaunchr/dbq) - Zero boilerplate database operations for Go. * [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use them with ease. From b7e8a93557f1ec34ff9184a6d19f44fcd8f6c844 Mon Sep 17 00:00:00 2001 From: Gustavo Chain Date: Sat, 13 Nov 2021 19:34:27 +0100 Subject: [PATCH 2504/3440] add sqlhooks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c97c576848a..f019698f1b8 100644 --- a/README.md +++ b/README.md @@ -629,6 +629,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. * [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. + * [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver. * NoSQL Databases * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. From 53840d0b9bdcd5849ee1ef4fbd0a177721fab78f Mon Sep 17 00:00:00 2001 From: Sergey Treinis Date: Wed, 27 Oct 2021 17:16:13 +0300 Subject: [PATCH 2505/3440] HnH/di --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f019698f1b8..05fc7fd9812 100644 --- a/README.md +++ b/README.md @@ -1416,6 +1416,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. * [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. +* [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. * [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. * [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. * [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, and http endpoints, and service startup. From ebb5ae54c230961ff36821a040ebeda80e081f45 Mon Sep 17 00:00:00 2001 From: Christophe Meessen Date: Thu, 9 Dec 2021 03:48:02 +0100 Subject: [PATCH 2506/3440] add the github.com/chmike/varint package in the Miscellaneous/Uncategorized section (#3925) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 05fc7fd9812..c4168b42b74 100644 --- a/README.md +++ b/README.md @@ -1510,6 +1510,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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... * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. * [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. +* [varint](https://github.com/chmike/varint) - A faster varying length integer encoder/decoder than the one provided in the standard library. * [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and output handling. * [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go. * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber. From dc050ea1c2fe0ce27621f836d6792a38520a3ac7 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Thu, 9 Dec 2021 08:21:13 +0530 Subject: [PATCH 2507/3440] varint: fix alphabetical order (#3932) Change alphabetical order for #3925 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c4168b42b74..d04c7893cd7 100644 --- a/README.md +++ b/README.md @@ -1510,8 +1510,8 @@ _**Unofficial** set of patterns for structuring projects._ * [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... * [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. * [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. -* [varint](https://github.com/chmike/varint) - A faster varying length integer encoder/decoder than the one provided in the standard library. * [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and output handling. +* [varint](https://github.com/chmike/varint) - A faster varying length integer encoder/decoder than the one provided in the standard library. * [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go. * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber. From 910a69fb64ab2e5a4a79c6bd92bd1b6a9466c401 Mon Sep 17 00:00:00 2001 From: Tim Heckman Date: Sat, 11 Dec 2021 03:59:47 -0800 Subject: [PATCH 2508/3440] spinner: move to Advanced Console UIs (#3933) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d04c7893cd7..5920d4c2421 100644 --- a/README.md +++ b/README.md @@ -317,6 +317,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. * [pterm](https://github.com/pterm/pterm) - A library to beautify console output on every platform with many combinable components. * [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. +* [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. * [tabby](https://github.com/cheynewallace/tabby) - A tiny library for super simple Golang tables. * [table](https://github.com/tomlazar/table) - Small library for terminal color based tables . * [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. @@ -2364,7 +2365,6 @@ _**Unofficial** set of patterns for structuring projects._ * [sliceconv](https://github.com/Henry-Sarabia/sliceconv) - Slice conversion between primitive types. * [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. * [sorty](https://github.com/jfcg/sorty) - Fast Concurrent / Parallel Sorting. -* [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. * [sshman](https://github.com/shoobyban/sshman) - SSH Manager for authorized_keys files on multiple remote servers. * [statiks](https://github.com/janiltonmaciel/statiks) - Fast, zero-configuration, static HTTP filer server. From 9a272b8db91f688822a4f96668dfb769fd621f17 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sat, 11 Dec 2021 23:00:38 +1100 Subject: [PATCH 2509/3440] update description with a newly supported hash - BLAKE2s (#3922) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5920d4c2421..62e580deef3 100644 --- a/README.md +++ b/README.md @@ -850,7 +850,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [afs](https://github.com/viant/afs) - Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go. * [baraka](https://github.com/xis/baraka) - A library to process http file uploads easily. * [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client. -* [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5, SHA256, SHA1 or CRC, for large files. +* [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5, SHA256, SHA1, CRC or BLAKE2s, for large files. * [copy](https://github.com/otiai10/copy) - Copy directory recursively. * [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). * [gdu](https://github.com/dundee/gdu) - Disk usage analyzer with console interface From 23a2bbb579276da8d6609f591de74d7dc4901377 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 15 Dec 2021 19:34:01 -0300 Subject: [PATCH 2510/3440] netlify deploy fixed: #3815 Signed-off-by: Avelino --- .github/workflows/run-check.yaml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index ffee548ee7d..16422db7d5a 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -2,14 +2,15 @@ name: Check For Stale Repositories on: workflow_dispatch: schedule: - - cron: '0 0 * * 0' + - cron: '0 0 * * 0' jobs: build: name: Running test runs-on: ubuntu-latest + environment: netlify strategy: matrix: - go: ['1.15.x'] + go: ['1.15.x'] steps: - uses: actions/checkout@1.0.0 - name: Get dependencies @@ -17,5 +18,13 @@ jobs: go get -v -t -d ./... - name: run script run: go run test_stale_repositories.go scripts.go - env: - OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} \ No newline at end of file + env: + OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} + - name: netlify awesome-go.com + uses: jsmrcaga/action-netlify-deploy@v1.1.0 + if: contains('refs/heads/master', github.ref) + with: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + NETLIFY_DEPLOY_TO_PROD: true + build_directory: tmpl From 06ffb44df5a517f64bc88b5d3b50963319ad6eb7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Dec 2021 05:57:52 -0300 Subject: [PATCH 2511/3440] remove netlify on run-check action Signed-off-by: Avelino --- .github/workflows/run-check.yaml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index 16422db7d5a..57d7af61a34 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -14,17 +14,8 @@ jobs: steps: - uses: actions/checkout@1.0.0 - name: Get dependencies - run: | - go get -v -t -d ./... + run: go get -v -t -d ./... - name: run script run: go run test_stale_repositories.go scripts.go env: OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} - - name: netlify awesome-go.com - uses: jsmrcaga/action-netlify-deploy@v1.1.0 - if: contains('refs/heads/master', github.ref) - with: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - NETLIFY_DEPLOY_TO_PROD: true - build_directory: tmpl From a69131dfa3e63e8aa06ab3d1862f452eb0d01d77 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Dec 2021 05:58:24 -0300 Subject: [PATCH 2512/3440] go mod init Signed-off-by: Avelino --- go.mod | 30 +++++ go.sum | 410 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 440 insertions(+) create mode 100644 go.mod create mode 100644 go.sum diff --git a/go.mod b/go.mod new file mode 100644 index 00000000000..3c707fcf6c1 --- /dev/null +++ b/go.mod @@ -0,0 +1,30 @@ +module github.com/avelino/awesome-go + +go 1.17 + +require ( + github.com/PuerkitoBio/goquery v1.8.0 + github.com/russross/blackfriday v1.6.0 + github.com/shurcooL/github_flavored_markdown v0.0.0-20210228213109-c3a9aa474629 + golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 +) + +require ( + github.com/andybalholm/cascadia v1.3.1 // indirect + github.com/aymerick/douceur v0.2.0 // indirect + github.com/golang/protobuf v1.4.2 // indirect + github.com/gorilla/css v1.0.0 // indirect + github.com/microcosm-cc/bluemonday v1.0.16 // indirect + github.com/sergi/go-diff v1.2.0 // indirect + github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 // indirect + github.com/shurcooL/go-goon v0.0.0-20210110234559-7585751d9a17 // indirect + github.com/shurcooL/highlight_diff v0.0.0-20181222201841-111da2e7d480 // indirect + github.com/shurcooL/highlight_go v0.0.0-20191220051317-782971ddf21b // indirect + github.com/shurcooL/octicon v0.0.0-20191102190552-cbb32d6a785c // indirect + github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect + github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d // indirect + github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e // indirect + golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 // indirect + google.golang.org/appengine v1.6.6 // indirect + google.golang.org/protobuf v1.25.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 00000000000..c5af8e7e9f7 --- /dev/null +++ b/go.sum @@ -0,0 +1,410 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U= +github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI= +github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c= +github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= +github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= +github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= +github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/microcosm-cc/bluemonday v1.0.16 h1:kHmAq2t7WPWLjiGvzKa5o3HzSfahUKiOq7fAPUiMNIc= +github.com/microcosm-cc/bluemonday v1.0.16/go.mod h1:Z0r70sCuXHig8YpBzCc5eGHAap2K7e/u082ZUpDRRqM= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= +github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= +github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= +github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/shurcooL/github_flavored_markdown v0.0.0-20210228213109-c3a9aa474629 h1:86e54L0i3pH3dAIA8OxBbfLrVyhoGpnNk1iJCigAWYs= +github.com/shurcooL/github_flavored_markdown v0.0.0-20210228213109-c3a9aa474629/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= +github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 h1:aSISeOcal5irEhJd1M+IrApc0PdcN7e7Aj4yuEnOrfQ= +github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20210110234559-7585751d9a17 h1:lRAUE0dIvigSSFAmaM2dfg7OH8T+a8zJ5smEh09a/GI= +github.com/shurcooL/go-goon v0.0.0-20210110234559-7585751d9a17/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/shurcooL/highlight_diff v0.0.0-20181222201841-111da2e7d480 h1:KaKXZldeYH73dpQL+Nr38j1r5BgpAYQjYvENOUpIZDQ= +github.com/shurcooL/highlight_diff v0.0.0-20181222201841-111da2e7d480/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= +github.com/shurcooL/highlight_go v0.0.0-20191220051317-782971ddf21b h1:rBIwpb5ggtqf0uZZY5BPs1sL7njUMM7I8qD2jiou70E= +github.com/shurcooL/highlight_go v0.0.0-20191220051317-782971ddf21b/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= +github.com/shurcooL/octicon v0.0.0-20191102190552-cbb32d6a785c h1:p3w+lTqXulfa3aDeycxmcLJDNxyUB89gf2/XqqK3eO0= +github.com/shurcooL/octicon v0.0.0-20191102190552-cbb32d6a785c/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d h1:yKm7XZV6j9Ev6lojP2XaIshpT4ymkqhMeSghO5Ps00E= +github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= +github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e h1:qpG93cPwA5f7s/ZPBJnGOYQNK/vKsaDaseuKT5Asee8= +github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 h1:/6y1LfuqNuQdHAm0jjtPtgRcxIxjVZgm5OTu8/QhZvk= +golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From fd95e757a9183e626abffd4373ebf18f70f48d14 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Dec 2021 05:58:37 -0300 Subject: [PATCH 2513/3440] migrate travis to github actions ref: #3943 Signed-off-by: Avelino --- .github/workflows/tests.yaml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/tests.yaml diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml new file mode 100644 index 00000000000..d36343eaf51 --- /dev/null +++ b/.github/workflows/tests.yaml @@ -0,0 +1,30 @@ +name: Run tests + +on: + push: + branches: + - 'master' + pull_request: + +jobs: + build: + name: Running test + runs-on: ubuntu-latest + environment: netlify + strategy: + matrix: + go: ['1.15.x'] + steps: + - uses: actions/checkout@1.0.0 + - name: Get dependencies + run: go get -v -t -d ./... + - name: Run tests + run: go test + - name: netlify awesome-go.com + uses: jsmrcaga/action-netlify-deploy@v1.1.0 + if: contains('refs/heads/master', github.ref) + with: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + NETLIFY_DEPLOY_TO_PROD: true + build_directory: tmpl From 742acf0100942fa21e4d632b41409c3ca7857a8a Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Dec 2021 06:01:22 -0300 Subject: [PATCH 2514/3440] remove matrix support, use container: golang:latest Signed-off-by: Avelino --- .github/workflows/run-check.yaml | 5 +---- .github/workflows/tests.yaml | 4 +--- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index 57d7af61a34..d17ad7a16bf 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -7,10 +7,7 @@ jobs: build: name: Running test runs-on: ubuntu-latest - environment: netlify - strategy: - matrix: - go: ['1.15.x'] + container: golang:latest steps: - uses: actions/checkout@1.0.0 - name: Get dependencies diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index d36343eaf51..33fa80f2c0a 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -11,9 +11,7 @@ jobs: name: Running test runs-on: ubuntu-latest environment: netlify - strategy: - matrix: - go: ['1.15.x'] + container: golang:latest steps: - uses: actions/checkout@1.0.0 - name: Get dependencies From 343ab2ce6e3b03d2c313cea4485002ca9bdb3bb7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Dec 2021 06:22:40 -0300 Subject: [PATCH 2515/3440] fixed all alphabetical order Signed-off-by: Avelino --- README.md | 52 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 62e580deef3..e9247bc48ea 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem. * [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol. -* [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host +* [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host. * [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. **[⬆ back to top](#contents)** @@ -209,7 +209,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. * [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. * [Kelp](https://github.com/stellar/kelp) - official trading and market-making bot for the [Stellar](https://www.stellar.org/) DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies. -* [larry](https://github.com/ezeoleaf/larry) - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go +* [larry](https://github.com/ezeoleaf/larry) - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go. * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. * [olivia](https://github.com/olivia-ai/olivia) - A chatbot built with an artificial neural network. @@ -274,7 +274,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection. * [job](https://github.com/liujianping/job) - JOB, make your short-term command as a long-term job. * [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands (superseded by `kong`; see below). -* [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (succesor to `kingpin`). * [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. * [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. @@ -323,7 +322,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). -* [termenv](https://github.com/muesli/termenv) - Advanced ANSI style & color support for your terminal applications +* [termenv](https://github.com/muesli/termenv) - Advanced ANSI style & color support for your terminal applications. * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). * [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. * [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. @@ -370,6 +369,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [hocon](https://github.com/gurkankaymak/hocon) - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files. * [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file. * [ini](https://github.com/go-ini/ini) - Go package to read and write INI files. +* [ini](https://github.com/wlevene/ini) - INI Parser & Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file. * [joshbetz/config](https://github.com/joshbetz/config) - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. * [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. * [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. @@ -385,7 +385,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [viper](https://github.com/spf13/viper) - Go configuration with fangs. * [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). * [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). -* [ini](https://github.com/wlevene/ini) - INI Parser & Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file. **[⬆ back to top](#contents)** @@ -420,7 +419,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. * [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. * [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. -* [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go +* [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go. * [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. @@ -548,17 +547,16 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. * [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go. -* [goavro](https://github.com/linkedin/goavro) - A Go package that encodes and decodes Avro data. * [go-fixtures](https://github.com/RichardKnop/go-fixtures) - Django style fixtures for Golang's excellent built-in database/sql library. * [go-pg-migrate](https://github.com/lawzava/go-pg-migrate) - CLI-friendly package for go-pg migrations management. * [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. +* [goavro](https://github.com/linkedin/goavro) - A Go package that encodes and decodes Avro data. * [goose](https://github.com/pressly/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/golang-migrate/migrate) - Database migrations. CLI and Golang library. * [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. * [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code. * [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. -* [rel](https://github.com/go-rel/rel) - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API. * [schema](https://github.com/adlio/schema) - Library to embed schema migrations for database/sql-compatible databases inside your Go binaries. * [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. * [soda](https://github.com/gobuffalo/pop/tree/master/soda) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. @@ -853,7 +851,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5, SHA256, SHA1, CRC or BLAKE2s, for large files. * [copy](https://github.com/otiai10/copy) - Copy directory recursively. * [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). -* [gdu](https://github.com/dundee/gdu) - Disk usage analyzer with console interface +* [gdu](https://github.com/dundee/gdu) - Disk usage analyzer with console interface. * [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. * [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. * [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). @@ -1124,8 +1122,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. * [goimghdr](https://github.com/corona10/goimghdr) - The imghdr module determines the type of image contained in a file for Go. * [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. -* [gowitness](https://github.com/sensepost/gowitness) - Screenshoting webpages using go and headless chrome on command line. * [govips](https://github.com/davidbyttow/govips) - A lightning fast image processing and resizing library for Go. +* [gowitness](https://github.com/sensepost/gowitness) - Screenshoting webpages using go and headless chrome on command line. * [gridder](https://github.com/shomali11/gridder) - A Grid based 2D Graphics library. * [image2ascii](https://github.com/qeesung/image2ascii) - Convert image to ASCII. * [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. @@ -1577,7 +1575,7 @@ _**Unofficial** set of patterns for structuring projects._ * [cidranger](https://github.com/yl2chen/cidranger) - Fast IP to CIDR lookup for Go. * [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. -* [dnsmonster](https://github.com/mosajjal/dnsmonster) - Passive DNS Capture/Monitoring Framework +* [dnsmonster](https://github.com/mosajjal/dnsmonster) - Passive DNS Capture/Monitoring Framework. * [easytcp](https://github.com/DarthPestilane/easytcp) - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. * [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. @@ -1832,8 +1830,8 @@ _**Unofficial** set of patterns for structuring projects._ * [CertMagic](https://github.com/caddyserver/certmagic) - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal. * [dongle](https://github.com/golang-module/dongle) - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption. * [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. -* [go-htpasswd](https://github.com/tg123/go-htpasswd) - Apache htpasswd Parser for Go. * [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. +* [go-htpasswd](https://github.com/tg123/go-htpasswd) - Apache htpasswd Parser for Go. * [go-password-validator](https://github.com/lane-c-wagner/go-password-validator) - Password validator based on raw cryptographic entropy values. * [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)". * [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. @@ -1951,7 +1949,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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/). * [sprig](https://github.com/Masterminds/sprig) - Useful template functions for Go templates. -* [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata +* [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata. * [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go. **[⬆ back to top](#contents)** @@ -2060,7 +2058,7 @@ _**Unofficial** set of patterns for structuring projects._ * Specific Formats * [align](https://github.com/Guitarbum722/align) - A general purpose application that aligns text. * [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. - * [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates + * [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates. * [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. @@ -2135,8 +2133,8 @@ _**Unofficial** set of patterns for structuring projects._ * [anaconda](https://github.com/ChimeraCoder/anaconda) - Go client library for the Twitter 1.1 API. * [appstore-sdk-go](https://github.com/Kachit/appstore-sdk-go) - Unofficial Golang SDK for AppStore Connect 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. * [bqwriter](https://github.com/OTA-Insight/bqwriter) - High Level Go Library to write data into [Google BigQuery](https://cloud.google.com/bigquery) at a high throughout. +* [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. * [clarifai](https://github.com/samuelcouch/clarifai) - Go client library for interfacing with the Clarifai API. @@ -2354,7 +2352,7 @@ _**Unofficial** set of patterns for structuring projects._ * [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. * [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. -* [rospo](https://github.com/ferama/rospo) - Simple and reliable ssh tunnels with embedded ssh server in Golang +* [rospo](https://github.com/ferama/rospo) - Simple and reliable ssh tunnels with embedded ssh server in Golang. * [scan](https://github.com/blockloop/scan) - Scan golang `sql.Rows` directly to structs, slices, or primitive types. * [scany](https://github.com/georgysavva/scany) - Library for scanning data from a database into Go structs and more. * [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. @@ -2643,8 +2641,8 @@ _**Unofficial** set of patterns for structuring projects._ * [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. * [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#. * [tarp](https://github.com/verygoodsoftwarenotvirus/tarp) - tarp finds functions and methods without direct unit tests in Go source code. -* [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. * [tickgit](https://github.com/augmentable-dev/tickgit) - CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`to identify the author. +* [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. * [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. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. @@ -2723,12 +2721,12 @@ _**Unofficial** set of patterns for structuring projects._ * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. * [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. * [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. -* [Balerter](https://github.com/balerter/balerter) - A self-hosted script-based alerting manager +* [Balerter](https://github.com/balerter/balerter) - A self-hosted script-based alerting manager. * [Blast](https://github.com/dave/blast) - A simple tool for API load testing and batch jobs. * [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. * [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. * [cassowary](https://github.com/rogerwelin/cassowary) - Modern cross-platform HTTP load-testing tool written in Go. -* [Ddosify](https://github.com/ddosify/ddosify) - High-performance load testing tool, written in Golang. +* [Ddosify](https://github.com/ddosify/ddosify) - High-performance load testing tool, written in Golang. * [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. * [docker-go-mingw](https://github.com/x1unix/docker-go-mingw) - Docker image for building Go binaries for Windows with MinGW toolchain. * [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. @@ -2908,7 +2906,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) * [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) * [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) -* [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. +* [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. * [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. * [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. * [Go Bootcamp](http://golangbootcamp.com) @@ -2948,8 +2946,8 @@ _**Unofficial** set of patterns for structuring projects._ ## Meetups * [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) -* [Belgrade Golang Meetup](https://www.meetup.com/golang-serbia/) * [Belfast Gophers](https://www.meetup.com/Belfast-Gophers/) +* [Belgrade Golang Meetup](https://www.meetup.com/golang-serbia/) * [Berlin Golang](https://www.meetup.com/golang-users-berlin/) * [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) * [Canberra Gophers](https://www.meetup.com/Canberra-Gophers/) @@ -3047,8 +3045,8 @@ _**Unofficial** set of patterns for structuring projects._ ## Websites * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. -* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. * [Awesome Golang Workshops](https://github.com/amit-davidson/awesome-golang-workshops) - A curated list of awesome golang workshops. +* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. * [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. * [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. @@ -3102,13 +3100,15 @@ _**Unofficial** set of patterns for structuring projects._ * [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. * [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +* [Go Language Tutorial](https://www.javatpoint.com/go-tutorial) - Learn Go language Tutorial. * [Go Playground for iOS](https://codeplayground.app) - Interactively edit & play Go snippets on your mobile device. +* [Go Tutorial](https://www.tutorialspoint.com/go/index.htm) - Learn Go programming. * [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) * [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services. * [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. * [goapp](https://github.com/bnkamalesh/goapp) - An opinionated guideline to structure & develop a Go web application/service. * [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. -* [Golang Tutorial Guide](https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/) - A List of Free Courses to Learn the Go Programming Language +* [Golang Tutorial Guide](https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/) - A List of Free Courses to Learn the Go Programming Language. * [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. * [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. * [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. @@ -3119,15 +3119,13 @@ _**Unofficial** set of patterns for structuring projects._ * [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. * [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes. * [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. +* [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example. * [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. * [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. * [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. -* [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs +* [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs. * [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) * [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. * [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. -* [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example -* [Go Tutorial](https://www.tutorialspoint.com/go/index.htm) - Learn Go programming -* [Go Language Tutorial](https://www.javatpoint.com/go-tutorial) - Learn Go language Tutorial **[⬆ back to top](#contents)** From 86b42c5976c640ae2fc79c2d9f7341fb4d3a8d94 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Dec 2021 06:24:38 -0300 Subject: [PATCH 2516/3440] remove travis ci config Signed-off-by: Avelino --- .travis.yml | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9566bf48086..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: go - -go: - - 1.x - -sudo: false - -install: - - go get -t -v ./... - -before_deploy: - - . $HOME/.nvm/nvm.sh - - nvm install 10 && nvm use 10 - - npm install netlify-cli -g - -deploy: - provider: script - script: netlify deploy --dir=tmpl --prod - skip_cleanup: true - on: - branch: master From 7c2f4ea8952cbb9dc68f3f4da287e2981b9c2df7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Dec 2021 08:25:53 -0300 Subject: [PATCH 2517/3440] rename all hard ref branch master to main Signed-off-by: Avelino --- .github/PULL_REQUEST_TEMPLATE.md | 4 ++-- .github/workflows/tests.yaml | 2 +- CODE_OF_CONDUCT.md | 4 ++-- CONTRIBUTING.md | 2 +- MAINTAINERS | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 779cc095e3b..2fb9de39a2c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,4 @@ -> Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! +> Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! **Please provide package links to:** @@ -18,6 +18,6 @@ _not every repository (project) will fit into every option, but most projects sh - [ ] I have added pkg.go.dev 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-standards). +- [ ] I have read [Contribution guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#contribution-guidelines), [maintainers note](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#maintainers) and [Quality standard](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards). Thanks for your PR, you're awesome! :+1: diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 33fa80f2c0a..6ecf34b7596 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -3,7 +3,7 @@ name: Run tests on: push: branches: - - 'master' + - 'main' pull_request: jobs: diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 2bb25d84533..9807c1ff464 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -55,7 +55,7 @@ If a community member engages in unacceptable behavior, the community organizers If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. t@avelino.xxx. -[Reporting Guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#contribution-guidelines) +[Reporting Guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#contribution-guidelines) Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress. @@ -63,7 +63,7 @@ Additionally, community organizers are available to help community members engag If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify Avelino with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies. -[Policy](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) +[Policy](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md) ## 8. Scope diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6bd5377c488..791eee55c55 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,7 +18,7 @@ To set this list apart from and complement the excellent [Go wiki Projects page] Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. -If you removed our PR template you can find it [here](https://github.com/avelino/awesome-go/blob/master/.github/PULL_REQUEST_TEMPLATE.md). +If you removed our PR template you can find it [here](https://github.com/avelino/awesome-go/blob/main/.github/PULL_REQUEST_TEMPLATE.md). ## Quality standards diff --git a/MAINTAINERS b/MAINTAINERS index 9ffa7808bd8..632b7fd62d5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1,4 +1,4 @@ -Avelino (@avelino) +Avelino (@avelino) Duke (@dukex) Dmitri Shuralyov (@dmitshur) Dobrosław Żybort (@matrixik) From 964a11573c1bce2f939d60bd6801c978881097c7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Dec 2021 08:34:41 -0300 Subject: [PATCH 2518/3440] fixed typo netlify deploy, main branch Signed-off-by: Avelino --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 6ecf34b7596..15435fd591a 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -20,7 +20,7 @@ jobs: run: go test - name: netlify awesome-go.com uses: jsmrcaga/action-netlify-deploy@v1.1.0 - if: contains('refs/heads/master', github.ref) + if: contains('refs/heads/main', github.ref) with: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} From 3fcacc222160a924be8c66f2cee0ab17500b54b8 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 16 Dec 2021 08:42:48 -0300 Subject: [PATCH 2519/3440] change travis badge to gh action Signed-off-by: Avelino --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e9247bc48ea..42f5ba6345b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# awesome-go Awesome Go +# awesome-go Awesome Go -[![Build Status](https://travis-ci.com/avelino/awesome-go.svg?branch=master)](https://travis-ci.com/avelino/awesome-go) +[![Build Status](https://github.com/avelino/awesome-go/actions/workflows/tests.yaml/badge.svg?branch=main)](https://github.com/avelino/awesome-go/actions/workflows/tests.yaml?query=branch%3Amain) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](https://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) From f30820a342de2e5ad17abeb2d5459e62e35fb514 Mon Sep 17 00:00:00 2001 From: Kei Kamikawa Date: Fri, 17 Dec 2021 18:02:55 +0900 Subject: [PATCH 2520/3440] added neo cowsay (#3896) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 42f5ba6345b..2a151235e43 100644 --- a/README.md +++ b/README.md @@ -2827,6 +2827,7 @@ _**Unofficial** set of patterns for structuring projects._ * [mockingjay](https://github.com/quii/mockingjay-server) - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. * [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go. +* [Neo-cowsay](https://github.com/Code-Hex/Neo-cowsay) 🐮 cowsay is reborn. for a New Era. * [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. * [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. From 28903c8bb149b77aa424a883906f59fe075d0f94 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 17 Dec 2021 14:42:46 +0530 Subject: [PATCH 2521/3440] Revert "added neo cowsay (#3896)" (#3948) This reverts commit 43ce0f614aef75f87eda55c125290d36ed3ed36e. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 2a151235e43..42f5ba6345b 100644 --- a/README.md +++ b/README.md @@ -2827,7 +2827,6 @@ _**Unofficial** set of patterns for structuring projects._ * [mockingjay](https://github.com/quii/mockingjay-server) - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. * [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go. -* [Neo-cowsay](https://github.com/Code-Hex/Neo-cowsay) 🐮 cowsay is reborn. for a New Era. * [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. * [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. From af196ee82d1a79cbb18ef2fdd4e611a85f9c82d4 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 17 Dec 2021 14:52:15 +0530 Subject: [PATCH 2522/3440] re-add neo-cowsay (#3949) #3896 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 42f5ba6345b..8ea023a5920 100644 --- a/README.md +++ b/README.md @@ -2827,6 +2827,7 @@ _**Unofficial** set of patterns for structuring projects._ * [mockingjay](https://github.com/quii/mockingjay-server) - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. * [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. * [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go. +* [Neo-cowsay](https://github.com/Code-Hex/Neo-cowsay) - 🐮 cowsay is reborn. for a New Era. * [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. * [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. From b3557e29fa4de19b894a2a43a6d13c8c107774ee Mon Sep 17 00:00:00 2001 From: chyroc Date: Mon, 20 Dec 2021 12:25:19 +0800 Subject: [PATCH 2523/3440] feat: add lark sdk (#3941) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ea023a5920..0064f521643 100644 --- a/README.md +++ b/README.md @@ -2190,6 +2190,7 @@ _**Unofficial** set of patterns for structuring projects._ * [hipchat (xmpp)](https://github.com/daneharrigan/hipchat) - A golang package to communicate with HipChat over XMPP. * [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). * [kanka](https://github.com/Henry-Sarabia/kanka) - Go client for the [Kanka API](https://kanka.io/en-US/docs/1.0). +* [lark](https://github.com/chyroc/lark) - [Feishu](https://open.feishu.cn/)/[Lark](https://open.larksuite.com/) Open API Go SDK, Support ALL Open API and Event Callback. * [lastpass-go](https://github.com/ansd/lastpass-go) - Go client library for the [LastPass](https://www.lastpass.com/) API. * [libgoffi](https://github.com/clevabit/libgoffi) - Library adapter toolbox for native [libffi](https://sourceware.org/libffi/) integration * [Medium](https://github.com/Medium/medium-sdk-go) - Golang SDK for Medium's OAuth2 API. From 15d426424bcf566e2eb559f4b85bb1747911dda9 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 21 Dec 2021 12:10:08 -0300 Subject: [PATCH 2524/3440] add @doppler new sponsorship Signed-off-by: Avelino --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0064f521643..d7ecd6ba269 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,15 @@ ## Sponsorships -> [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) + +[![Doppler](https://github.com/avelino/awesome-go/raw/main/tmpl/assets/sponsors/doppler.png)](https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesomego&utm_source=github) + +[![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) **Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community._ -A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). +> A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). + ### Contributing From 0ade5a2ee34f0696c999ff594463cf226be557fb Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 21 Dec 2021 12:10:42 -0300 Subject: [PATCH 2525/3440] add sponsor img Signed-off-by: Avelino --- tmpl/assets/sponsors/doppler.png | Bin 0 -> 62835 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tmpl/assets/sponsors/doppler.png diff --git a/tmpl/assets/sponsors/doppler.png b/tmpl/assets/sponsors/doppler.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf3a481feddb0dbd75d815f7e5ae8d76f14c36a GIT binary patch literal 62835 zcmeFY1y@|lwl>^okPsRVgg|3~;O^46TW}}11b25&kYK?H5F}V|g1fs*a0~8k?;?BO zbN0FS{(*0NmoXMyz1FIlB~zaHRCSnwoH!Z^0SX8NLX(sbc?SZ)LqQ-IBP2xN4&+9z z2LyWl-dtE%K~h*4qF`@hV*bGx1d<4gPkg4Wq=wgW_$rCK2nuf$*eEg!AC1u#4uL3v zjC4u^yT%Fo8Fjp7(W=l!Jqb+leb*sR^ODzL zhQl!5WooR)k_R3rO|D5MA!G+Ont?95TRiZ`o7~(o2_0XM3=GPEFNzh@5}Xt@(MsR0BspqkJcriw05e?AL+ z0T;+C-Z^WbTd*p_c1Tz$`Eg6g8rD~4?Q~-nWL6`{SEvw;c5f!&zekNDl>_?y68Zu= z^jfGVELwbHOJ3<1w&%r&F5*uDW}Z{jj9H)446eP5;b9^ZC*1&{7x7d^Zg(1wrsfYd z>sxO_Hh%%+F7Emyp^& z`muPc|JjzxY|UGTSWbdRj!x3W=tnit)eh_)We}sqS8^`Ia&{v)QEQ>NIm8NTOb5f@ z59@udDtGMBv!v!Cp>qNW=@jTu(=+`iIKtNk6b8r)V(mBxs~r+fUOzNpd>FmSdeBJU zQkwTfNiZ?FQ{jE3VwFkbnWF#v#{8u7pch4GmCew@*v*c>BbBxi zhQa$}VkXk3ABC-p1;x06`;0^t+#U4%A{`nbWaZye9vjC8mgK<56DHw4mH8eXMgFE{2@X6GabFY-Le+6V^tC% zTfFR-&cXsnp;2ifsvvQo)diuA_fjL#0Sjbvbthgduq(0);%p!UHTn&6*AvzTE$ecX zP$=}FPI7BIk+kIbz4)cr)k3Ha_v}jy&k^DSpe5p+!gm zwy#C%$BPf}TCFb>&@TMoGBF5YC|ib?d28WI{N`=%9sNu*@fr~Ck^G~<+-=a07^oe% zc4EIU*fB!`Nk%1jKZhGZW<#+RNgbkXqM41@$}wgmCm;flkQl5UjU2e2LBGW7Vw$5b zse;E8;3l3|33q3Hhzk(=8ur_W^;KFV?$?Ns4KoDIpaaoYBUr!P&Isnh_=Rs7ea+v? z3}8C6&b-8n=p6e&D-$``E>&h+u_@>*a?&c%?Nr*?2*Mtbdj6B1HDb?pu~xml6WQIA=xdND5;ZEV?}XGWHE*|#f2gSSF`w0$Uja#AcCq~9XOEnd`U%)24?;<;z^`uae6 z|N4gVoS2z0m@S|m%-HmP&nVTv5g&}UhvtgNg=ma;`+N?~9qk;A4=onWlt7h$h;7fv zK!)c{R8qHgD{o7~kf%V~2YAy!vyL&0b29oUS3}k@su>9*WsAzC-^rsMh6#3G>`IQQ z*TmN9-_(Z1_QJ>FztNJBOFH|=`f^*~9b>uUx?fCla#pTf?s0B~tjiZ&#(fqRjtIus zBr8T9^C`n2R&@4ZCOu231WCNgthR1D>!uGe=qlDF!{ z&#P0K<~eH&YD{XHf2I9GIEX(`pL8|C;m>+Hu;UN5^GaMvb1|5=^tez0RG(z2$vIWEC+D zLA}FXJE#!k-E!eO1Xa}+Tdr;yg7ibY6;wt7^mp~&9~~@H5{k>cFlE?s3$+a8U03LN zRYL4SUqgY7`U!~+%?f=ST^eQnr8C1XYF?fO`UZ|R8Utq$X>t-~YI~J+v~+y=mco_u z$Wwd{7i}$UI%*ON!-)X1JTo`PQ&-2k+GESErLeM3Fwl&w9E3V@_te412SQc2il)>aB5)EnV(K#{}vQv_B@+Feqv6#u_+}|8lzl1qZ zrpvQQ#^qY6&Ogm@gfq2L|*KkT`(;vjx zQoN#IuqSn>-fZaoG`JAU6P@_EMj#_KBgRMlJHudnwJb{pyMt!PfQBmRZt4Mt*TR{u zTbySNtfGu6E6&T7s7q9-XB#zrw?TeE@j*7GtI6TEWVPOJ zL!*CQ&9!u<{B!NQx|5slnJSZo=c;(c-nAxo$-z}cRo^W2ic{(iKKwMjo;sg6?>kS! z8O4!(^?|+U*U|fI*R`s?=)U_D84kLIGm{G2(+#>-t(}@=E4uj`?-Zl?!F`PRSKs%( z_ql*wun$}tSlqU@b@p`F>Sdi1_aAD->+&kNo9c?Y@^W*hDxF1NYvvX0E~YeHjx~*V z$)3}n&tI}!CVHVasd+!%qT>r_3xJ(6&mp(^_fgdX*4!PO%5%P~0~WunusNLBzp*4+LH(sgUiz<&A4(+p_GmgEN z?;N^kA`KG*=rd|D-8Z%h8w$5dJGFOf(;e?OKb^fw;|Su&SnR7mU!88#yR~7c6|Pls zSG%;n<{S4=Y36#UZXT~c{e3@ji$_GxTYIl?bTmuWnT@U!K{QUBC{X75?sVdQJLcf% zK)PA}rg1lEPs2yPm)PCsgZshJUAI8MW5WnfS0 z-vuB>`c}g>^7AAc1@JkSQ*?`u!TC>Hg$9_JNm%GRM$mWp)4}L{+?LbKO&0@3C?9Wd ziWs&A(Sd~?tLrLB!|Ru>=7^vIeBY=OKfi}TI5^@Je4Kg&XuspRh7yH{EBnl5VU}e& z;o=rVFs(<7=JPM{8g{#7H8bA%hKOPa{af~bKq5(plK0E7UPV1SDs z=GDK-VlY%7xIgz{L7)(G5d7co$N`^Ef6>78ROhcxxX;0$XTUd1;Bw7`{jay-p_y?1 zRfaJFo`D3Fge4_`PbEWpV`FOvGaJW{BQa&*2C}V$h64zMOYwBUNWLRK0@|N8S5|ja zmzCi*w6UUpZ)9U&Oz&!C`_vAI*OeP6S{XaOhqzjOuy){fL#l^+I$jrdZOb5I{=ip}T_}-Py+JWq^M*gcE5n~5KdvjYya~o^OQ@igCY@8hV zNJ*ar{p;_qej2-)|67u^!{5UK2FURAgn@~kk>Ou$166sS?s6-byBdE`7csX2<_wU* z&&0^d$@{0m|9JFok$+WHaWJ+Qwy^?gI`aQ}*8i^j&xilL;vbnB|CY(Z#{N%{|9J9u zOgMy&*;MJNh1~EeOV8 zJjP*gMZjTDP*8M5&T}EXTJ`f6X=qtzD}CmpC%D=h6YUF*1g*%G*FWAkSy>T}SFkLM zvyAiH77v@&+~k+6X)W+6HM{K;lz6{-4g(AJ1;Il=Fi23)zlx5Ge)RCsFAj8)5&z@< zpI4wz5KQ2!|D~Q^B&9EC>{v$zj^sa^d#VNntq}cBLD0-KWQeb$C*C;ppYs3i3K&}Z z?7#Kw>B(j|P@WKD=G6_&)~wG#rnAkNsaw z{oio@Z*~4p*#MjUKil~~SMdKsSKwETadm&vDz-X<}X)el~c!X-VUI70uAfJQ|I10T(Nf#T%ff<*G; z;@aC`K+S#d^Q4#RZ(G$(zzg@jGHNjWSAwtO>s;S&b|Bsm*jGNeera2U_m#SBEP>2W;LpW7rIOc5zz{)cIMgJcTW7Dnum}nhp*O|0fWtOa#Pv zTq|+ILl~jUH}kgxsl+{ap;!V&2+UoYCgf?^xyVF{{U7s3z7{oBg~FrwSk-lg%7T+L z*MiV=N;AFUv+oaD3_6f$bY+l-W*tY*9_nfu9pkP?EZ0}#|C_7`KvsQ^5DJ=#{}cO}!2!$04$YH5foH;SlYWJ+2BMpOC85mcCQjSI48^`sSFTl%lSA4jmf1zXwzpbvLq1(9?)q8IGQf7O>d87v2b*BB@i|YJ_B2 z*=(TnAd3G z8V;dRD`72EEkD|Nl-b%rW-%RN#d;%y1P>DidwbaI!( zV?pluyL8dE1?CyNmB8Im`=>9JJo#uSJK{@;ZZ|4cNzBGl^K$>uwkj9Dbhy}Y~o$fQtEa8qP|o_@-8h@$THeC{tG<|cebd6qeXZTS3`VA26wjC z>nIc=IVf^oC1(UWLoH|j3uFo@N|=tYH^TBsNtfY@o9m4sAxQQ^Tw7m^`xBD#m*1yo zn2kV{dG^sz3N9${x$#qWmzS-W~s~Cs5fa6j!{vgv{1p3f?as#WGqpyP*Jg#7Lfl+T|uea4&L9|5HMQEdppFB-#iL zC`#)Kmoka#jaqs)yen+wlm;W?eFbCQARdn!DZ{0?7z7z0gS$}3SD0+>SH=NXX?p#h z0SO*wW3%LR`l^5-e1XZ7iFAo@h?XR@Lzxsj5l+dhOWikJC^t(h^M z>0mM&rrT%RS_ihzp28vvOI@q z??~X)tjTM0n?Er_V z8RNM{m^1x+%EGAd06Vuoe^%uOf+vNyzSU}WOFMr?>IT8)7ixwKQHJi(rP@T>R((-8 zLZW3Z`n{Z2cBS4OtE8h`8L6h}-GPA4P~<8ok|pLizePsU$s?$;rxrHqrjuPq$oq5N zb2c1ejJ^+s@?xRAWbGNx{F){hps0aw)-v&ZWDmx=5Fwh1qpG+^P`?lXyo8Gk!E_AA z6mrbaaanL`)uW3DG+82U`c$>*TqZvyoxp{PM=wJ}WZygq8(R9YBdT2e=!zRd_(@ff z0aX`#x#N{N)99{pdI^_H^XTU9q-0;E#SuA}4y73U z>+7uyy&35EmX>^xIsKwcQ~H@`u3|ky{a$&l46%70h*XRK{=2;K@tB#}B}5ySWG7F| zXL8!Hf~K^goSqN~Vkfhjajt8T2wJtI_j76WN04=E^1|=<<8Z*3P!O`l4+I#bxagMH zVS-Z=9-PhU$!dG&?_q)9X6}zs6z+kzq?jVV;;=c`I@$VA(F6Pg8^r`~zxrZuvwX^p z(hLkF4Jj$172mqAn!CWI9No=QvU2pC|5P`?R?(f@i?uH&DU1&fj>?@3;71c-fBtqbpbYXr{qCVfQ{7O$ZbmVo>qA`gZYQr!a?m?#dCOax&7?4 zavDLE1kR0W|G54Wv*~MP-H?0@L}QpQZyv{?f^flNh{@;5imJrZx*k@1k}2uA_@ojV z@ZeTUM@GE_LDy_ji3HPPMHA75N@M-fc=rTajn6+NjlodQZ|8Ec6c~Sny<~B~*xf$# z;sX{D-7@>QU`k)NARDAu?fqSP0)^cD7hT#eJZ3Q_nIc(TpR{uAh|^r6ad5^7X~ye| zo|a<(CIvmGu)`%9-TlQx=^F?u`GwtmapQ1Ym(B8{+a&geZd0_e!qoRU4(^d66?tT0 zOlTi=IIdtHxo@b$6c91Il!66oOQR6W2nIHhHPYGO0ai*E*BBFe=Gh=wlaZ519& zsm-~S^EGxX$0@ka4mJ!+C>1@Xq=mUd%Y_`Ew_IKA+7q|ZvTn{sPbv3wb!nn$1DKC3 zRH7+D5eG$|UEf8wk251)KUZ&XwId10DMyA_q#*jb2_?aUCk0Bs!~&ZVJimwAUGgpa zT6Bj+(%%{YeeS5mIR22&ze@Or^5O)Dq+fuBwEQ5kU9hz7_`5R;AT+~95QH+prW4L%H9dQu6@gr%pHp@k>wv! zGTkI!aqeo^ zb8HUGizT1O7GgidbAB@wbSCxc4@m-XH1rnHapEAw`Z50mOFGhZJEH>oiWhBpGD)9z z7_#y`lrNhRH#CG3OwnLEMh7eIiVqWcVMBB0b2QAc&!4a3411=8{-NSBxdBhQ^MMnH z7l844G)3%3J(*JuWRS#b*R<{9sGCLi~B)+HGWX=dEKLNz@ZC@pf zzdDtKcJ#|km;gk`rx%3bgp55W!nhDO|GAP4cM65)liq0MD#7rfRhHA6Z>hf+e6=S) z222Bu*`{tgSNT1S=CkvyEYS%6iw%tW6O?Bf@X_ufEDISocqLDI&iJDdHuv>Fp10h<|oBPcA^pI6HyZ_X4_cgQ6!=0we7Vn=GUx)aDKEn|t z0{Xg7W;@(|zv;LOKKCJJH(7wP!IBt3;gLJQ9=}it!yA7yb*b;h!1#$Y@sqoX-1}42 zkAw>+;LE+V6AD4Gl~c$zZ?M5&(5F(h&651qDRI_-C+O+D!2T$lcm9PzT@PZ6I!F{J z2_Dhc4jAP98dHEZdQ$!(_^t}`8LNITwS?J^9Ovo!y#fY#I}EEKQeTN*F`&;BM!f>b zhbJ5TA=uGb=J(FHFyw{$xwi%fzkVhaC!Qc-4|-4WmXfZSlrxm4o4Xl%ZB7?y#3sn@ zF!3$9SDzCaA!Ev)KL`IIO*5Zp(oPl%aU^JFFMI>i2@Oqf2d$v8wG3d2x&9s&Y^RJ{-`L;TxHdxc!TO|Grf z*ja)c#fZ=%IFfUDjMb3CE#80}vH4#pFe3Z0`SG1~lu;WZG>9v12Qjp`a0Ziorm`D2 z7@Dn3q3*dGF;(&v7kLaUyDYX3*IOwpL!9k;a?k(J&~Gg@xYx_FHi zn2L1gZLF^yGOkzj+y_s#KAxkl=9cFN=}v^A;Bl9DX?#3W$HJB^KJMS%sVzYs=VYRA zr%l%F)@v4yx<1*nmkluQ&Xj4cHm!p1HRM`$@BV@%&&zbAvvO(KnS4=h)cg5Y)3dRY z#G_azZW+1^c=L@b!(vQm`3q)r0Fk#ueJnNQvnxbg(Kzfcg4=ZFwLCw1O)XnEgRTzOIzw=(Qk@SYjJG>yfsQ6yiZNK0(cDHNmCy zcS9T!Dk`r$kxm%-sAqO6Q_(YTQdOk_8`{^$EHT95L@xdCNrs_^`kgUd;p^e#o4lA2 z>WfbkWph=)V3fUa<<2>Gil^R0K7lM>s1u+ole4ynPi5%xiQaiq)T4#4{_LnBPPpO} zsffQQRbWRkuVW0B5bL)$))=II?eY5RDowHHqFLGvzGR5*wM~teI>Q4C=Lfd zw@m7=PB}*gG$Ruf8c&CKSSAY>JKS>H*3Bz+#-(74<|@sdA~cL~q2-KNhVWoTBwOv5p$7U}`?1O;4h7rK2LAeVB%+Y`{Ijk?1-wz!kLa7DEHO8A36 z9u%7RjWAFhWz*Sr>u3Y6#hw{yc;62xsV3Z=p7iy}Y*!@2Z|KtYvxcdb;SFaA1CCLQ zwm#fM#QO=(afboy0Ok1`D*#(3ODzX1&FeS)EE-N&35+O#S%P@qgrm5$1y?-fVM#Zf6l;{=hN3=g_cD@t< zbf^jB09yfvVnxeGXE)a^{<{B|0!w!LoI#uF!au}-E@U?l^RgTrYvEa-6=2CTM)ktFbaK8CUc6yKfwp^3K*T@Ov z_RFq2>H2i*)?x~$#sW;Q$8>_PWYe?5T9G!a*=Qw|Yl(Af^iy=t)N88zBCpg?b>%rs zM=V(|u%HUGKrA(I`}_)6&lPz3=D{1dpRx~7a&I7^1VC7;FfIuuBe|>V`wmnBfP)eW ztpKotq$a`ZTc1OGOLlxq4k_>)A5}kd%UJ3D&1BYN#e4u3QzRzlrau;$ zB2$cr&PQ4eil3LmH>_TI4kMD9^7G6L7X#{KKG~9!WTnc3U0%sox*<)JSK^j%G02QG zJRXuvN+JD~c8b{T3yE*7N5#}**4+`S7D({{6I3BnrZj(wL|662j_41ixyO3u{R#y0 z$0eR)ac(A~ZQ{|~lER9ajgGQFY$bjxC=fdN65vRrB82KubbX6LA>kkt=o*-*CZuVt z^iW9n<{2}c-u6D98yJWkZhjebs_t`l!)PdMXVh{h*P)<{*^r;zwckZaXBnjhU!KNgV;WB({J zj(+NGiv)!)i20pIx-;NeejJ2X3=Ou}vir?@iEP$1W=~pntfp+lH(P~xG)-E}fuKzsD zcAIkW5gV^S`+F9lpn?pXw@>&E9=_yOCxh!e7fsBv@=WuqkScNSTRKcei&9K1%}`E~ zj%(~u?3c)-dfsbh4(rcnqbdcS=F~WoUQ+`RtTC6{ApRZ143JACYAn5{(lxGc+Km%+ zOd9j53p=I`A&%sfazhyJ>sX5Hu~F;MAUPLPNyOpc}xo>N0lHI549 z3E)p4Ba%-(uYkiG6)0oE);tt15mseRhZB3L-u-5__fOW|WVb-hl5#6VclpI7dyY$9 zeiyyGGJgG*C4<{Fj?0c19&9HFLbi?~c{IlG@)Xnfd9$00GyH|AomQiqT z`l}4A1X=T{>C+S-NW={512a_olKi+7=OHNho-kGbh?#!OSU}`=I8@*O;8z@c$-PyE z+tw#9!G+Z26x{-%K<*w>2~u+U51gj?_v~J0wRj>% zXsfTk?%es;L^74m_FBh5{xZCkKGJur<-acZU%l7{2hOBM$nc(s-8!@PF{avO4-QJ+0o4(lf%433X{2D&;D22Z46IiQPI%uzV)q#=#2 z;VqFFs_A>yO$#Lt|5*Jt6$ukZtj?kY^E8E}>&x3%Ftjpf{cL-Dw<(RarEgV2slRF{ zg`@P~F5&^9PP5g*p|RgwNdj_I^WMN4;5032`*eb z3&R3fD5K-iP^36B*!n+YOSB)*FGO|nCj?=;J$y5G>%FMu)E5Ddj$n#5W?C%Rps*U* zKh~}l)brNDu`lA3!~k!&s!b{pNA=;Nb<`xb3<<)q#0TOE0LeXW~r*=eQjL@BK<1c7BZ(~1Ssxjll_Kr{>LhZA_mdf zz|0#9S?Z^_(w+gtm7_ypOiGHnX z+P!}EqhV@ai7TmaUH1@ew~hFuqwR-Lj~tCl#oWH=CtGMiA_bhfKX*zlKp%g?a9wKS zci2et%AMZ9ZG=nLh0r25Bmgh#yFJ9(*PQSL+2dG!8DUx&jl@_uV#bto@%`=_VU}@lLty zo8|rV{Tt%hiZCJpt?M8;(hw1JWYIxv-p{t>&)Z_B`4X2)0=+67oR}9_UDHJtA)K}U%FRn7>!LJ>g1XHgtP{^fr^IADc$j{J7VMHH< z=v^1gPD|kW%HT_O=1T-M(qY`IV8Z7V>5N`C^q}akv;|F;TmE*Pf=NQ@FWfqz^NtJNN7$ z*grn$JJuJQ&ZwyQW;8g-DfEtA#8oH~K3MR(mT!-gi1d~-LSaXbzfmQQ#2pF~K#CgI z|6W(z)N^?`3mbZ;KakE>Z!Mm=nxOWjXU9~;n9UNB$1V+Dz+vQcLomn@0s1^WEK%8D zVvW8f=o*I#D-kDlT2p}%DU1wpH!XOaDw*W%z40&lNKRYb*OuR;8G{1!3AzPPo7=yd zz8M4M0QmLOwN=r^%@pUk2qA3{K+ihTo1htVf;s5k>|lwYgk7Ymgk~^jb81s`X#{^@ znffA-&e!#kKI&oA9u+L>6$6eo-qt!7UMzsrIRiOD5+Z#v=~qAL7?Q$6^!SAyh8`q{ z=!Gtm8;LJ=d)cCPI5t$-B;8b9sgpb(^RLAH8VH}s!(V`Je(#0!8&x=oyvM#w%AcoX zXpXLl`|Plw^R9J%qNnk#Enu*a(|&Hp56x;4G(yf&h!PFO600k6P&UOl!QFjaOUCM7 zdlcR`+sKqz4N>*#H9+{v-FMiL=CW8Ys7(^_av7EL;c5+TwDXVybF0i%(akOQ?#kW7 zoCOz>uIaF*%5N!JWyGnqgiYrgYM#J<<~0%;y?qLK!oeWFIiQ;sETjm4?=*sy=d~Je zYSy-SaFs8;?hf$sBU8ZH-lPBMw)Lv(OYBl+l~UVLJ`Oeg{iwS`f7;N6P^75S*Qkw% zYaXRlnG4j!0Y@%UcI*6*LAWwvp!Uol3 zF-ms1upc?E^}SDnbDZ0-rL@t*``x4sRIe!&byzUmBRT9q3I{{QMhLx4$BppxmR;@l z-EgqrNjUMRn{p^f5j}yXaz}%vd=lWilkN3seIOcnZ9k}GQpr4?{BN=#kcr?c_hP|< z^HW;(efC)r7k&)!9+@p=DqtXCI^Qwe3l(Oix|@9i*{4*ET=mrGe$*ywg{nED6FFcC zQ{}j>wBPPUXMVl&;^KD}lI-X$7@Ult$p%eOS5b7BqvHo&IEspgnBAoC-LjUzD zt!SzZSclPCIq`b%m!ipyYF$3>*VzE(Fmz3^cRq7N1O!zNM;mDlLtIIT6%$pOgM!V= zn@QcJ6y7S<>CRhD-aGRVpjF8@O6!Y?sgDVyzRK?gS#W|?-cxhg!$0ZxD6m-JZ=`_a z5Bdhyfx)}=&MH0@rvXYrlF6WewwEvovlwFlb8?e8Yf_ZEtGegRz z%{z~QYd1Jv4RlU>(7Zs#eIL!3sX^y8^#kA?DJgPWJlFCXH+M3)3R)v@>0i)6@9Z*4 zm(<>B28mvKNTccL{vcK+OC?7L?=c`) zPi^&6C_ylZ@TONUFf~vLTOsttiCVEHj*MOJ&T=I|3~8XR*`k|jV3=;HRh16SSpNN- zYIJQDd*MAbSyZQZbj&@+`?kQArLe8tDAP|E&~i*m?;F}-O%{vTZah(d^1IPB6T6Sk zn_JGP*ED8re-_HXV!2o+w^~43|JQ+u5ki3N7+jGm0ao)hJpbc9-r%r}3zp=aavV&1 zRI52{IXu_-Cv(`)8crA8SKBX(%rS zj9GsvphX)~d358&cjhxoikCZ3` zmxNz{jUio395J_=ia2Eil{s8TGtC9Tjfo7uzJT!pHpM!C+9&`|IK8HR2$P(Xa6%1B zr$IEd2wIZ7V7R%rRq{$gB{_c~pqv%VVlu!8Bnji0@sgU!4c$g*U)dReB+CX@w!WmN z6$5~Sb#Gm|_PwW0e(61Ja_9o-qvXO}3Z3tIk}73CJz>_=LJ;}WG1BNK4&{wDIp7V$ z$!%wnhSdvNkP*#=g7IkOyw}uOD47s8wF3B|LVj)TFlCdmEXuN0Wn5b4ZQb5ZUoumn zV@N?548g8~?Wjb;#hBx!g>);T36KSLU7Jgs(um)9!oVi(_6J%Lqo~1;*VjHDnNw^q zm75(O0ro%|);#xWrJp(*Y3%oRh9)b1G0-u2A6Ct+#;XHZiK!b7EzoFMd^d^3=&-xn zfvp8_J^-582)KZ`{){ma#w=vQhX>Pu3+ZZwBcZ@~bT8W;SaMm=F)rjn)FkLd9u@iN ziQ7#9Q~bu2y^b5Egb@s;dfW_WB?x)Ew=LVHrL8^UP2aRlJ?FtI5&y7Dp z$TZ=op&Zvpm7rTZ9gsZWZhZCgOZ8#jc_d9Xt=eY}gABd|llUs{USGVnxvWS~fr1N| zHGFAx8)~f|iNAXQ@GhQgtMBA7mV&jePbr~X0u|`DehzSW82>GwEDwo-5Nt&eLa0C9 z+f+ivWsi0XnDQTh(!fWLmf`lmuG0v3jS@Lz`3<*sb05$N-7$4~$A1B$N1$jZ9&^_8 zTLBx4tZ?NVgUJe&44BZhMQw>lF_VnHtORat0l<%S;*Q z`jx}O-F55dieh+j3=w|8N(ER`6vq(A?6b``5Ow@>g$;TR%F=rpcV{(%(KH#7YgJTXgFGi$1s#DSJIc0k@3^e zM~E(6D7RMN9kpQ6oa~hU7Gq0FB6Jfv%s>QC)}CC)r(cKBkBb1*vGocCUl&`lYmq}j z8>wvE81ba>IFQI;J)J^T-~-=0AJw=N1HqT7wjJU7G~7z%QbK|foqG0tN2N&f?@=Nd z?rN1in#cfU)RCOgv@kqpiwiwLLevNfD+2a3Tx8Ol==xUdDv3V)*}U!rbVkhnaNHTG zG6@Rto#7@&KvI!zVq>imJ(hGv83?lp)$-+p>Co_XT@lI>w=Ir942-I!036S;U1svk znU~)oxR`9sGxUnL@e2t>Co0=RYE*m|D*fo>`v!_oJburjo#I4hLoM&I0V0Qud7UI~ z-KprU2#;*5(bAu$sdm9JSEF((WOFYx0wmzgFHo2)>JhUnd|2RMC0MpM`|Dp1YgXpA zYk)L<=nI;lmZ_rrIkN(!5T@8JgI07j^ca5wG_{l40Bu!y-%HUPbo1I36Q>Dvq(wZ_?}Qy}M^ z*(y+KoHo*UnA&oi)^SM!c3OH4r#`+a11WC0-P8thod&J@`kh1_dwRXxVfelc6@vta`DA2Bw^`B_*`uSD(GXs zo~J$qMv+dWM_Vm=G}_24c#X;1aKz-aGf^~K$#*}(kf1v%r}TIYaGu{3gGi(!vG%dQtYN|S2<^hHzpANy%ZMq7-2h%O+^l-GE+V!S5h^#{`b*`mOBf?$~vL_p-DhZRS_ zg*?1FEF`O}J%a5(o`TJJ2hy-c>c_jvBp&i3^#2q3O%1s_T1{6^2LZS;S`2C>jR*u3r_< zY|>QHSeZOb538VkRMyb6&Tt&A4?^Z|=zWkW>zJFQ26!&_*|%OVWYhk~K~7&NDsY0d z63i|t2!gePwL^_QO2r}+>POY^RYrmA$}YnhwTzLm2bn+$bHFi`h+(KCb}M9)m_{v> zq2-s;?le(H>QtWO`hUTUZ^}FJnr+p4?r#?xn`v81l<+ z>_z=_Z5b23o)HnmhbtQzP9HUFa%4^*UKRUW(jTEv9wcBm0o=v_cL3v8ix8^v;!gXs z-^}&z-^>nC_?C-5^gMCCSo+j0(juw)A?H<-2R&y{b@gkLmz31>&u6wq`6T7&FJ5{M zGiHo+Gouv<-zEw13RE&`0IwDceg=4m87hYz68fdgmAinyM)>z&HGy+0IU7B1fnT~D z!8f3Tn@@@|-eWE#8h7Cd{D_%#lhTIP%E5+KffPegUwaFrhJWTQwY-T-Q=z^ovH{0W z)7*C=W~k2V&e+<00|-_z1axHba*$#p`eN05!|6HSCeHXXX0=@Se@-qmlkN#9_@@a0 z3>gOC-g8)Hjr*uhgU};OIp4wcUsN?@Q?z@GdV;%{tV zuYwa+kr)Dph#$Z&c=zzjuq#RUve1!`8fJaI75gQFuky{Et-r+C9oRpFZUp&Fd|MbE z`>I_Hjs$CgSQ%>R;?Mbp_odbjq4)Eyw5r6vw*DamOoauQ1M@kelV1xG85jV@`pe(o z{eGj|c{g<5JW8O}JpP>aJW1XPPSxie_~~c`-cDXXeOA71Q3YnjH2S-B0+MrILv3NT3oG) zt(y76T@)-oQ`^6H&P?;B!7^WOvmv?g|Uk(13HnBwkTcG;9 z4jf|n?>+s$;r)MS_55I9y}a%>lkjd3-9GMYGr#(@PxNa#c!(xV$i*db)=2x#)7IYy z{L&xV+~`$uy+PnGTbj=bGYNq|B5?1q)oN5 zytM7ztObG}9>-Y<-gMBCQ&-eBd$zb!RhC)blU|O10mTbGvSWg$M)veN#@c-S*yw)L zF@ztCjD zPb7@SlNDB(=Bv#k-8J8)bCmuxGA_E46?aOB&zPV6_)6z?`cvt=-ujZA7nSdxS61@uyudT(la-=c?K^qUk|?w*(iNE76?b7~LfB@fM2WsU+|RvxEaeC%Pb4WGfL ziDjx>dXFCNXl9_LP03rx7v6lwnvHLirBsJmp9=*s+hl}oHp>CKHy+K30!Yx7m%wi( zVUfs@Qm>0c1}K`nsO=`c5H}f?bM5GH6mzEYD(p&IkLrDo-KY>?M)Ev#u^iNDz8+RL zoYt<4NUB5@(tIxUY@b%^+W)$3Fbb{uHwBhhQiR-$iLFo0hsvErh8rE7-HNYRx1}mx zlVN*(i*Mkg%P+y_K&1N)c%A~W;5D+((9-k%vfkUr_qytbcMc*X4cp&dB@s8+Sez;B zI2SYg6!j^PD~5l@lim`%=zZE6gq|X8qi5;-a>;5)z=Fo14JO6OvtHaD&gQOtd^5k4 zpEDGSYd)-ZGS+$@Q$G6LqxrXsQ}J-H++MTlxe8@DjYkR?+P5e?0sP`7Ukvao1o)9r z60idI<1Cw>)c6&u_T@dj@hWD!gdf{<{~CUwY62FSzi;YuYRAd+v<=J?pBaEQ4s+3| zIK0nVnylh~wOYJe)M#?4VmeAdR4fR>C%PA*0}h-@0WLINhLhPJnLN#%LeX>IN-IU_ zMRFW3;e6>iMa^%9$+EUtVB3`Y$!A*DSO3-1sp`lv$jD1TW4o^G*Z}3_2b$S8l<%b= zJKBrzYCTIdt6HDD8(Ru`fWBDtPW`!`YCcMiGhfxT&VKSulOJS#-(OM2EI;F8Fo|PS zDYG!ytZtZv<*qB>fK@TSURK6ylq~qvtWBWzDeoA|9ZlzsQ9d(GK#}v z_AYYPMd-&sS@Y&-p8KFvv)kAq;<2KKJR{EsW11Mu;GJgi^gXtvYpXBQS4=vaI;9Rp zaVk|e78=7g_rtMbL*B%$7L7@jic!~N$n(kjZ#vaTEY{QWr=m1Z+_nYMS(eH!`}v|8 z&GM4*Sq$gPOltPKlh-a%%-(!cS5xUP>`!j^WxvI;`K(z@cXtrJKJH9csT;woJmgdM zifX;V5X0l$$Df9isI4n-E({#G*HW^?F0boa2h^-O-hzTfqEr3;)<7cW`O_+4&9-dWILu*xuR&Pf)>w$dLe!TUepafT z=yi{-KHs$bhPRr1oW9v;$3cRNX^@Y_*ov|06*&}G>;i#$dwUo8*lk#YD457~&7k(} zV1V&$`e$JA>e#29v9sG}IZW~P(i?A|)s4YXa`$e*+tbiZvd_KyPCd^V>NmZrC$&`C zVS@`Rcl|Fwi&6LKHM5fqD*?M>)4XxHMl!S5dI;=DeS>7$n=|VwZZwC-ujb9OT|ef2 zr7M073-=lKY~u%G*HznSzWsT;aS154xkmB4=6p6p5E5Bt<30ln1J&Q1k}(-@GMx%R z>)OqVmhLv|Sfny&45~|(-BOMxCF<|2k|%>KZ^ofS>MX*3Z8}*l&wx^WPM+1fqZ|#O zUG_JSS)n4ajd1S(YL3yo2Eiz`{~^bV+3l5AiBH%OUz^`%dt-{v^R=zAw&(r{x}Vp% zq*J?(*;?bHWbNhfjp=N)kZI1*&Nz#ZyEnXyUgf`90G%s$OB>ud<#Y=jIV2vHi>lHy zaMH6!2d778&wpH5XwSb1FaY;;|ELZxDiT?-3R?)&u0D(!*Sl|W2;e-3emjvnQ#SZ( zj8br#uQ2^EqT9$_)WN;ZDEX?>FN!tE@=EV%qh!Bpy$9e*yq0+h!YO(bx=@d=45%cl zjp3W{JyLv)m4Elp1FP-@=snKNbx*7uc#ikstdq&Lp3=;YcWNzQSRCX$^|0(!4utzjdDVjSpR?9*^Vc7MG?myp)OQ;b_ND`htw zmM+S81<*3GZ8Yec37qkUUW3P3S7Xr?t=Ot=_%3e!wm}VS2kk#f>qf_wVU2y*BRG$h z_m+~dlum25oVv&7^RW`sBBeFm>BVWF^6QulJPX+USc)rG&eI0X{*|2gv}sk1tN7g# z*21*CBYuXZNBbQKPFkhz^d}bYvl!jfEOWaGvzBZI8|jjI|;w8^t8 zlQR71#LrANHijf+_A}vUa#^G-IGF^4_GJ+J~aOE9JERo{^KE|jX&AGc^Z?&`Tc$^qE#bbId2x+CzF^g@n zPI|DC(EBT6COLeCooxaV1(diSsOOJ6{MIl~_v*N6V>&L+mPm>F_7eVZ`jbAiO+s$T zZ*e2aYX#BsbAG!)tuHz4mGw0TW14}ZaQQ^kWR~ef!`+IXHWeSsA?$X&(atQkDp2|J z9FzarIkbKs2Kr`m))+Xey!Dr-v#$*ruiU3p=wmwkvMu5ca-L)Ba)kxPSrA@Tv2yP&MLIO6<~1rpJ9UP+L+D zj^y=#`5We-Qh=>2eR-`bv7PTzHyPvcpH~!G=k}*^bsb}Z(7hCF9ka}3oPnpmAa zt*gh2c4lR%j54$N0kprG^02^#g-FKrYtfI+JX>3#IQFKgeoyA-e-^g_Ulmq{1s2C* z;m>rm(WAuAmeo&AmZOX*2S$##A7p2wTWtvOF;oyC4N39M2N}sOyR{@PVZ) zUM{N1Ua2S{&6bvl=#>h!NQvG-w(pdg-3rtAZVt?e2RuT ze!5;v&&#_2U+WWsda*BFnttHaa^um=FuuOVnc#6aJslBE4iED&DtO32?RAq7Jh;!^ z0K7nqXPL?reXYwwW1rI7{YuenF7%@LPW)x}dv-Kpa zPAPFAq@lfqZKpG=I0*oWBNSG-G3I^IXT#XnByi@}-S)T*W$J@krpb~%h5Cfim1{=2 zS86gP?!c2t&Z*$ZB;Jpa>D&ojJGX=zEag*gu}Xy-qY@Y{h9N?hKnJUPx%}5Z{rH4^ zy8fP6`3x&Szk)|2lMQSH_!u-=4m#Sb`cd0sJ9mTJGNf~G{9GQoe9uNhCJL~uo%KY; zWLLiM@~1p~Ub4o-O-ds;#uuR_2H#vjzjv}hpRQ5PBV2r{4SHdGSk8*oozai+PnU;r zi+Iu}k6;5~3&pnEt)(A0*_}@P@85rvxixT(|7vBJP|%@|@aZ^PhGedfSgd<~)81IYcP zg_Nqtf-Yt}yNiy$1SHN}e;5p<_-0p_A^-PW&Yc3u*mhz z&vr-#PJbcVqt(r*N6tL)Y;b~KqpFQ767!KPfcovq$gBsoLP@m)cOl3Hc?b+5>-S8S)^_mO_5hKtt1 z;=4z~P-{4f_ri((P!*V;QJ*%z>NNA-%}@9#iTe0N+;q-s#Q>Z~#Wxj^U3&A82Q23T zj|MB)Yh9m#ndHx3EDwgyvQyzT*TP)U_J=K%xwe9mMq$3USi0$a3-n?8+sC6(Pw%~V zi!KZzZ$3JJ3Ejvz36)Bf5>yQZb<^%T_kWONq%0ehEiCcfse(ywZSZ`VyjRQxU(Dh% zJcOflF%P4rLk4YxmO}Sj^`AOdfU#JXV8T)t4J~4!&Bos=Dbi_^enUFQ!*Ttpu91^P zcJ6a})(2qephDGkOH@J(3ssDnLUs%C`%xfXjxRo0@glL7T508@Qm10)hz_tghr;uF z(6U*PgXu3DJC!?$deNBIIhsobcbuB5IuAIC^$|5Qu8nZgLimkNye=cj&1N%r86{sH%Fq*Je4o1Z9gc##IRz<2Y)*B=!>w13XkDyT z_LG#^vk)DD9<^LHkL}wxD^lZ8O5=Qe7~Jo8o_@VSXF2e(bMf|!E;oP_EJS|#I%$bC zG=1yw;%4OuctJP;8~WCTR3dtod%d{1j?8ut4i<$CGe7GI)GJKZt`yuo%4)1dD7H@v z-Ovaq42IRYx!6xEz>axret?=YUIT+{VOO>LJHnoIVwt#cIl5G%VQ{Z{dBMqXp{h)_RBt`{4=XvvA|=^2S||G^0dF{%>VD1ld~7SvPzIr#UaR z1)I*AOprNfeHuE|Y3!{#b2%MHn37o)hpc@6W%RR-5x$ zUyOn$^L^-m3y-08AeAd5bXwF`vQD=a6deNGem8lj@Zw=UV{%`u{z(=qDaXu6;TQ@F z2SQMJ&MT#5ZjBtk)4jvhmgH8KAL@yrW5~Aw%`JL2L1XMrexSR+disHZ(LpzT?~wt_ ztlyuVv8hfBVcI#Ar>$*fP^_lH0$M2u=~x0N3>(P7xGZ4rSa`src^&WlUVK!8K79gG z^jAVpFPHo^4A>|hzVj;kWMrjKzyhfTw0oEAof33&oGK$nm== zUVBNmQ9gBw9c}p`u`4f69|1Q-9Q})HmXZc1i9gtuMEhPd$xER8deOaTTZZOBQ4`H~ zsGv+$PwqoX{V4=OKweuFrA*hM{O$&5)J&$FH0sHh6!>addE9;|#wVH)EBEqi#@DZS zQ8=76bUJ~vKKlnjKMNmPvUfKLCPWhbX?1Ra745^1>oSiLQ?QhM1Ns(cPq-$td(9zq z<>u=+C@MOW)4|Qwz7eIw!|BQf&pw1vwB^$x*2eh3|vrwTIhK z46olQ@GYP8;7^Npzi${U2hdYkqEjA2K}%j^sC?pzS4p&f%sCJ9#5rYRGK!DPGpJ{b zP(5qAa+zGw36(_P>XTa%HRxpe^D&784JG%ucX=(Y}B0`7v=@Zf*8xqqjw(`2KoH(wQa2=I8i@}o5 z!oj!#=l#{2J2%S+vAT<4DYf7J(4lq@iw%O7lk%7|$m0);*_pRk>!2u})1rY_Db1Y@ zwGQqyfAt!ahiYYnUw0%*!S?f8MZZSk=U-39tb>~Pyv`jTP1k{U+AjtR@B&C*X-o05{)+z+WQ5_B=#3RGT#wSx^702UWuoru3vc}=^bNn&n z<~7Lu=X*$R_i_gmH_7YQ&ga9p!INq9`ba*dwhcF1{n+gG+Vl%axJc4Knoq36jQ+4$ z8fH1W93vMhnE3Bp<^;2n5=dv>1J(@?C|U30dNDayD%JgufH?QHBbN3$$|ZW;1qMX}K^30e)jQu6 z(Ui`n1)oqsD!T~ff!H9mYBO`teT@|hf01mJ5YDzkVI})S-L~%|(cPkZ3AORBZY}ij zrqX1hxyF)pxoW;9>;+)-ZL3=^=<0*qopMx> zMyO!6rxRDp#i`>2N9DylY2z3U%{c0CX5JWQ`&s*?VBxoq$1B{tm8l@C>})9?Q`FTD z8!X4w4jA7Q$bm@Xm2}?n)>-|NQ@M`k9!CQg4LpQUYM$I?;=m2(w3@GueW?AS$lU+{!V2bXre`s2%q-n zHRBSG$iLtb%z~iacBUi_SlNW{qqpxcHPs8f0B?dDQ7Gxv8NYO5m&F+xnP75dXnv9s zzQ!aA`}qk$^!3UG66BTsA-Yk5;C3P7Wn%ixHz`bRh?`%hx43!>Z0+*Q?&`Jfr%`Tj z(MOUyycLM6zPassmh9?-?|F)@*hEAWAl5g z_5?10TXAN;u&!Q(Qoh;BLl@ECkvvz>jxvlesIcODPHz_v`7)`W{Ur;4j&?#lj`aZp zL+HFwVoz_HRjCwjW8&iSq@dOO?07Tv4V5b$rnacn432U+@Q;|!0m@5j{6V-ANlI?5 z7MiyXY+J3ux{b+l|ysJszVFyXg5U7JsQg$v0TH$K_qL-?y3Qs;~Y3>EP zw-fI}L)ha60()aQ2;|A#Erf&ykqG}NmK}Wt%FXV9A&s;3mB?4%`VY6?-_T%)Q123Y z$iQ8v&YZ;GL8L4(Lf>g*N?(U%B-~CEsQ=5w*+WrxmVzq6CFSBMZ=Qa>@AvlGPJgcQ z3hdLBRit>Pj9>X~Eep5Nme;69*XO7fX9AV{O7NMmpv4BgDJ%~w{!*z-wWhJ)SxY!3 zr{Olm7CXq$^J^2F&)``6sYpvMT2$9`ZySu~*Sx>*X(KQ+*_k^#do z!3K>Rdan2Rd}Ty&O2+9GL5MmzX8$VFv&p*c*-M7;;FS*7~>&@9i5|jmlzfN^CN=C*^aZP zVQ97C7nU!=Z_rLzSEGlE8%nOtTYnGxm;c;|o0o;w>Xc9{(}@%gD=_CL3q6>_XFX`yN?(xOmvGjLB)x-hc1j)m>2J8=X>QXKznZk1G1`w|}x$quWPY z2j%CBIcAjmWfX7XGTnChAdM`-cVmG2pr_B%8V2Wes6Rn}0xN=py!#S!mtGa%NHd36 z?b8=mP;;n4dtvo(ifpA%eUfb&vER!G7GgL{9oH4v5ilLWWPCGJjpm~{xy9g*3~fPg z4G+)bvc0UPin}wJdWNSqfA)CxocMPP1C83djt;TiZV5 zHkn`cwcdWR8(p5O@Az^2xcsWVcphCe5deh}z>=q*>VChT1JfrLro5=mq7zKs6I%eQ zplMlQ=AGkwj5~{j^~cdy+6S?e@=R!vC>ZG5z=tY^te~m>AAeOpQs!c==kC z2x_>!*oNQvyMrgJi5J4Zj=azB`6f2bq=98EQqPDoPHzoPAW1{d92xsf@lC*$s~yGz zIX6ux8G-b#Jv_+En3X4fNd_T0@d)diYF+NQWj$PBTMB=gBOs^4sQ!BMi@HKM%so{a zATN*iAs;6(fbkTkzfN}W>@tEYN`BG6#AN7(hX}%!@)+}{M_nGYcHPe{B_H%9RuMZ*cD_@qTfAj6E zBZVXyYy2<%4+A_&hLCDGBR^s?5cZ>l7_R{9Dl%OwG37)L=nLLa&m6>^;7pBGcWId9 ziDY?S5$*9yb}wNXxA^(iKiQFyL!!{B!#(l*9Vy)ZzV)j?rVKyXPGB;>jr84YQg(vKBLchwOv0wbRdrIcx!6zRCf!$HL8^qGZe) zw+lk(6t9uiArc@RVK)uCWUfF#Ib(vkG)3yqQ5fCInjt3AxZSvOjZ>%5iD>$0)J*j$ z^UU>0FfU0mlYCSd*O=n95lD)pX!{5hzBVw#nSv>|=4t3>#oycz$nVQ&ok%-tWL~o$ zWHO=RN^}Y`^4Le9ST{&yeQ;~Cqw_xbk!{TXHjWnI!m-911)7z%QeqljYnOjTnlUKY zW$G+OC%nDq$MQA%BQ`W0j-au+eoRP_BG2L?D3lMC6P$yxVw-Xc=DaCfB=SAz*vc=r zdHS>5Gp*JwhCjh*9K?wk@`yuom5tNml_*MO2tm`qS@f~~v)#;}vp$b-0KyDAugm1d zkC8Krzwqj{f54q3%1qf228@5`f_c;s}BLMphfmoE9oM zk8|Pm#BJsj0(BvY3RIc-eG0u)x-#+B6qGW3Kp}>B$J3WB(s%UBsbKgnN3-Mowdjt^ zrK}YJX{sVG`>p%|Ub6M0%bq^JM_*+8Abd(WAhRZOOkbRa*CmD#Oma{Z&Wb}&L%t1} za3Z1wBX{0bLXLvEMo$Nvmp;HX+AIZ7pK-TUo8dL}P~z`yYPD1{fea)@5AvhqB#^`y zCUwDEo6N`}KN>RK@V9XYedH9BA9Oz#1Cws-kp*t^oR8tBSytHyUoN66^~JEK(d7Se zCGvAt=EJA?&cKIq(pi5zi1auktE;wdpElCWbyGc3`yS$d(Gz+ zmTj3Qf}@w;`*%55TAbvUpQI<}@(6@kmE}Sj$q9}(edM8P$DS6F(uXN!4(k)0&lmb$t0` zH?IHWfnh`R&+R_L3q@J8QMM)0ew|Uy52_193NKMKyN7)w49o|Q_Tx}q&8v63R27-; z{VAWBmM5jcry@0r{A#L-EEc9)(O#{LDWWNvxfsmyoes${sodQn-rW3m3glZ+tYa8Z z7Ha%tG3@2}{a>KHhcoz}&BYP)tX=_$;dp9j-PU+Dc+2mPNq|HnrzBmcVFj&6*F|D! z-dDltCYT~^bKS7um?49*>+@0)^Xo>@S_-c>4^Q1I&Sw{Y(#aO%bQSDi_-b}xSBFGp zh~M8405s33&9R|6pFh!~P|6IF$F!2(&c?j&XiwC%m9tP2=viOPrB{PKNsEk_8*<95FYmlL^E9EmgvveIr7oRz-sAm z?E64g6tG|$JnX)0?DdXYNuvu22YTF`@!-w0_$(fe*ixHIe>2>`HD^ohN6qr>YZ8FY zh9Tng7vSFs+Sw<`>{S6?_gF_zceILzUnHU;%u>dmLfa?;Gt=%3j?e&F-Z=Pbb(bCcun-)@on8+YQSk@OO`i zI0xCYmp&2#hz}v_rWcK>atWHfEva zL(jxT9%KTf=+;hlOgV359rjY>ckgce2MGRpw8HVEq?lmu7{jgDKim1%%oUmPy!Pu$ zL;)3&X&*Yrbg9xOxe{-Q`^A^j+z3q9(E08|*QCQg4Twg(9kTo0n<4NIfxW-PkLbCy zMh=B!-IUA2~*wC&9j^0;2UO3AofZyQ&G4^6L!;Y~4?` zyPBdl>Jdu>{!7@sA4!8Nz!^zYXgnLn!aRlAfS%Njk#hm<9scdFU;lZLn15cx4Q6qM zC$S03aa9f@6wfmD1S`5rLh4Bn5AwbnkjD%wz&9;csFIgLdxd|UulV-%%!cqAHs?LV zI990wPAS?jbcCA%dL=R{zXP$5N*S!C6X0`ZcNXZlFxCoc_b6lQ31*MeOO^+^&P3&c z@6$l;X}H5snO3O2ypt;m<*+5*u-;rBo+g}P@WM7}fr#I?lFudm=VBIbNVpOC5*0*) zf3hH4yj%OC)8s1LDj3toXTKf(Aeih09a4H2aDHN#wEs3-WI0!_IL`)>Zke<|lo{Je zkfwugrz!8NLVC!jaqG-Au&r>nA(Sg?{_btDua+aC=;Q9td-F;)R!D^Zaw=pV${k_a$^`@K!$f_f-_|pUQXph&IF(m zhu!0+AiTg1F;XlR!3zZ%-hd#TEJ9!tI7A>jfL-WZ-dI|^|G@?p)ld~q-)TBGZ2n(+ zq{J9g)3F7j1dEa_rJX;;Kz9=$_^tJJ>l#@rIXZN-@---w;cF*aGP0ZkNb%jXv&ECv z3z1a}KMj{gPkSFTTdD|_8q4Ypw^QNMVMvQ&Z`NDBmR!K#9_xjlhY0xVoH-XE7`m&& zjc3j6?vZ-*rUSo6@y^ZKbaBYBfz-w}9?~w)wVUM=lDyQk`d0;IL4q9}6Lvyhi8brW z);lD02}Ohw^99vs$YTibCy)BsTkpg>OuvD+Q2ZCRpHJZqFf7GMN$`%^T%}`}{v{lQ ziH--~HbsdD5;^_a9fuqz9T1&D4jipGhMvjk{GFEC{(iO^N`0?@P?JUj@nJ1Nrwreg9^f@Qne+hN%V zBVj;A-hm&+BZsKqBB^F%p-Txq*B7==JHX-J)83?2M_yt;WTz+PQH;5VpTF4XlzWC; z=Aaoz1(1diaHe<{XOf#St6;TSs!zw#AvHF@di?IEV(#Ld)|J`y;1Q>tLQ@MrGPcd} z`@ACCvi+lC@D9lJYsNv);Dyn2)Q)fa&}gXl%MzVhzJ0Qr{7GI45G3Z-PGp&3TZ*Tf zGqrdceMfq0xBcz_G$#{5-)T##&9iKScd?M?vzA{nL7}8ah-L70+pcHS4=K`I!29OX zAi#dADYdIm#dyih|A^!@M8teiliVOO6r}vo8Zq+jmVH(K`86)KiNLqIaSNnBNH5jD zJp-<|B3AQDROX@H+&itTHAFc?aUM81A7WmIKBCkpaE_fj#-Z3M-If~WFd$hEoF~lk zWU9yN)Bq5i-g4F&E3};M`nL#eTXe5*U(E)Z65v%-$ddtN5@>rWrdK+=*`5=fiC-QT zsxHt5w_;5)70WdPBVEzw?Ux=+Xc$xW-g8)&O&lAS@=*L1^|tJ%UqiLA!Odj8{2-uT zrU!Jc4i}WnAfW{{eShQeb9_hN_=*@1D63)MdbV=*OZiU*5do}ea1QHQ_;!Aqt0B)9 zU>Z|kwB|cnYZ|3+`{7*)Yy~s|F?YdNdXdUZ7{HL_NM`aT7aG3@zKq7k18G4$-nmQ^ z30~0VEon@e=okg~ZsBxH<)>R`X$k_e)9Zo6FayvB+kt*?yKqLCb1P^6tja0bOJk@$ z`%2Mb3IEcmKjl3Zwi$G_`6~bOT-;!I(pt`h7dLN;=;kGfRl4Wf5w=jWl2zXjTmoZ7 zCf8&B`(wrq#nQK|t#C+C{@)=19}zV`cbRJAm#`So-rZTn+XfmkbXK%bjY5k2dLpPc zZo)7&1*US$uUxgF?_0R@AQ^`t0k#dls(7Op(cFPHOr0R2bfgU{zXw{)N_+Q~&pyI7 z>n^F0RXFiGrG!ojsg7JU((d1ft?{JYRq{-6qBiQS-@RIOx%c6XU5y66=dz^b!$lYq z^v2t|CSvZnj5G}Ev>ykq3<}iOd#vFmcD0SfrLksKi(Q?uQQ%EiIjT(dXA%Lkp)R`E zGsNT^OurcA>zVK)ptQ;67NQ~uPI+8ww~?1x>M2(SVY6HH7J9+%1U5_37J|3xTZz`` z=Ot3+90`ZoK=gtrhj(9S6Gvn&NQWWzKPMQk!O=m^{;T#Fn1Pm;-s&;1^4*VneWZKz z2nmk4In2vVISm(WT2ZT7HrY@G78&%ELl?aLZv@WCpY*3J2A7E{4fpFKPu}q2@5P|p z3)j>;e;+4udDS3x6aej~;ARnG$O189%}DwiyDX$=0Eju<2V--m4$OKrl#NP4wsP>GnlmQ87kEj0wkUm9fua`1oH zmV#rEgLokY1CmEvS3#b}l=P_3la~F0A*xjlF#e8j;lD41#~|pD$BgBnjTJJm3UuH@0m~kX_x~9tW#m|EWP7UGw za-3fH|JI0qPuXQeVni5LZ{lMAk466X+yC?15GJx3!cW3ttMvc(uKfQ4^8Xl@|9^)3 z-=^FD_XgxtOWY8a9Hdq*wq;znG^pbdmlio6_;0xeb=|Iq6~jLuqV`uyR8r!9uBl6^ ze@jKGz-HMc+}EH!&R4rSY~e!eE}y^u=vPaBi9>y^T9sjdbzfP|K0PwIugj~LXJ3-_ z)v`D3_DU{1Cn>Qyq7*D3Ik#-JP&$xiua9rt2CdEpmaewUoL9-K(d~_!Vx#$7X(ow5 z@8+|trer$SCE4{!W@#F`igY&em$Fr9RBY3)1vMchmJdTn1JPutSr^Mp)sa6iq~9x_ z3B}9GEkK-rLKRZ%jANJ}^L%g`gRo(|40-317hx7$mVY}5@q=r9^mB{^<$Q-wQYp#= z&#^6L$!K8b9?y3p$NL|(9i!%=1BmI4;`l8OnU{Q-E7Nab+gQ+&i_JYnBW`S4nWRy| zkrWg!vuD?q$D|vzPBkhW{#>ID<{;C@p?~OsJ~z45n>J^*LPz}gKrmT(!l4Q?T3nfH z^1K(r7TEn4bH*sZlr(7*qM1O&!C~iqDO-o^*2%`?svUm7MRv)oN~VLg1XWn+L~fkw zjedew_=J@>H%bN&8^8HH$Tf^wpW;qHlfy=S* zAf4gUJ7@Iz_LTUyqWRKG9cp8Q3rJx;F{ z=!gXYy`RqRM^#H^KjMRPDc*J(6B)#YM-RkDnE#N?CpVVi9t_-VeA@qj%Pyh!kkJ3D z;Q$xT#Xq~WQGN^sa1I$*-A<#6ze0-VVn!%Qc;^u$f-5kyK&RTdA;r_#kR8eKQhSh= zm*JPpKV^0H4=;ExHU?W`!8!V}wVJ0`-osI=$@7sa1v4lX-7T=XXg3nF?E@!)`G0cF z8`-UegN3PI!mcwcFN_M6u78Ox&&=}aG$DWKLr4xwY&7u5tB){Fpo$JfUzwC+Hf%o`kNMT}_x31{WJjf=$OKI! zJ2Opj-K?Nli+RVPP(Rp#E*(LF`U{InxUUgn<}lk|1c|8#NIJ!%Gqp$G*|81tIjepX zLi@y(8z(sLURh56P-`G%w;;KeU6M(T`X;rOFP7BHchqioX7^MV-@h-;E*B}D#>NKz z^ZrD?GaLsFXMJIW;}1TB->&`2kVc*HFxlzWz6tdaxbII26vK91B+AgY>IFRVu|7Kx z2wR?;kA0a#yEH-&Mw9_Ee~C5W)5+i^AnGws{Y|Zgu)R)7BGeI_Y(4sp(TDfUqp>i?e^0>ys*B^=XxYXw`B6v`M}E@!a}qWk71(SQjE|?xDXDw6wjH!@rXuq z3{I(z2D}9d=jy||;afWRlniRKe#3|mLE-bS6KTE<*8efzNjuYOe#{R)oGL^hXG3*S zW!wQ!u?W=^*_A=_jk$=+*C5MzcvRicHnC%etsprH6pQo5_wiO-t%j4~c??m2&g@9F@d_DFR*ZDIsi2 z{JeoQFB4sNT`Npfb}r*6BpxGjl(oI{w>G{i5?@PpY_YT3XRkoRq1gLk+8LMTPFJdA zjJ?{|Q}OvD#=!jT?~;fb^&Q{CgSb&ZoGD+87mgoJ68w7)!)|Y8BF#1;el=!(36S~Sh!%+(SAB+Pk5jafU#0TwlooP8B09NtzTEnh z!Mf!MwXAn9s+}(aCnz@dk`ZVHY;cUFKI%)Ke;!HsK98{6e8&bJ-o`VAmr1~zCmeha zhn0xhmPyj4%#PKnxGL4dgH%+qOSmk@%ihTU=T|L4lidveBLpIVrg#$^JpI8<@<&Un zI*P|B@12*g;%lF$1I0)GEOW68WclYkg)cMeEF;tK{F+vyz5Pdr(xdkNR&l;60x!#{R=$c&1GAU|9O@5L9LnJu~H?W9bVfH>$T6CG+;lB2^Nr0AGBHr1i7Y zO!!{i9d0M`BF6S~Iq%iHy8F*>?0*xk4$WLYc-BkI#%UzrF?ue5Fpe0t#UNXdXPMX32FP`5orN>3-Er4GHmS8+%74QBdLC)ob#jlc_)b?tgG zS(3)&B}J8`VJ}BK9+>fKYmvsZ8_C_Y?voExb#%xqdl9Z=&+agn34E+)@EMN+CO+%8#wn6F z_jp_n`&oV+-T9JMdDLR2ISW0d*xITcnTQbZkOHe;>qd|~vH-kt0fXlc-aLS$1_R351lSAEzOB@8-n8;_MH@*t`Gt(DOF6VN zuQ`eU|0FWv7py7)q}N$78z!~bJVKx=u*{A{EeD~+-cdaYx&W0!9**((NdIAZFI#b* z>~GodK;pfYN`lYq>At+*oeWv}bFZssQdUg2GY)S?LxUj!RDM+k;Gm1gABFPD=0n&- zO1?4*h0$IssllBack@GcBc0))@ zx6y8c3;2iby*v}O6a}hrI6SJdN*hC-?Ppceg!mBPcHei_-21CsyQ~Nt>CYjhl+=tZ);4b zcNIK2Z7@QN#p->Lt|CD0PRBIdm0STN?t6oL&^lg&Y;X0Nhmv<1#b|ctExFRPaG1RS z6{T-yOKpvS7BEOQ^5n-cupMkPnl)H`k1%{xAF+$$ z-Q6l|TXfg_{Mp?J*=Zsv=8JL$p1)HFo2UydJl-m)WdC4RC4jgHMxb}bYMe*Z)Noy? z$uHHE?D_}a_f$JqPq8n$;+5z5IO#5S3Q9)7i$yh8M>n?rjdvO*AV-|BWDcmEE%^rb zgX_(HVR@{lqqa4d-l-hy@0qVD2{J_DQq#Vl2Ano`5anp#F;M|3eJ)byz-s3Ns(;e^A?!QCP2-8H#Va>FZW zxc{LWb@Ql_PTzr)?GG@ypa`?6z7dTg@wcn`pg=M`lyp2Qpp7tMceN5pl=`F193HE{ zYxkAoYS}7t+&`&;PCl^o61q@swl`>(PiU{dy{NCbujRH&^ixT{x z#oXaw#nqCnbd9k5&)1~BF>2%(oi*3r^h`K1SvYBjF)uV&`JxVVEDt47*{pfTg^Y!* zTZWlyuif;l;8Fz;k>A}_P1$U>2dMgg@9vwEs@iEO6GcxS4#fOJsLkMpgZb&{Fb`@K ziY|)b{J4saO%=GT1Wy{!uoW+=saiB)9pkJjeyTGgTOdcnm+^U8RkXZ%BIYRe!l62I zV3v7w1aDLUcV9=^2f1qQZ%Iz%ej`=R9`}Kf=>J;rnTe(&fX87|4j<$2c!E8ZE~rU< z$-^tW@03fIyil) zY_>_?Fj3v2)|6b~U^L-)n1~{@(*7sB>|a8wIMDlb@NfnhRTlvPLTaEghwv3exp>jV z_DH_O0T~B&bKDQ_gsMXBBteeK4;1^ie@W=9btZf}j&Zgd=xv6c!XeXy)oi_i^4vgL z8NnU(vLEax>>Cd>8@^$VeLcN09_n<&ev2VQq>D8b-*d;(|cm)Z}wMz0TjM$=C-fN z4E~_Oxbj71HUMU3%bPf&|4EIlLXaFHa?APN5oiI94^?Xy6R{^&@{4a`gMY@=I)no< z%yH!@V8=Z~+`sQIZts{gYlWBp%E)`L5%%!DOgEd$-NbtbuF#zq?VTre7&9X?bvjq# zE%KuteIoPvr*lp4znm{-&AE!jccZF?plo`y83zU|#Z|ElcDWEzyyCOjVr@z8RXY2i z^*)I~r%OErGCXsaV1S~S()==4!>q@k6r;6@B)=uXU7CP0O4tUqI2#$w)tRAimHpVV zUH7?+UoRYJq!8Y!)q@p^(%Or;%#3;*G<}Gp|0X-N|MaHwH}%b_^6+wi!H|BT-L@ky zF_qxbDaGuPie&Hz^qpy}gd|x{a_DI$uBAndxP_v;48^2*X=;=#S!Mww zTy}P`wQnBMR|G)*a@G%~1e}5ct*HBf6PcuAHGvK!4(dNF`+pvB5kZf}?HXEL0^Py= z8o5ZgeIbvjJpxE(T&$vAw`Ma#cRZ~~{_uc!{zlmirOD@e!kS;52R}-jEn(Z&m{#aQ z<70QIZB1_@B@qI-BP1yfVP2NOr(g8?Zdh9@wcfLkFDU2InagmRVUa4YoJ*a>R$KCWi92g!%8L*mgpqbbR1O{qG{4z@ zHRnF{+3am}#~THIOf8xEP`AWtnS@yidDH<`8%5x!Sx}LY<-SGm(xfc> zKaJxDHUN>yWzkS;Gfm2|naBPq^p|*KsQa|x@w>3rDY8b~Y1?FO}W)?Em;ZFwMXe+TNfUrJy z!R%++SZsy8BkDQMcmejAg=x}n{Uu6^%#m=1Cnap5HcG6$F6#apMl7YR8yIXaQx*Qo zqC=!b+gWb3*#F2x;Q6SBo((@Q+kz1`@!&(dKlIpCU$1RYCmwg-e`StIk)o-s64XkepUm)LpH%>S;$Acd(reVz{<+b+l%6a(|h0KFQ=$f=p)=oJatl7z7>^ zehG69dPft&JW@!VhSe6Hk6yI9UJ?=wDh7#|m2HNv&>ttlab_}OxZ0q#nnIR39K3O~ zfmsxEzLSy&)Q~}^4#3WBLypIhHnWMBx#{mLG4U%eAeMaH+V>KgIq|%J0HA-h>5R>M zY9qteIjK?&L7F+R!_!#3rQnC**nRTDd2LN_?SA3g{jpqa;@}}B_eplroOs?dZjTao zXi(oxm)yy^g5X%5TO*^=jcOF1psm{iY5(ig_~D%q4rn^u9Ss7u^ScJ92RgG;)E(`g zqeAYdOnUy{{(fu2sDh(!jP`&oB2V}VvZ3BP?F{S!Z;>pJ+K!Vnq%y76#6P?u;AZ-S z^!DwLS|mxpnd*Ysj2}TL>>IDO$NmxykD2X?=M>L`?m(q$NAG-LmRB>OS-%%}N&VJ} zeq;OFvujTsQM2H#PwAi0H9P4s8BC8b3dl>{x=)4W2xO z?MoflUERJqYyC*F^Z`)%rm690RkC&Mu2Hy=pIJZHAf8h_(l`+J02x}+xUsZ#pcPEYnj?rzaST1NMHS#TT}Bv2-ig8q7aFW znP#;9kszecA;V;0KKEwpgY5E3td5ayvUca-clwUdIF^aE>I3B=0S)xAUl8Sv#m)`l z%MA$XjL3bM!8ge3j?6e?Ld!?!Uc(wAvd>}uY*N|Rco(2JF+uCylpEaby|V@M z+rF0fi$iGm#$fegZbA8XAMA3-}w|E^R5 z_vd1(&hFq&erJ_AZ@$1+=j5K$#>D5q{WmNBM29ioxZ+<-3n%95W->3G9+eaVH@ESA zI)*4#!(Nt>hTYmqyZB2tj$b{U!@BR(iN&yEN~9*iOeet2DIe;=EeRi^0=<2u9ltT` zH4(K9ItF+x3u;@kh&7Vfdi2-@w+1~8FKoe)=0SAjI+r3h_Qkc&o$SB_Ef-qg=+5Y~ z{sCk&dmH{6QrZxG`m?KVM+lea&zsI^Iv3I&;TYIe8;3aCh%AzoG!P!7#nA74?oUZw z?>3nLN!&Z0J-M`@5)t8aS16EIY}b>Suj}HPufNN^psfqS=3G+UnN~%OYnV=H`I9WY zK%z6$0qR0M81lFTh7E#6D z=#pbNnz0PDL_u)Gh4(m4U+Iv}%*zOxrt$8y*;ADk(t}?#vQSUON!&T2beq( z9rkiyU<_o4fe}Vg-Y4UN4%c)-Ne~>dLw6|uB7F$9yB&5o(_6$f+4V7xwE8?Uoa*lD zaBzWRPO337=2Vhk@Wpulj~^BZ(N`PBJwrV-*jjX2H}FmxnQ*DEJC7+c;SKcf6qld+ zd$Mxr-IFsaB;(tzz$9dyy(COaz)9w#M!M}#(-*?e&FpXddEsO#5_FvI(zX*kMTkDF z6`}AL{Aujr=JcU923H^B!gwy;zh=kh^on`|N3S#0Z}^vS=tGFyo!m^UmxqK+IZ^8P z5OQU#e&ShugWP@IE!FYnPs=S*SD$2>pf{TWf(;H|o$&`q5@;*f_a_I!RbOq8*ZryF z_P%>8$jf9z!IuJJnK8w+kX!FSsuC=hBG*=8=WN2oV23tO8oMJr$Q?A41v2z&XdNN5 zyeo`oX31PKDUheRJ#m$KsZ4QdLArLO8^!73;Z5Ig0WeloWVsr1{#m_*qG{jlJ761H zuhJku>lsLyoAQ80J7=4E73VtR+-{K}jp%+BMEQ(Dq$$OGr&1CYczf-X-TT?7>Z!KZ z6ElKqeRCs)+EbREfCxt`9*ELhW?T`GDN-3Nj@!~BvIK&l9~P=z3i5o3{&C0j#L#v~ zDoZ$ghpaKK?OVt9k-C#=!+&`~-56r=dPHUZq8QQfX9kvs&pDMbAN%}v%}m6Wvn_KT z+(cz0(e~D&(m3sX_|)v)MQqtKQ(+Jw{h?uj-4x1_F6tH8co+DcncH|ydWX-!+dicp zRV#e%Q$MMv<9#bf#a-stp93_pSg$%v+P;jF=;098r)f-e+2K#A15Nq9xjEo^^p+nO z3;5+blzhmLSI@ag4=~GAf0S!qxdIXXQafcl60N&{Ycja54qBT*>J0q(W15bv-H5m_ zJDH6-Y7Q~arAKR=>MwL^-`_SJuI^|E;w{!c(mGl>cai&-^#GpYh5f3DbfKZ)9Mu9OGTAiVV_kJ7wr}7@ zU+2q-zp^~ZkHH9&(0moZC8!k-^wUhzUCsEWpk52~JRr2VtKe0MXcDY9n`>s=3<$`8=kJBcE_S_EF~thNH` z@P(D~CvZ)|e^jdSk-0zA-`j$l1Y3%XqEII)xGbO;aeFW-lPO0A!l3WEM4@u``~Z)h zL)Lf=ks;Gpd|p&Pz=8mm(=eJO6O6y!wKmy55dh>ecVtwc759Hu5H%kMPj8R=8M1j< z^JYuZyh%UCJ1-bj^x^@9oj=cg*@a1!a9^aVqTqH`l2s*JQL?pPU1!>DZ*J$<`Jfn3 z{w?;D-~ms5W4i6Xq^yRAC&)&u6YDfGdBFcnc3l8MyK4R!qi%nY6EE`(V@%#~P*&!U z#DElZxGA&i=Is4VCDr}k;M*z@L4|ULI=n9b9pc{Z`YkJ}oY3e*QFkLVx*UtCh?77I z#Ua{toM+$f)Dpc2rU7I zDH^SKn?YnxRF}&fVXdQzv8Cl)IWVy}DpK{RYASgj8Zax-v=EQ7Ii~&0x!FwDoTTR2 zzqEq$O(-T951~q*Au~@7{_A}ds)3-G`8u+MC8K9y%r`m%#CG{Hbi`=%Y-f&|ra=#T z2w+J7oADhz(ifuY;`zlk(wdR_O)aF8KGsrQVK{l)%5x-!matv}R!=%?E+`x{=FD%+ zw9psEuZk{7jU2T`s@#QIbXTwWWmt(BBbP$!_AL0Z^9Z|_oliYKtKX~UYJ)=)Ija3l zdVL>O(eS(MlmSnvLt=AO8o>ARxzaCV%luO6JG%CA1Iqp2M4jA zC5Jl43xQTV=~T#3U>DdwB*>%j3~_{nxb;K5EF4jzW*OPdMcq3CsBstQlZ+bo#i~^Ltb(Gs*#7XsJxOA4fzT;?|Na!lny^v%aD_f3i+YkgtLoLLK zXx^Mt3y#SEpV;WJ-c_GE4$6eP&j(@WqA$AI=pxbI_Ph=RulQD{-ww58xUwCF52E^g zd87sldWnFWkr#$#c)5dsn~`$;<7s*a{b!Mu3o)A#8`S+WkWme`97pM>mZ8`tjnK2B zUfj%nNZ8hLTQ&-Q9hV#h<@kxK^UkC{OjiSwNDaw+XEYA#vCE2*q&EoYMC2%|9f|xM znR^q5dQges@dVjivEJg5rb82CMhjU+Nz~$4Pm9%8f$)sHgjr|zwwO;O{`P+@#2q;% z14*&*Hnm%;-#Gk_7XUK?U3y^dp;4fK6A=V6#!#s%9wrF@v8Z=uR>+7~7^jNDFqhT_ zW!0_YbQG;=xS`jrkyX*7^TpJd9X+3~aZcA3eW12NhNn6Q4Sgb|u28Lbr7&^)i*Zx1 z6~sUD_-33}h-I8-luHfXa)EL7Oi+rGnP40~D6o0n3W;ur)>k*x{tIjNEQLw_`e?h> zfLvS`h-f;d=^zt>D`x=R(FT}>E48JgOwFSazDxY**J0jBH&rJJhG=M$rTPmNM8;jJJ8nP%)h+(iJXBK&O-=3ghoi$$E?LUEQ zWYSa0z4jxkI#_RDrP>u&(?=X5E zL&9PsHANTvHsf(Ig5on}4q^I6fLKjiUSelN-5NrtSCw9|Z?pe6E=#F$t{2>n5B4*{ znoTxiv?f~}3cNu&6@7vi=~p7JEpPf+IZ{wj zFpb#MY%S4-PDS3=kyy%$;tZIhry!Q9bSP`;>7v!e+t92*y?rd#OgoTWaON#9lplmb z5WE)PwL`@hcrQ66et0p%?$`v=U-JZeidXl|eBOOINKo6t#>JxW&Tzl?*ptb2NP9T=r|!Wdl^MJBsXOCV zX>)NNSy;*EQVD(qZlgnZGm7nLNp8JEj4N(R{wwWM^#fBFb54-wZjt6o|6w&@pwuZw ztAG^m(YjEb9ZmpD{H3kJlEfYxPK-{U(M9n_$*Wwimdly~E@&Gl49Nz_pOX z@5A&j(r&DhIjV&xY{E-q^ZW25kN%bdFir!QXi=yGOE_Le(&7?1guh>!^Kg{469Bs&yKu+X0H@awTLrI@ z=KK*ln}A>prE-NPP>efIUj1<%7akWM_^1(uw~l7QMMG=dF?O-O_Njx9>b;H43eRTK z2_i4wDDJJQqL(}~M3T~!u{I%u{XWOly%EE=S>Aa_L&W3%?|P`JdU!7f&!Kwyu#i8S z$>lD2*GXESw&@4OQ2IUx>ZjSu8Ur`du)!&_Le+p`>7s;E$}VyMu5LSVZqUOePL_}r zl|xrHjT3*5N^nqGVAy5ohwqQw7ff4C3a4;)7Q1_6cSPh(+y-_Wti`@xV96P4o`=Jc zH_)q{f+H(j@xda04W%!O>DOq#sejnC#dHZ{3?)}*JY`Vjohs<$$wi}Yd&OG>RgT6$ zLB5>;S~850Tp@9UN|3RnSa$Va7eRTkEY$OX3Du0bp#DDLsJvs4h(3QFVYX_q`_xMq z^6hE1gGE+m5=Qs@sAgew6)O@?9(zdipmU040T)>g3ch!8|84$f(Agj@XRMgN{cJq< z(OEu<1y>AH6%Yl#jZfn%cb@z@6^U2~`8gQ^*K_cmO6b!k-56j+j)J<*Wo(l{`f$zO z1)?O`I?`)Ka3_^rKg%stvQEQA$)z)cOzD7|FWkA9M~uW5J*jYrQeWaeCXqb-xpwR! z3-K=Dr@EN(rjP&Ea7UVE!f{;Uaiu@W_2!6;BeqVIGdsMI2hz*`mxrrb`>x(Yuu*J9e zo=J0*g1*M6L1w`RtP)o!V@Va5M@c#y6APT%1l6Ct*i436H*?5j+NO+2V}`n_?rM2$ zym9=s8Rmjfwu1#KLPA?*5&d@o)RlN2xV_KxPNROcf23Dw;YwigAsb#ldlP+ra~Ap0 z2Ke8bU|mhr)gl#N3)Mo1g+E)YWhw+fX;I2RU~a0Ke7iJ;2Vk~H=modyvxHzO3a1L3 zWIiyfm&@i`E}c43kB>0R6M|72uM^f0^mup=um&(;BFI%Ldly z(=vM6Pb}gC%$|B^2F!Dc>iAr`ZM3tSQuOXA9|I2QzcF*WenyFIL6Qs|Stiqwavn-J z(;HpV49K}!795oRO2koKIv+@w@8iyZ^XMN7r|=4Q%tb7A^j3ZN^>`c|TGBQShIHpJfZ~sZR^%d8LWbIVxR=xfj4U7I7>BuA$u#-MMu-53(!-_5MJDq1_y509SK> zB-Hk3{>nW_@TS$0aJfI0_2A9%jZ&j?&@`;uzeM*!yT40Z1i0sP=@J)paJ}tpv=G)D zuMaR+GM=|4AnXL=be0Cj`#wPIws$}2$UlMlfxcM*A1t}AWX>|X)^gk`gK^meC+#sO2`Fhxv-3Q= zp?p)h-x^uv7(H$MkzTKm#Dxlf$OC!fTnT*o8gnLmDJG`V?%A{OE@-WzCHy`RBzTRS z)i`L&Kt$eImz}!x0Qg>-3#P6^xs{&NQ!`a9hBQhs^;r<|h4Cj-X%;$n(L~%7533N7 z)k);sbgd3>J?^&_g>E<_Z<8-q5-u;)w(%A9Fj{tr9{22aq!1P4tHWQ5yaYeLP~a?h0S_Os$u@CSZpbvk&1 z$Zno*zUwaIQ*WpLE3$XLO2diz5>Y}6e+d#G!#i#;mT$M;jewU4a^4nGYnoQg-@QWkx4Z^6q% zqi$wY#jC@#m~arBB{8UXk`f>X@Gl-NwE?=t2Y$%i_j*Dqi|ibJWA4w2hC9JrJFLTd z4#NWQJk2`ExLaQHf{Z{r-s7bW!v}{@<$Wx;I+*PvRc=Pbss-^Um@Wb8*H&ldWAI>E>P8y;gfH#0X9iG=HWJ9fv zz%7uKavhN-o+<%NF&$>GZ_HW1tvr~x9>lr;xs5RAf}CrOi;U)UoerXwV^0$N5d-)s zD=sW7rQ9bYeYJVy`)|-^&1^6U0BM}N`P$;!k;{!EC*~O?c5JpoA*IpJj~5d*@yeb7WfLyWjS0o&Grw`5 zsMnyi4>t;Y{!76gK06^FJHeN%8=?DU?(om&>XlV1dNcapMx2e*tOxy%m-whjYd8eN z4;BO7usi%kHLG^o$i@g7Wx$Mss0;U8=3?I7 z+~2rsc55%5>jf12Fi^UN$!^b6^h1eN{04vQBUyB3nG)!tyclsoO49YK;DyuJt?=}M zmK7;YRM-CjbfynO7Ll04jIT(7U^QJ!v5+ny?|jXKyD@b<*O0fX%)G$$MJ21~Pl;bE z!AOkBfuwAB40emNhg(9LPux?PU_||#;Lw5n`y&bR(4+9pq;3z8(FtC^LsRnHHio_xyTChE583NNfz%#PPHXzdl5@c!kdgTGU%A-O1^a zz2GGitZ|>S7=x+C$k9%n^RKY~#dnY~Y!fZ=4A)`EH0w1f8L`eUX( zQ4v(K1ql_9Fms=oci*gvj@Rc1YT9PD=5&%|Sz{cE(?Uq+w$fUg$X+9sxJhJ;1GS-a z?jN{25jXxW*pu$xDUWo{9IO7G&u>)Rs%(LRhtTad`{B2rk1Lr_hD!N%P_)!JFk@*C zki9OcA6EzPzhI+@L+TgpJJ-rM)o{aM8B@`OMbry zGiw`#Yzc_0y_pBG|M=&yV$emnKadvt=aOSY(~nxUA33+(C&ieYyIkwmlA6x!x5Hki zZIcgH;^`5Z*N!jErp?JW<+i!k5wZ(-fs4{PHzhMcx@-#9bKjr(-!3;5J=vV+f+-VKqbuLff!gZ#89Myc1< zk)Y+33}zw1@1k1kCNtC&oxkAAk!h@${o;ZDVBWf}NoSporQ*(^u)a~qT(_loJ;y}d zdkdauRdXwQ-7!e-A#U%@U#cv$2Yfkr>)4WDjFugPDW}d`mkR=`J&pkmhA?kK3 zeH?0`e@{!e9<}qaA|S#;Z7`l5a4NRL^D!5G>(fu-KSpnhW$)0nZqFa{H(!mekI#S0 zEu(@VqX38dp?#b`Wsn`yJG{CCFp*$YCBfidk;ZMEZOUwN@JS08Zd?PuK}!TP_eNd0 zsil16Pe%+YUlvnP%-e87u#WG*Oq*GI;%o{Iqu-?V4Ra%L4e{hPY7!|kQEqt{XO<3r}Y*S#9l&^c`OywF9xJLLab?>#2d+}2Lk8L*vLrf1wkvJ z&glP$x|7-c%+%^UHOlI1=Wc5NE-$a8$-vp8jydvT7f}=aiPgf)jCs0Ne0AAdDe5|h zU(G)In6aC~CJqHnEqKl1obW}V8uZg$!?KnDqp4K3g&JFZ&i!6QU0=o`Y;Poc#G-R` z2W|Dt!$SA;?dqsN@)MFYkGf6YStqA!{$O?b?syxzQUJRP{o-#roKgz=$iDYODz&rB zU$6QgytWI8i^c^6`Lewg91z_^PfVEBmXF_Lp=(*TWQJ_0yZvEbv&zA1=P- z*f1Wn<1aB_3i_odtw`4j7*JQ>yT0G1m;MB5h z>~NpB#PnG`?l0U(kKX|Hrms1-man<<*%zw8`z}%hb*Z*?gLl-iQ;!ut{{+7XsflyO zSE#UN@2c4RK{oH1D9~;p0a#e^C6S!1`q)PNBjv;$9ro2j)h; zavTP{v&>%Re*gwO{x8q%KNl^mo8RJe*zQH3j-^!F2|BCaq&?#bF7_&BnI{+ps^xJw6!xzaV5oY3UJ$L~kNF0q|$qC+aG% zBN6Az1NTWL)0c0*E_b`cg|GHU%oa*=nrO^})KvhEU;m5Ske5_gj59p>4_P{dg@&+e z+__OmF5GaZ$BE~ArbEy(54tw_B09)QNF-WE_+@LPwfgU8+~ff%$=-98a?>4yHMbL} zq!_vD>ng&^WlwTluTaar8PARFe)9U>#2nCR0YrN3fU~z_BQC*R znf}gB1qlI^>}l8xdVa^Xy^kJRcd)zoM~Y%#cCoMFcyV7-C)&F_p!UJF(L_g zeRB#hYp|$0#^|u~c8+j$z@1+W;da>(Te2WHUGMcY=Z&oHR2y)%Z5DqTV7`_^trB*n z80u>+AN(PBa@j74;8VXmeCZkkdw;lB_WvkNvVM`y;#|64j?TWm(b93=uQLc!IDyX{ zp4^R``Inhl$gL@Xy${VF+RX8c1p?z+vrIb`Q6J8`vpsO{Q#BE&IpWE=2)Y!c9|Kha z9u>B&R``$F{zV`tHfZW&q}sAhBSyu<4gtulGqXN~k(J&j<|!tz<1sJMOU#&K-MqiB7&8~&8 zUczA3%4A}on@T3l4pm*>DZ%L!%+RiTr2T>tJko3Z=;0P`?(tUabLU}d*CgE9=fD3L zF8p9fCKrg~Lyi!)Bdi3JOrr)L`d5umR5!L&{|{CBf0MfZ-b&=ZJs20ceDZ&zhP#qO z5yWpo?(aXj|0j_Af0DuPaQ}rm07a)z`~PBr|L14FF#Pl01c-PRh-m(A9|6c99##ac zLZSSBV~-Va5%ob4xBZRGk>NWIj1=FB4Qa_pXG$7WqZ-w9i#YuJhR|d3`Z?-tGZYwz54B5TM6sT=6xl39l(#vBx?>kdIu(CTYjQRc)7PPoK~d z9RDqU1#Dj2KdF>uf5u^3fzR(&jcNnIT3CZKZxq5o$ZPWUe7IBTc^G-Ro@}H)r}{mU z*TPc}!A?)NCZM74vg*VQ;|tgGiaadASWQp=d9sc(??buXF=It(UtCuS!hz00hhm0R zJBkF)UP=C?A4D5Su+t~r%6o)#H0S)IUM;BhzI~KdU&~zOnS5ZOLA-fJ z8t9Kfy>DGi8crxCpL9r6h;20B{D}Y*_BU zg)b88{Lx%$Av3E03bpMKGTd{`f8enllm+Smgfo?A;|n1Rt8)nlu!@#l}m-ikk; z&U-ysXU%$%M{_GU|6}fnMe4R4=?1_7U1YN)M!0QX^O_^B+~2`oI!N>@t~36sVxCn0%fFHyL-CNJhtS&EVTq(oTMZ_=BWSj_BgcM zw#=ipb1g^O8Y(5oV@dqC!~qhRayh;3=J~IYht&QtoHc(`|26+!%t*D`t@If4ug_8? z>@coeZj7hVwGDp-v$D91L40gi+|dzXCfA+T;A;nM4Ep%1mC(ChcoB3X=dt zALT#W&x=cA{Ga5Y4uxCZmP)M+m!+3+ni<cLuNnUa zQpbbNN7zQ(c0VAm`Yw)BFkv(YDb}GTgcm6NIBq*Xyc|O)8Na1$c3&D)iNB4Hx`b`U*Zg)NOWmAHdJ2%d+Tn6}$Sh1F@< z87mm+H(u9M*I$Rr4L@Q*;_1zVv*iataxgh4#YEChSXUq1FyBYud{p*fX*7gMBGY zpKypGj3CTpCmbtko0TQ1@#U|7N}v3kJk)kjjG~61tr8<(xMMqL0xiSpqAIGS3SLR@ zCMq!e(m72gv9Vm~=X{_PkcKu2o(5_9gE0B6cNsaD9wBrAz#l|t1KBNJz1SN1au{+B}1kO!*|b_ znfA&^ws)tje=^x!FC=TfD|We2gp|Dtt*knf98~+R*R{9!yFGIENbK_;D;A8Y2T(t? zsNcogvYwC-CZo#yD(4^GL95E6KAKoEl8RnRm!8?bgO4~(9vraSyH~q{PaM=$17#hbH>EfiWdoj? zCS9r7_Hr{nhH*L?WZxO*y=RgT9|=vSoH+V?L23wqV*5u9S9<>1m~MA0JCSkUpIt0j z9pg9X36a7-pUq!9iMPopR+;-d9s9@RPHj~V{`bYA`00_m=1b4t!b}bYFRgE*g@h*K zq(Uyg_*98h65}-2@(RR5MF3>|fzHk^=dr#J)w$0xdkqO_m#BXxsB(a|!keJ~A*@J` za83J;?ne}uO2)B%?&be|UGj|yNBIX>WigE51D%;@pl^Mpp$@lhYYVFX|I7WsBN}6> z{qnKyM)U{AZsnXZ!0b!Pt4Pkw_2GgDd-g@hueCirE<#xX=VfK`jh5_J**8etbCXxY zX~$$@o5vK>>z{&HAW?-vvo-d3+_Q87B{Uqb~hR1$8!tSMrNNO zk3|f#CufIAGmP$IdV;mdd=XdvL3NAIJe=3UWoCy2>zm0BUz;)h4z z-GB6#b8V=cm};A6dsfz{K|s2&GS{wtB84uVkZemF&$GiNkiylDX@81Y7_V>P>4%Y< zF+wcP;}03n;FdE-!r)Qw*VhTF@qPgzWoG)Ac$Sa@IrG27gy_z~eWqY#BNwOkl)Dnt zvIxz6B?73I?CVjoTOUmzu7JDI^6@-D#O?HT>GU!2bE9p#;xSwd66~hB*7DH8)%Y7l zS==7@lk9R6^l?X9oR4+omfk=tZYpMy2947@Dbct=~hl#Y} zTwf!Y%4$=|Pr-JLDT-X>auTZxN_9GDH;CiwpMvy4^>vDX$z$)PXB`1sZtgGgrLN^& zUN}z}Rf~5}fP@-MM0w{`{qTQrh%s#?X}qHXfBmuXFrRS6zs+I^r1(sLl0fER`h4FD z7y!J3qjEkKaxh0$n#xt4)#aF5=RXDm)5I>a_`uWSLlUA5z?e%Jot^ zjwshQfg3g7pkg_@sng#tJWsmn^k6RT`QddZ1t-Omifp0clb&iSlXXp>u3z`O?-;XZ zM+m0>MgH_qz@UbDhFjXQhH@MC|AR$7nTQ!b9Y19E@6qp29k*78EK)PI>35z@L{2Hz zFn=Du-8;KO_sxL`)5WoA0CmGBBqZC^a)cKoM{D_txyU|%f4Bes0)(9xI?o#jd=+Y^ zrbLL6eTDg*JJGOQ9^}XX>ME?1$t7w}881{rJVSMN-4lja;#yA|>YQ=k2#`s5?HDM+ z^Bn#}l7@sz;Rz4$hKMy~2)tQ;NwVP@f>2oPWiye)R{XNl3Zk#k)lK!Ay=VleYL~Eh z5nf>$3WH}OW3Bai-(G5k3~!TIFBPBD|4m#mFM#|9Hw<91xaYK3Dg}v91lcqsc}JVm z8Sq;BW|BcHkufn@CNfo%vv&W>ys?0Y!JlxNrZ3ZHnxUipI<=O69d?vZ?2^+hv?+K} zBWyS2T*?;5y}C|)w7D30@PUscA`?wowJw=003LF6W7f1lmrYTUgJ>z1t$O!oLze5b zXAL-tF&c~Doh8QJ-AyW9&%PoGQGH+!J>Cv4RT-nrYF_rIzm9%J(-x|MLfvjg@Vj&G zIh=0pO@2pi;u8+sd@&A&Hdo4-TC}-2eK}Z~Xz0mQ4n8pV8ZtomJ_}nX zkV{OIzGLXz2(Q6d_K{)Dz6-wI7{g7F-wqi25GsgcPh3P7nK#dihXIgHv;)64=EA{b zA}qB(G|~;Cr$xHmJoC-(sYV!~iyYb0Vk6%frR`e_rC-6&1)ZKYKqqMV&kt|lEt^Za z(bE?6n>(lEIeTY`LePH}AI!&m^cP-yJwmp8QdJAGb+lw>-!#N#%n_5NgFY&vLV{b2 z?g~*O1rjuN`bY9$k$0T$EjyzAPK-T$?Uqq8Jb3v?|5MEQB~QGK8Hk0XHni~^u7$yQ zU18tmtY0V`uuzxK3JSHEQm1_f99`{IOi99g_f^D1#9c(J0nHJxFl3CWB1u~@-;=|( zQ0T%oQjfVVxL^e``e@@@?`--8)@PkP6PoaUcks&?%d3)M?sr|=NT|El^ox;R?%WTwJ%z9c`nB?L0FpzMYx>yd?k5~DV z|Cq)9)f-}X({-(hpk9PE8VVGS+)0K*zDVk&Od|Mr3EO{RmN2uNl+T*Rh zRkh74S4ov+y78y2CMpk7G)!@Q^T;(dUX{Cl;VjlQS~CM&8@BTv@iOOQ6}qZ$up@VVVO^vox0MHoH1*TB zO<@;BVDP20tWOiCZlaK&ME%7e z8O?B8PTwdrhq(lv*x=By9?rV=*Gj22Ncz zz$$@)EtpdvE9}0MBCq+~Gw&6m?7B7cbh;G#rx8(qul{pm=>(?bZoqdda2$1V`_EN^ z75hC4pSZPJYXe1tIkc>b^r&E^qLg`)W<~bhVvYd7^!OCl9w_l3ZR)@q{-`c4`J8~B zzm7*z3(jod&d57AKP+)y&kpc__B9~K;}5t#XAV>%(Iwxa;44tV#-27jD;`t1nx=lW z<-B?id-2xmp+L>6h6gWL_xDZT$NG#kvf_ZIc%*_4qN^bYm)=Y^I3!x!h|{u(%p#@d$b7OJiEXS33dY3uzMkU85i^m&(qA#JeJ zZ2nT|@Qhc7nr#xaShd8<#qe0Hucd&QJtHBtz%FIS*OU>n1bnyifFZecjyOI{fQY8! ze_IfN)J_@9sq%esT^Hs-a6!ebnA4MB8+}fd3-#SYtRm7B_*O~3klmd68-aacXjiWg z6(Cc#Mv{E+=m6!f+wxeB<_QlMni)@tTKmQYGIo<3e5P{MXGgY_h{gO#=B0~#8enQx4cv67)z}ZuYQ(Sa{%+P#cIEytv(uv~<=O0{$m)2-`wipV0LK`si_y)d zeAK&;4lb1N$kfi=0oG9iLkZ zfuZ%z>q1>oh?p9X^xSA988nIpmjVR{tq-1UxD{fT(>Ow*PBM(KMh(T>g zF8!cF*!d))c~{yhqPB1qys}M^*+soUKk6!K2|9M`Nz6>P?mT~xfL-S~-4#kGn{hB|N8J(cf83RSc=J!ZZ_X8? znDwrp#NX1Cic2h)`fn4TJKOobG!>SdyU?L9Gss<0^)T+Yhd? zAEW`qa$c4MeN0%RwA}0#ABe*VkTvyF-@J8Vcv;JgOo&N~W#88|lpD0_eU~@8*Ky#t zoaBFbk8mGfIo>aODr?=J-YW}|AOa)L!1`T!sd}#++qlg03eJB&CnsMI$g~zeifFFH zLUeejo;wy(Tk8-6?2_s;>*}#+i#E-GZ|!O=2@T94Z$Ui%ru!s7B8SJPt?ZtQ+VD#M z=qI?a;^?p#kfttmS+pRD@Zd7ZgXDJIN~T%)cQgcLRMn5jZm+880UXe0^2n>c`uYAv z#jX?8M+{o*3YEfWuP2Q;*q%C;gu|?gQ>=a6Zgn8h69kKibGRkc?C4Eq#3#ugRtN8Y zlmV&7uiiWUFzIyQ!Q-JJeel;5JNbhR+c^_gFLtcDop5|-@#Bs!LMv#x7FioMU!U!- zTfya5Q)3RgoN|I;kxJe?-kgZxtI72xL!?l8>!E5 z#GiL@6H7CsFK5V+?p$?bR-ZO<*kYTb_Go6~XT`s8(XQTEd?47$;DGBhL6n5aP=JA= zXfj>)=6lVr-KT2jfU&r#x|TCiHf>M*c9eX<00f$h-2Xknyfm;+(JS$HVCik$31;>r{7dF@^+~)Grac)0~%XeDUd z-JWP)7QwYzX(O#){hn=Wf5SHhxu1V%^S5XVl#(Jv1SWQ%hK8U`R1=f-?2@xz0URWH zbX<4Smif&(AE%x1{AT|U^rz*b75F{%#SAj_39JcMOzHf-Z^L(4Gfpb|NZUcT3_$C9 zru}LX_pm5l`vC~2a_l-;=61l_GjifP_PYWEjLZHf8gu=)j=b`1hcQI_+Wld8?MkUs zX^+;PU0J$K$0xRmEzlox>8;BK*3X`wd)xB@Ov3AWsPsSk{l)=0du<}!YPnR)i%lG* z^RlF!6CB9Zoa2u+&0hV164#Yo88`kId6OPH<&`iAj0WvBsm+RD;=7=zezD{0Q4EpJ zcvT{oIClc;&L3w4p0*%^QZ;WeuD%7_iyhj*H^Ql z-cvu;w`=`Bj{pT3Z`$a_(eo@e{#;}T>q4p&-EqJoo_gPE(%cR@<<=Xee*Wy{xo?h# z7g*=3Pa~11$``Y8yY5mS6l#X+?cv-U@>g!Y{?PA8CQBvO5y*I7(N$~ll z4atkx?O4+qSm_bEHiDv=8eS_%L0XDem8DlABTUX}Jm2?+KDH!(J7)rOl0wCI{P2nj zs{-HToWr|xBl=lJBT}!lyaGAeoi>Td`e)kK!mYvY6&2SliMG?$+&n;dwx-Cg!E0_e(-hGb4D0d z<(IxNS!Oix{JvV7AUktEgH-za`N5#9@kr;(UK7B=VEJ!O%%&El2V}{%C#s+OIM}eR z_KkYZl&hvH_kIR3MDyygocxo zV7s3ndzm+FasjmNdd1fP(4tPgrwtE45YVXF5cURrwpX;jsQ&1BN5>etCpjsiP}jcC z|3X3Q-068^pueJc$Zz6|vbaG9pidnux68LW!LuM)qkj9-E?%DQub#=3xy2>aDZ|*} zVH|8%)#;yoaBQus+Q_PDpCkCSh=40|sWzGso#T;4ZCrSZs#lAAw5ZERG;hJh*`_$N zo#aK4L_aF$@#E7+0jVC*q)KE>HznpUiWg}Q zW?Z7L#gF$IDMncwk6kNn%&jh?>^@X*2m0XV4nqIpL?E_!->lBnmg}ELF$r)jCF^ue*Q7tcjB)lR<4MZZLQAT(g)=U>ZzVQ%+)e~$H5NyVrp*K(Z8 zGd^)7!!8Fh#$4S$L~jm2sG6J(mE+ES_cB|zdVzg4idYHdZ|VyXL7$gqlY;tV)r~k7 zc%asQmf(0MAAZH^V`EnjpoMtmNUPS%3=jUoNy_x&DWR5H_9*uk_@x&~lE`sSy%?*0 znLBt5lmCq-C2nheRp)JhH|Hyp?O^bZ`T=xya`gYS_uXGjE#3Q|2#Pd8ic}R9kR~m3 zkRnB-ONXFfD4_|VcSTSs0YQqiNLN~<1q=i%AW91mAcP1gNC_bz1PBnyC*Jpa@4ME! zzJJ0!Kh2smbJjk4@7d3uXJ*YHMVp4lZy!bk5k!saMKYK}F z_|yEg(zk%NfzUy=cX17!!RljTuX><_5co|n~J z9jdK+k#(>@l*-K!9+i;{U7a>QcgsR^(9AE~MxD6fmv1?RZoV1WAV9-;LARX+W6YB0 zx4|1OX{^56?e-J{R&8`vK+I2uGltY;m4@gjKlW)`u&1Fq`@$u)f_@dKK>;u%UF{^o zgoj@6V&W#WC=_KnIn5vz_OA6}P5$c<2CiZC^(uBxp<_3_1@?Bk&O}TO;IjNGLSDA{ zlWFDT`ln2}`Uz`SoZ2tuX|xfn&T>jEEY5FRkN#bghf@PB%@ah%BYL(OD zoS8FZ?vu&7iPi&ho8FMruMSp9C%TjJD@m2jGh0!hTB0~4o`pu;;YJ?DhgV(U2lj=r z%uI&jGrmc*yi)pryM6VGuX0q%F;A329k;k`v;6yroljdO0j*D_J2Iig)COVtQsrE@ z+WQb$;5|{{38{{a6l~{934tS`$9zzU)U24?2iQ!<2mNa>Bi@2{L>By{R>}Ph-xg!gg|yBFj@g?# z7Z5>sByR#Y&aWCuV(6U~cP(8N89L zSXXg3TG3d}%(-P@j=erRG-jK*NAGr5ucf~utH;6FoZGU^73tiu{-Tjrnpa9_zRs4R z{i@`+G1D@!KqS@^FjWiY=7Uo;WvBh|X>_!3PkpPLJ!>X}9|?|^Vgu+&xl5xCxVZXl zHHCA1ax=DAqD-i|TrR@pC|Wd+0M3!+(Sd@dq5zyFW_eF~_v}7u;ep(k3Bb za4^wKwRI3R2)Xago0J>AZC22AgUi>pfczxwbc4rbb~K3TS*}f}%fyk%fZ_zobFwdv zdfxVke0KKd6NguM(Sr2Cf8{`a6`_bi*>a0uKm@Lb7f?1*X*XRq6i?zb_^|Zpo!_}( zK~>AYNVt$dJgX@AbJZQEfJl^uZU;=msxUKw6bx)zxJuIG>BT|V532&A&zbD?464~1irm&S-e$cBb2P8dw1=bl+x-kvcxppRnS+8DZ^1#>+ZEfcW~q;1m)C&5 zAhlu1Y#c&@c1bTRoLQJ+%eFfR#oJLDYj#ByRI9k7)i+0h#Vdl`359u%F8YDL-jF%g zc{TBYJ*S1rd_oiMh8W7SoS(HT%g|Y&*gG6CO8CGrefrntBMkBM@}jjTtV7u;*3iR= zf*F~!!yR;Vd@9EJI(I)_M_{g>JOw{C_)OoZGRflUsvujFRrb&=WlRCx4F#<-Y-51S zg-6ag)1t+d0WNQ>0MFpyphnHs9*$eq{ep3vyLVBgOD?)Egw>|S%BF$i3v?H*%&uuz zsJ?}c*@k*KJln3oqI%{#w37X7yGWrM-+R_OEPO!?F6?R>kptIgcK;{qG+s*m zR2{pv%h}S#X>p(fTbG4Ld)F!O8StePpnwEMmzf5@d`+klbJa88{KCGP1 z`_%Kg>^c>VBb*RmtbK>+<}G)*bK0!&buK=Db7*szbUsg|kW%I(6~ND1m`kcI1UAeIMje<2yI@@{LGCl_^?vV(pmK_swrT04vc6tDU)X97}xv zOz%Eqn$KkEiE>>g+YD%-d22X)6cPu}j@iXiJR_3%uW9kxeHMn_n0{)C1)J);QdlQ6 zhZv^30_27@^JBEB5tNB%vBTR-p@VSwvclh6X1}c^?Q~AD($hv z8ZgE72ghD>dFaX`7PmGblDqa!;)18MrYu+6_z)T&xgpl!X)oS3yX3sINqBI*w_mFv zbPD`=LzDrm&dM4$w|;Eo6m#ERLC<<_=0RygzcjUD)sdpHKBI_+j{L?tvCZCq!QsvS znNF%<@tr|-$b+G-tJxzk(|hu4A`?fAH{6&9UI%=)gzkdUEY z9{V@SENw)?6zU(p2hWC#vQ?rUB)K+1?@w(tAJJ&``&+E_d(e5MiI3p}`|X65)m?_=W4 z!}hxJ%udkuYbMiM&LN+SNT^WjdulB|L8RKMiaH-)u#fU}D0T^)a?PB70@c9%wK4SA zu>icblMa=Ytmzuqi;5)hdV)f_R_mJvpx+mJ=H=Bl8?`m^wGN7Mimn}|6Kh#rzHA+z zciUT`QA#EF+sRcAp}3BKxCLgyseT!dbp`CJ;?fmnnWzP58K95Xc(}nvkjW3zzc%7J zgShCY{=UUtZ&h1do;DK@!Ie}RajBRbkyd1g*86^Y{XSAvyEG@! ztQ|krj=4IaQ_BoG@t`x=NVvCeR{hStsnGDO;Cmez3$Pvq!(%w~)$ZMh5{QypSNLn= z%Kq+r0v64$Ry031tC2qwQ?ELg^qB9u{$Pf`9o9la)eE86dovY2>)!TN&AlDvQEvM= zSLV=X|9f_&yY;zpq}Je;=$*|g>@#odG}UdOWmSkF%wc@(m5vS^#(CqN7Pil%+uj6TeWMKUAB!0~$51{F9AeldHs4yV+Luh&K zHp>R?+vUlPxW*_cFwm%X!PGTh$!e_Op|)X9RFT-k1!O=CLrMjE@Sdlb2hI!BMm_G! zf;)1ZT1xg@Zmq5O-1PY^?P%$6Gtllr<$Bo=ZGrse%L%}a;1}+am%y=SD=mW5I%V|` zUqj4as5mlGA9T0sfe;r6tyr^_kXWi<-?cpj6gN}eE`*YQ2Z*8jgmzZq4|jh&@AT=m zW!oAY49((dyWV!Oa(z7*w%j)23ttJ2XUSa88f4U%q%rXpS9yeq{iV}$sWpFwho5!; zZbx}BFRn#(x#?aA`qAE(Y_RP_fJx0_ppy6HL5*88}63a8Vf z%_66?X2`*0+x4y<_vPL8P7HGTx~JP z2M5TtTyeGmUVU77_4E1U8m{x1#*suZ(K*9w4_?^?*`DhfXUR5RyfR4+k-ctUyq-V0 zlIJ5aV6CONIx_L-u<^G6Aer-vS*~P0ufqIB>3ny(C9qzZ=~H%Gw1$gM{~5Sn0CQ;L z)p4!Or0mf+7xlOoHZdB&@z6&NQ|ld6gVX(l$+FpZLHW(3C(bO5Qt-$qsw#PODOI{S zb<72D0cJ-1;OL#rog^S_?rK(ub`6iq4@#(GRQ%;NqNQ~3G>>DlyrjbAFnqR;u5B_$ zEUkuKyiO0{Bq6jvWV6|NGPXlSh&;{IXvwv?95rn8^w6&-^RpDRyUi_QnIyLA7u+FC z!a5ybR!RD=Ee)|`k*k{@LV5s^%dP2)LRN>B zW(23fy}++BDZrYpw6~F=Q<_Uhwb6ULWC)W_ux)tnkK0i`#~xhXHOyfHE_s!c3I_=V zBIqKmYS;{z@=5H@58r}|m4u}{uenD-97Qeo6+)RhTh}*Y)oS!Ftbkwnl=&U6rUDLD zOyfEBSm;^5@{y>j7K6p}MEg3gheIJ`Oqk7=SZ#ca(l`C;E|0SNwvrKy!b7z(C`$}4t|1*Jl%PM?Jht~F*`|H20R)?07EQC? z|H}4x!BV3W);OWsd5rHJ_3R2ee#TZCUVML>6bQ&PfsUwTngk+I$HBff!w@eFese@g zO{SVkjDjyrnxhCqgL9hYTioC2<^4waQ<^QcksBLZJOZS*76VZ`?%%p-Go@jxHfpi9 zm`hN5+QY4-{(2j;buQlrV4L1*>`p0`Dpk*c{l++2;GZ^%>}GH-%d(f{8>>H$e`H2^ z&b#f^V#g^OgX8t|s6rign{KMrSZg&Z@AkINO^1E@k|JfYx+mpN9c(Q$CVDwMI7`ZL z6&m}p(mE{ztcuIEp0x{;=%<`ap9(@h{a!2tRC+3kH9#nR3wX#rkzq zI&HOcity7y$HU=;HvDw{oE_a|B7;Fnw6y6|-)Y7~Fax!$ecI z;(6uWwa>%*S|zu}R@flIkyHEw73#Logz~bsNcCvAQlUUy!yPTw(pd=fR7xz_iU&Pj zvv3#r^9^es+uH+E#DWVTdc+^T%1R;U3KIn1q3GoV9!U5R;2pIU?6AaVSoUnKkor>9sMZ>c z@neq74EM5wfnG1C)mHxWeSncdYQkou-ZZ_hUuZ8_2y5@V)1xClD(vu^z2AK$*|NvG z5vEk3i@`@n^o90@PGL=O&&l?X>OOce%&E4lEXry-s8t6W1`F8)ILEwF9I9l^PW1Y{ zhrg_;-Bb&V?OQt+D7=L{WGx#FXl=eH7kBt_`}5)!l2}qT8i@m2r>GgHc&AQ;$yvvU z4$Tj$+VMn68w$+^pd50J><7&l#&*|tTiTln@3ib4_gG5BwX~il3I`f4>S!;fNmhx@j>qCq zo*%EiICc8w>$4|7jIO*RNG*Lff|Ay3wfaun_7lbJ1X05eAu*TPp3pH|ykWo)U0!Cu z^xZ?$jFI#PY6(y!@p18$Yf3@lQv*X)H5no=$Db@0a~ABl!jU1i+jFgBkqlFM5?eCZw*v8l8FB|zj`mGm@Z)gXmM z)jy1FM~ChN2cP7Ld}vUK_XFq1dH45F^C}5L_iWxF>gvTCMp4gB{=!)%{VL6;`8^o0 z>hSo?LF~lrXuBD04~H#}&V7hv<$9MHjWu^yR}6j;yhl&_p2CR)zG#yC_A74)#ttqr z!CB%y0_CAzqtRmDrtF>Y;22C^#B}9+yQ8Y-fNT!KMLPP^Ea!%=J1?2T zU<8GZQQP-Z{tCb~DS~qEMN*04xG+Kj=JV=VkgTJNi5jH7ON(an6?fCyv>V+2>U@)? zwEtIB)Td)I()(e|^H0q`FCXon{z3OPT}k4Pj{m3UFb9nTXMH5*aQdI-^nVvuL}^CW znkZ-Zr{<5qf3>@*$M7&-k)im(rN3+bE6|&CnuYf5vpD}(L|RYQb06qOIl?m&|J(d; zfnNXnbN_1`x_>SAw=e$Vd2|f_y5+xP?w|1SZ$SAwe*QPM{|g2G)y3ba_Ak!;e?k06 ZM20X4e)K+8oR0Pw-!jv$*S+`n{{WHn&v5_% literal 0 HcmV?d00001 From 49d91dd21141065dc345bc040f3f8a73964fe12a Mon Sep 17 00:00:00 2001 From: ImgBotApp Date: Tue, 21 Dec 2021 15:21:45 +0000 Subject: [PATCH 2526/3440] [ImgBot] Optimize images *Total -- 103.70kb -> 82.48kb (20.46%) /tmpl/assets/sponsors/doppler.png -- 61.36kb -> 41.35kb (32.62%) /tmpl/assets/logo.png -- 42.34kb -> 41.14kb (2.84%) Signed-off-by: ImgBotApp --- tmpl/assets/logo.png | Bin 43353 -> 42123 bytes tmpl/assets/sponsors/doppler.png | Bin 62835 -> 42339 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tmpl/assets/logo.png b/tmpl/assets/logo.png index b1f724174554e23ab60a05b54bdb1947081f2624..982d648913b92f6c1c6527c0810b599cb8f91c80 100644 GIT binary patch literal 42123 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 literal 43353 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%0DpPw&zvd0=jDE-*B*Kz`S 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 L^78WdxrVQ8ixybyS+Ao6lHnQB7O5zWuum0A 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 literal 62835 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 ZM20X4e)K+8oR0Pw-!jv$*S+`n{{WHn&v5_% From d3ad13df0de4eeaf85600024dbbe23f8343c7664 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:10:33 -0300 Subject: [PATCH 2527/3440] set sponsor to h3 (md) Signed-off-by: Avelino --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d7ecd6ba269..0ff514c20f9 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt -## Sponsorships +### Sponsorships [![Doppler](https://github.com/avelino/awesome-go/raw/main/tmpl/assets/sponsors/doppler.png)](https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesomego&utm_source=github) From 109b1039418d1d0c3bb3c134c620bb44588c8115 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:11:42 -0300 Subject: [PATCH 2528/3440] change github_flavored_markdown to gomarkdown/markdown Signed-off-by: Avelino --- go.mod | 16 +++------------- go.sum | 42 +++++------------------------------------- 2 files changed, 8 insertions(+), 50 deletions(-) diff --git a/go.mod b/go.mod index 3c707fcf6c1..77639f301e0 100644 --- a/go.mod +++ b/go.mod @@ -4,27 +4,17 @@ go 1.17 require ( github.com/PuerkitoBio/goquery v1.8.0 + github.com/avelino/slugify v0.0.0-20180501145920-855f152bd774 + github.com/gomarkdown/markdown v0.0.0-20211212230626-5af6ad2f47df github.com/russross/blackfriday v1.6.0 - github.com/shurcooL/github_flavored_markdown v0.0.0-20210228213109-c3a9aa474629 golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 ) require ( github.com/andybalholm/cascadia v1.3.1 // indirect - github.com/aymerick/douceur v0.2.0 // indirect github.com/golang/protobuf v1.4.2 // indirect - github.com/gorilla/css v1.0.0 // indirect - github.com/microcosm-cc/bluemonday v1.0.16 // indirect - github.com/sergi/go-diff v1.2.0 // indirect - github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 // indirect - github.com/shurcooL/go-goon v0.0.0-20210110234559-7585751d9a17 // indirect - github.com/shurcooL/highlight_diff v0.0.0-20181222201841-111da2e7d480 // indirect - github.com/shurcooL/highlight_go v0.0.0-20191220051317-782971ddf21b // indirect - github.com/shurcooL/octicon v0.0.0-20191102190552-cbb32d6a785c // indirect - github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect - github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d // indirect - github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e // indirect golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 // indirect + golang.org/x/text v0.3.6 // indirect google.golang.org/appengine v1.6.6 // indirect google.golang.org/protobuf v1.25.0 // indirect ) diff --git a/go.sum b/go.sum index c5af8e7e9f7..b9deab970f6 100644 --- a/go.sum +++ b/go.sum @@ -37,8 +37,8 @@ github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0g github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI= github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c= github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= -github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= -github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= +github.com/avelino/slugify v0.0.0-20180501145920-855f152bd774 h1:HrMVYtly2IVqg9EBooHsakQ256ueojP7QuG32K71X/U= +github.com/avelino/slugify v0.0.0-20180501145920-855f152bd774/go.mod h1:5wi5YYOpfuAKwL5XLFYopbgIl/v7NZxaJpa/4X6yFKE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= @@ -46,8 +46,6 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -80,6 +78,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/gomarkdown/markdown v0.0.0-20211212230626-5af6ad2f47df h1:M7mdNDTRraBcrHZg2aOYiFP9yTDajb6fquRZRpXnbVA= +github.com/gomarkdown/markdown v0.0.0-20211212230626-5af6ad2f47df/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -102,50 +102,21 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= -github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/microcosm-cc/bluemonday v1.0.16 h1:kHmAq2t7WPWLjiGvzKa5o3HzSfahUKiOq7fAPUiMNIc= -github.com/microcosm-cc/bluemonday v1.0.16/go.mod h1:Z0r70sCuXHig8YpBzCc5eGHAap2K7e/u082ZUpDRRqM= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= -github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= -github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shurcooL/github_flavored_markdown v0.0.0-20210228213109-c3a9aa474629 h1:86e54L0i3pH3dAIA8OxBbfLrVyhoGpnNk1iJCigAWYs= -github.com/shurcooL/github_flavored_markdown v0.0.0-20210228213109-c3a9aa474629/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= -github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 h1:aSISeOcal5irEhJd1M+IrApc0PdcN7e7Aj4yuEnOrfQ= -github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v0.0.0-20210110234559-7585751d9a17 h1:lRAUE0dIvigSSFAmaM2dfg7OH8T+a8zJ5smEh09a/GI= -github.com/shurcooL/go-goon v0.0.0-20210110234559-7585751d9a17/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= -github.com/shurcooL/highlight_diff v0.0.0-20181222201841-111da2e7d480 h1:KaKXZldeYH73dpQL+Nr38j1r5BgpAYQjYvENOUpIZDQ= -github.com/shurcooL/highlight_diff v0.0.0-20181222201841-111da2e7d480/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= -github.com/shurcooL/highlight_go v0.0.0-20191220051317-782971ddf21b h1:rBIwpb5ggtqf0uZZY5BPs1sL7njUMM7I8qD2jiou70E= -github.com/shurcooL/highlight_go v0.0.0-20191220051317-782971ddf21b/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= -github.com/shurcooL/octicon v0.0.0-20191102190552-cbb32d6a785c h1:p3w+lTqXulfa3aDeycxmcLJDNxyUB89gf2/XqqK3eO0= -github.com/shurcooL/octicon v0.0.0-20191102190552-cbb32d6a785c/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d h1:yKm7XZV6j9Ev6lojP2XaIshpT4ymkqhMeSghO5Ps00E= -github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= -github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e h1:qpG93cPwA5f7s/ZPBJnGOYQNK/vKsaDaseuKT5Asee8= -github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -216,7 +187,6 @@ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 h1:/6y1LfuqNuQdHAm0jjtPtgRcxIxjVZgm5OTu8/QhZvk= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -267,6 +237,7 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -393,11 +364,8 @@ google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4 google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From d7c4c5038922b9602040c8e67bdacc6ac2f27cbe Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:12:40 -0300 Subject: [PATCH 2529/3440] move html generate func to scripts will be used in the generation of htmls from the sub-category focus on SEO Signed-off-by: Avelino --- repo_test.go | 23 +---------------------- scripts.go | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/repo_test.go b/repo_test.go index 9b694fa1c93..858d35617b1 100644 --- a/repo_test.go +++ b/repo_test.go @@ -2,21 +2,14 @@ package main import ( "io/ioutil" - "os" "regexp" "sort" "strings" "testing" - "text/template" "github.com/PuerkitoBio/goquery" - gfm "github.com/shurcooL/github_flavored_markdown" ) -type content struct { - Body string -} - func TestAlpha(t *testing.T) { query := startQuery() @@ -76,7 +69,7 @@ func TestSeparator(t *testing.T) { } } func TestGenerateHTML(t *testing.T) { - err := generateHTML() + err := GenerateHTML() if err != nil { t.Errorf("html generate error '%s'", err.Error()) } @@ -113,17 +106,3 @@ func checkAlphabeticOrder(t *testing.T, s *goquery.Selection) { t.Logf("expected order is:\n%s", strings.Join(sorted, "\n")) } } - -func generateHTML() (err error) { - // options - readmePath := "./README.md" - tplPath := "tmpl/tmpl.html" - idxPath := "tmpl/index.html" - input, _ := ioutil.ReadFile(readmePath) - body := string(gfm.Markdown(input)) - c := &content{Body: body} - t := template.Must(template.ParseFiles(tplPath)) - f, err := os.Create(idxPath) - t.Execute(f, c) - return -} diff --git a/scripts.go b/scripts.go index 1d0a260cb71..eeb6d40c4b2 100644 --- a/scripts.go +++ b/scripts.go @@ -4,8 +4,12 @@ import ( "bytes" "fmt" "io/ioutil" + "os" + "text/template" "github.com/PuerkitoBio/goquery" + "github.com/gomarkdown/markdown" + "github.com/gomarkdown/markdown/parser" "github.com/russross/blackfriday" ) @@ -27,3 +31,25 @@ func startQuery() *goquery.Document { } return query } + +type content struct { + Body string +} + +func GenerateHTML() (err error) { + // options + readmePath := "./README.md" + tplPath := "tmpl/tmpl.html" + idxPath := "tmpl/index.html" + input, _ := ioutil.ReadFile(readmePath) + extensions := parser.CommonExtensions | parser.AutoHeadingIDs | parser.LaxHTMLBlocks + parser := parser.NewWithExtensions(extensions) + + body := string(markdown.ToHTML(input, parser, nil)) + // body := string(gfm.Markdown(input)) + c := &content{Body: body} + t := template.Must(template.ParseFiles(tplPath)) + f, err := os.Create(idxPath) + t.Execute(f, c) + return +} From c6453be9bf3c7344758bdd46d55d2fdb752d4f96 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:14:01 -0300 Subject: [PATCH 2530/3440] change sitemap to go template Signed-off-by: Avelino --- tmpl/{sitemap.xml => sitemap-tmpl.xml} | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) rename tmpl/{sitemap.xml => sitemap-tmpl.xml} (53%) diff --git a/tmpl/sitemap.xml b/tmpl/sitemap-tmpl.xml similarity index 53% rename from tmpl/sitemap.xml rename to tmpl/sitemap-tmpl.xml index a401f17c82a..2ede8fedb81 100644 --- a/tmpl/sitemap.xml +++ b/tmpl/sitemap-tmpl.xml @@ -5,8 +5,14 @@ xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> - - http://www.awesome-go.com/ - 2016-10-10T07:39:03+00:00 - - \ No newline at end of file + + https://www.awesome-go.com/ + 2016-10-10T07:39:03+00:00 + + {{range .}} + + https://www.awesome-go.com/{{.Slug}} + 2016-10-10T07:39:03+00:00 + + {{end}} + From 240fa26e04a0f0c6d8b1d3b3f269d40000dc4732 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:14:34 -0300 Subject: [PATCH 2531/3440] initial logic for generating folder/htmld sub cat Signed-off-by: Avelino --- make_site.go | 99 ++++++++++++++++++++++++++++++++++++++++++++++ tmpl/cat-tmpl.html | 57 ++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 make_site.go create mode 100644 tmpl/cat-tmpl.html diff --git a/make_site.go b/make_site.go new file mode 100644 index 00000000000..7112f6e6817 --- /dev/null +++ b/make_site.go @@ -0,0 +1,99 @@ +package main + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "os" + "text/template" + + "github.com/PuerkitoBio/goquery" + "github.com/avelino/slugify" +) + +type Link struct { + Title string + Url string + Description string +} + +type Object struct { + Title string + Slug string + Description string + Items []Link +} + +func main() { + GenerateHTML() + input, err := ioutil.ReadFile("./tmpl/index.html") + if err != nil { + panic(err) + } + buf := bytes.NewBuffer(input) + query, err := goquery.NewDocumentFromReader(buf) + if err != nil { + panic(err) + } + + objs := []Object{} + query.Find("body #content ul ul").First().Each(func(_ int, s *goquery.Selection) { + + s.Find("li a").Each(func(_ int, s *goquery.Selection) { + selector, _ := s.Attr("href") + obj := makeObjById(selector, query.Find("body")) + objs = append(objs, obj) + }) + }) + + makeSiteStruct(objs) + makeSitemap(objs) +} + +func makeSiteStruct(objs []Object) { + for _, obj := range objs { + folder := fmt.Sprintf("tmpl/%s", obj.Slug) + fmt.Println(folder) + + err := os.Mkdir(folder, 0755) + if err != nil { + log.Println(err) + } + + t := template.Must(template.ParseFiles("tmpl/cat-tmpl.html")) + f, _ := os.Create(fmt.Sprintf("%s/index.html", folder)) + t.Execute(f, obj) + } +} + +func makeSitemap(objs []Object) { + t := template.Must(template.ParseFiles("tmpl/sitemap-tmpl.xml")) + f, _ := os.Create("tmpl/sitemap.xml") + t.Execute(f, objs) +} + +func makeObjById(selector string, s *goquery.Selection) (obj Object) { + s.Find(selector).Each(func(_ int, s *goquery.Selection) { + desc := s.NextFiltered("p") + ul := desc.NextFiltered("ul") + + links := []Link{} + ul.Find("li").Each(func(_ int, s *goquery.Selection) { + url, _ := s.Find("a").Attr("href") + link := Link{ + Title: s.Find("a").Text(), + Description: s.Text(), + Url: url, + } + links = append(links, link) + }) + obj = Object{ + Slug: slugify.Slugify(s.Text()), + Title: s.Text(), + Description: desc.Text(), + Items: links, + } + }) + return +} diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html new file mode 100644 index 00000000000..c7db71e448a --- /dev/null +++ b/tmpl/cat-tmpl.html @@ -0,0 +1,57 @@ + + + + + + + + + {{.Title}} - Awesome Go + + + + + + + + + + + + + + + +
+
    + {{range .Items}} +
  • {{.Descrition}}
  • + {{end}} +
+ + + Deploys by Netlify + +
+ + + + + + + \ No newline at end of file From bb662323bd0e24f9a6460e3614268a1a74510dc9 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:27:50 -0300 Subject: [PATCH 2532/3440] ignore all .html Signed-off-by: Avelino --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ac9b53b2824..6230dcfff0c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,6 @@ awesome-go test_stale_repositories_log *.exe # Local Netlify folder -.netlify \ No newline at end of file +.netlify +*.html +sitemap.xml From 26634e7b1ddc214139b2b2728e38bf3a2601c7d4 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:28:11 -0300 Subject: [PATCH 2533/3440] remove debug/print Signed-off-by: Avelino --- make_site.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/make_site.go b/make_site.go index 7112f6e6817..845ff745f62 100644 --- a/make_site.go +++ b/make_site.go @@ -54,8 +54,6 @@ func main() { func makeSiteStruct(objs []Object) { for _, obj := range objs { folder := fmt.Sprintf("tmpl/%s", obj.Slug) - fmt.Println(folder) - err := os.Mkdir(folder, 0755) if err != nil { log.Println(err) From 4509940d0379d9ae39c3d45b7b463523970cd4c5 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:28:23 -0300 Subject: [PATCH 2534/3440] subcat: add html header Signed-off-by: Avelino --- tmpl/cat-tmpl.html | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index c7db71e448a..0b857369f73 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -23,9 +23,31 @@
+
+

+ + awesome-go + + {{.Title}} - Awesome Go +

+ +

+ Build Status + Awesome + Slack Widget + Netlify Status + Track Awesome List +

+ +

+ +

+ +
+ From c9c448c8f0bbe389456329a8811fa5d8acdf243c Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:39:01 -0300 Subject: [PATCH 2535/3440] remove site deploy of tests running Signed-off-by: Avelino --- .github/workflows/tests.yaml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 15435fd591a..7f84ac0b1a8 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -1,4 +1,4 @@ -name: Run tests +name: tests on: push: @@ -10,7 +10,6 @@ jobs: build: name: Running test runs-on: ubuntu-latest - environment: netlify container: golang:latest steps: - uses: actions/checkout@1.0.0 @@ -18,11 +17,3 @@ jobs: run: go get -v -t -d ./... - name: Run tests run: go test - - name: netlify awesome-go.com - uses: jsmrcaga/action-netlify-deploy@v1.1.0 - if: contains('refs/heads/main', github.ref) - with: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - NETLIFY_DEPLOY_TO_PROD: true - build_directory: tmpl From a138bde1dc6cc595f24d0fa871879dcf1b28f35d Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:39:23 -0300 Subject: [PATCH 2536/3440] site deploy action run only main branch Signed-off-by: Avelino --- .github/workflows/site-deploy.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/site-deploy.yaml diff --git a/.github/workflows/site-deploy.yaml b/.github/workflows/site-deploy.yaml new file mode 100644 index 00000000000..673e4f3104c --- /dev/null +++ b/.github/workflows/site-deploy.yaml @@ -0,0 +1,27 @@ +name: site-deploy + +on: + push: + branches: + - 'main' + +jobs: + build: + name: Make and Deploy site + runs-on: ubuntu-latest + environment: netlify + container: golang:latest + needs: tests + steps: + - uses: actions/checkout@1.0.0 + - name: Get dependencies + run: go get -v -t -d ./... + - name: Make awesome-go.com + run: go run make_site.go scripts.go + - name: deploy awesome-go.com + uses: jsmrcaga/action-netlify-deploy@v1.1.0 + with: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + NETLIFY_DEPLOY_TO_PROD: true + build_directory: tmpl From e8878bfcce4ed123d52550887eb1ae8279a7e0fc Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:46:19 -0300 Subject: [PATCH 2537/3440] run specific test Signed-off-by: Avelino --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 7f84ac0b1a8..de83e3b63a1 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -16,4 +16,4 @@ jobs: - name: Get dependencies run: go get -v -t -d ./... - name: Run tests - run: go test + run: go test repo_test.go scripts.go From f45753b8cc5622467e7180b5d3f70a53d69d3d84 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 22 Dec 2021 10:54:06 -0300 Subject: [PATCH 2538/3440] fixed typo action needs attr Signed-off-by: Avelino --- .github/workflows/site-deploy.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/site-deploy.yaml b/.github/workflows/site-deploy.yaml index 673e4f3104c..bc7a2e56ab6 100644 --- a/.github/workflows/site-deploy.yaml +++ b/.github/workflows/site-deploy.yaml @@ -11,7 +11,6 @@ jobs: runs-on: ubuntu-latest environment: netlify container: golang:latest - needs: tests steps: - uses: actions/checkout@1.0.0 - name: Get dependencies From 75d1991fb6409f6ef8e63ce7152693f302edcde7 Mon Sep 17 00:00:00 2001 From: Icelain Date: Wed, 22 Dec 2021 23:14:08 +0530 Subject: [PATCH 2539/3440] added jokeapi-go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0ff514c20f9..a08ff231d8f 100644 --- a/README.md +++ b/README.md @@ -2193,6 +2193,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. * [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). +* [jokeapi-go](https://github.com/icelain/jokeapi) - Go client for [JokeAPI](https://sv443.net/jokeapi/v2/). * [kanka](https://github.com/Henry-Sarabia/kanka) - Go client for the [Kanka API](https://kanka.io/en-US/docs/1.0). * [lark](https://github.com/chyroc/lark) - [Feishu](https://open.feishu.cn/)/[Lark](https://open.larksuite.com/) Open API Go SDK, Support ALL Open API and Event Callback. * [lastpass-go](https://github.com/ansd/lastpass-go) - Go client library for the [LastPass](https://www.lastpass.com/) API. From a3b671838336a724281b0ea1a1283c4c4dea9342 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 25 Dec 2021 11:04:11 -0300 Subject: [PATCH 2540/3440] add page description on subpages Signed-off-by: Avelino --- tmpl/cat-tmpl.html | 17 ++++++++- tmpl/tmpl.html | 89 ++++++++++++++++++++++++---------------------- 2 files changed, 62 insertions(+), 44 deletions(-) diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index 0b857369f73..49a261285bd 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -16,6 +16,8 @@ + + @@ -31,6 +33,8 @@

{{.Title}} - Awesome Go

+

{{.Description}}

+

Build Status Awesome @@ -44,10 +48,21 @@

+
+

Sponsorships

+

+ Doppler +

+

+ Digital Ocean +

+
+ + 🗺️ back to content menu diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index 152188861e4..335e7b6cbc5 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -2,51 +2,54 @@ - - - - - A curated list of awesome Go frameworks, libraries and software - Awesome Go - - - - - - - - - - - - + + + + + A curated list of awesome Go frameworks, libraries and software - Awesome Go + + + + + + + + + + + + + + -
- {{.Body}} - - - Deploys by Netlify - -
- - - - +
+ {{.Body}} + + + Deploys by Netlify + +
+ + + + - + \ No newline at end of file From 21ab3c9012d4fbf3239df12581f6a7581653b354 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 25 Dec 2021 11:31:41 -0300 Subject: [PATCH 2541/3440] remove comment source Signed-off-by: Avelino --- scripts.go | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts.go b/scripts.go index eeb6d40c4b2..3bc1a33ab2c 100644 --- a/scripts.go +++ b/scripts.go @@ -46,7 +46,6 @@ func GenerateHTML() (err error) { parser := parser.NewWithExtensions(extensions) body := string(markdown.ToHTML(input, parser, nil)) - // body := string(gfm.Markdown(input)) c := &content{Body: body} t := template.Must(template.ParseFiles(tplPath)) f, err := os.Create(idxPath) From c9149ac26e6d30b933727cd9641c309033be8051 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 25 Dec 2021 11:32:20 -0300 Subject: [PATCH 2542/3440] change anchor to folder link Signed-off-by: Avelino --- make_site.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/make_site.go b/make_site.go index 845ff745f62..b858c0730f6 100644 --- a/make_site.go +++ b/make_site.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "log" "os" + "strings" "text/template" "github.com/PuerkitoBio/goquery" @@ -49,6 +50,7 @@ func main() { makeSiteStruct(objs) makeSitemap(objs) + changeLinksInIndex(string(input), query) } func makeSiteStruct(objs []Object) { @@ -95,3 +97,18 @@ func makeObjById(selector string, s *goquery.Selection) (obj Object) { }) return } + +func changeLinksInIndex(html string, query *goquery.Document) { + query.Find("body #content ul li ul li a").Each(func(_ int, s *goquery.Selection) { + + href, exists := s.Attr("href") + if exists { + uri := strings.SplitAfter(href, "#") + if len(uri) >= 2 { + html = strings.ReplaceAll(html, fmt.Sprintf(`href="%s"`, href), fmt.Sprintf(`href="%s"`, uri[1])) + } + } + }) + + os.WriteFile("./tmpl/index.html", []byte(html), 0644) +} From 11c62d489b8f3339b74fede983b7decbad611f32 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 25 Dec 2021 11:49:45 -0300 Subject: [PATCH 2543/3440] fixed link typo Signed-off-by: Avelino --- tmpl/cat-tmpl.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index 49a261285bd..f428c6bed15 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -62,7 +62,7 @@

Sponsorships

From 2ee9aec6934f9f7475ae2c5a8ddcb7398350f925 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 27 Dec 2021 06:52:27 -0300 Subject: [PATCH 2544/3440] amazon book recomendation Signed-off-by: Avelino --- tmpl/cat-tmpl.html | 4 ++++ tmpl/tmpl.html | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index f428c6bed15..20081bf1a3c 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -50,6 +50,10 @@

Sponsorships

+

+

+ +

Doppler

diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index 335e7b6cbc5..0331b00fc6e 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -25,6 +25,11 @@
+

+

+ +

+ {{.Body}} From 5be0df3afa9fe81ce1b766fbcfeaa9d6d503296e Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 27 Dec 2021 06:55:03 -0300 Subject: [PATCH 2545/3440] generatehtml func descrition Signed-off-by: Avelino --- scripts.go | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts.go b/scripts.go index 3bc1a33ab2c..3f93cbade22 100644 --- a/scripts.go +++ b/scripts.go @@ -36,6 +36,7 @@ type content struct { Body string } +// GenerateHTML generate site html (index.html) from markdown file func GenerateHTML() (err error) { // options readmePath := "./README.md" From 00938a938a492d605fefe428190f27f7ca421672 Mon Sep 17 00:00:00 2001 From: Artie Kushner <34076599+rtviii@users.noreply.github.com> Date: Mon, 27 Dec 2021 21:31:36 -0800 Subject: [PATCH 2546/3440] feat: add solana-go (#3927) * Update README.md Added the Solana RPC implementation in Go to the Blockchains section. This one's going to be important ;) * moved solana-go to alphabetical order * re add . Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a08ff231d8f..f668dde1ba9 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem. * [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol. * [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host. +* [solana-go](https://github.com/gagliardetto/solana-go) - Go library to interface with Solana JSON RPC and WebSocket interfaces. * [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. **[⬆ back to top](#contents)** From 59b3454976f29bd52606dd6adf341c8575241ebc Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 28 Dec 2021 06:23:59 -0300 Subject: [PATCH 2547/3440] create netlify redirects ref: https://docs.netlify.com/routing/redirects/ Signed-off-by: Avelino --- tmpl/_redirects | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 tmpl/_redirects diff --git a/tmpl/_redirects b/tmpl/_redirects new file mode 100644 index 00000000000..d1c859a5834 --- /dev/null +++ b/tmpl/_redirects @@ -0,0 +1,2 @@ +/awesome-cloud-native/ / +/awesome-go-fork/ / From bd25970ab30e4727047e45c414a92ec56fc26d9a Mon Sep 17 00:00:00 2001 From: vpereira01 <42812459+vpereira01@users.noreply.github.com> Date: Thu, 30 Dec 2021 17:03:14 +0000 Subject: [PATCH 2548/3440] Fixed "leraning" spelling --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f668dde1ba9..3dd0cd46ebc 100644 --- a/README.md +++ b/README.md @@ -1301,7 +1301,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-cluster](https://github.com/e-XpertSolutions/go-cluster) - Go implementation of the k-modes and k-prototypes clustering algorithms. * [go-deep](https://github.com/patrikeh/go-deep) - A feature-rich neural network library in Go. * [go-fann](https://github.com/white-pony/go-fann) - Go bindings for Fast Artificial Neural Networks(FANN) library. -* [go-featureprocessing](https://github.com/nikolaydubina/go-featureprocessing) - Fast and convenient feature processing for low latency machine leraning in Go. +* [go-featureprocessing](https://github.com/nikolaydubina/go-featureprocessing) - Fast and convenient feature processing for low latency machine learning in Go. * [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. From f571a5004716ccddc24d006a51ca3f87a364ef3e Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Sat, 1 Jan 2022 11:56:59 +0530 Subject: [PATCH 2549/3440] feat: add mage to build automation category (#3975) Related - https://github.com/avelino/awesome-go/pull/3401 - https://github.com/avelino/awesome-go/pull/3891 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3dd0cd46ebc..e3201c1476f 100644 --- a/README.md +++ b/README.md @@ -238,6 +238,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. * [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. * [goyek](https://github.com/goyek/goyek) - Create build pipelines in Go. +* [mage](https://github.com/magefile/mage) - Mage is a make/rake-like build tool using Go. * [mmake](https://github.com/tj/mmake) - Modern Make. * [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. * [Task](https://github.com/go-task/task) - simple "Make" alternative. From d49bcce03bda70ecf9b281f7e2b5d49776362e2f Mon Sep 17 00:00:00 2001 From: Yutaka Ichibangase Date: Sat, 1 Jan 2022 15:38:27 +0900 Subject: [PATCH 2550/3440] add prolog (#3936) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e3201c1476f..9afe3efd6c5 100644 --- a/README.md +++ b/README.md @@ -822,6 +822,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gval](https://github.com/PaesslerAG/gval) - A highly customizable expression language written in Go. * [metacall](https://github.com/metacall/core) - Cross-platform Polyglot Runtime which supports NodeJS, JavaScript, TypeScript, Python, Ruby, C#, WebAssembly, Java, Cobol and more. * [ngaro](https://github.com/db47h/ngaro) - Embeddable Ngaro VM implementation enabling scripting in Retro. +* [prolog](https://github.com/ichiban/prolog) - Embeddable Prolog. * [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go. * [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. From 42e79ae43fa954e42d7fb0d84e4377adfbaa85f8 Mon Sep 17 00:00:00 2001 From: Artem Yadelskyi Date: Sat, 1 Jan 2022 08:40:22 +0200 Subject: [PATCH 2551/3440] Added telego (#3937) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9afe3efd6c5..e2491f09ff3 100644 --- a/README.md +++ b/README.md @@ -223,6 +223,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [slackscot](https://github.com/alexandre-normand/slackscot) - Another framework for building Slack bots. * [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. +* [telego](https://github.com/mymmrac/telego) - Telegram Bot API library for Golang with full one-to-one API implementation. * [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. * [teleterm](https://github.com/alfiankan/teleterm) - Telegram Bot Exec Terminal Command. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. From 1b0497a597169f3449bfdff85d5d821a0f9ba92e Mon Sep 17 00:00:00 2001 From: Raymond Liu Date: Tue, 16 Nov 2021 13:24:46 +0800 Subject: [PATCH 2552/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e2491f09ff3..0860f416533 100644 --- a/README.md +++ b/README.md @@ -1651,6 +1651,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. * [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. * [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. +* [go-retryablehttp](https://github.com/hashicorp/) - Retryable HTTP client in Go * [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. * [heimdall](https://github.com/gojektech/heimdall) - An enhanced http client with retry and hystrix capabilities. * [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. From d07448ae68bf650ab5e04ebc9566675f886a0107 Mon Sep 17 00:00:00 2001 From: Jioby Date: Fri, 26 Nov 2021 21:11:08 +0800 Subject: [PATCH 2553/3440] Add cvt "Convert any value to another type" A library for easy and safe convert any value to another type, with 99% coverage, 1000+ test case, A+ Go Report, full documentation, and at least monthly updates. * [x] I have added my package in alphabetical order. * [x] I have an appropriate description with correct grammar. * [x] I know that this package was not listed before. * [x] I have added pkg.go.dev link to the repo and to my pull request. * [x] I have added coverage service link to the repo and to my pull request. * [x] I have added goreportcard link to the repo and to my pull request. * [x] 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-standards). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0860f416533..42d5990d29f 100644 --- a/README.md +++ b/README.md @@ -2260,6 +2260,7 @@ _**Unofficial** set of patterns for structuring projects._ * [cryptgo](https://github.com/Gituser143/cryptgo) - Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time! * [ctop](https://github.com/bcicen/ctop) - [Top-like](https://ctop.sh) interface (e.g. htop) for container metrics. * [ctxutil](https://github.com/posener/ctxutil) - A collection of utility functions for contexts. +* [cvt](https://github.com/shockerli/cvt) - Easy and safe convert any value to another type. * [dbt](https://github.com/nikogura/dbt) - A framework for running self-updating signed binaries from a central, trusted repository. * [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. * [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. From d0244243cd1267db487ad061a3f5e89640318c1f Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 1 Jan 2022 09:32:46 -0300 Subject: [PATCH 2554/3440] fixed typo Signed-off-by: Avelino --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 42d5990d29f..d24db04051d 100644 --- a/README.md +++ b/README.md @@ -1651,7 +1651,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. * [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. * [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. -* [go-retryablehttp](https://github.com/hashicorp/) - Retryable HTTP client in Go +* [go-retryablehttp](https://github.com/hashicorp/) - Retryable HTTP client in Go. * [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. * [heimdall](https://github.com/gojektech/heimdall) - An enhanced http client with retry and hystrix capabilities. * [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. From dcaaac51b4f935f7d15869de05241e5702e8f9c3 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sun, 2 Jan 2022 06:34:32 -0300 Subject: [PATCH 2555/3440] essentialkaos/branca ref: #3976 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d24db04051d..d4458900f30 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for implementing authentications schemes.* * [authboss](https://github.com/volatiletech/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. -* [branca](https://github.com/hako/branca) - Golang implementation of Branca Tokens. +* [branca](https://github.com/essentialkaos/branca) - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+. * [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. * [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. * [go-email-normalizer](https://github.com/dimuska139/go-email-normalizer) - Golang library for providing a canonical representation of email address. From cc291e9343a56c95add806c74fe4e0752640e168 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sun, 2 Jan 2022 06:37:45 -0300 Subject: [PATCH 2556/3440] remove goji/httpauth non-updated package ref: #3976 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d4458900f30..da7b11a682d 100644 --- a/README.md +++ b/README.md @@ -162,7 +162,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. -* [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. * [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure and idiomatic web session management with pluggable backends. * [jwt](https://github.com/robbert229/jwt) - Clean and easy to use implementation of JSON Web Tokens (JWT). * [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. From 021a6e9eac63c004c1760e274a230e4d754f661a Mon Sep 17 00:00:00 2001 From: Yahav Itzhak Date: Sun, 2 Jan 2022 15:10:59 +0200 Subject: [PATCH 2557/3440] feat: add froggit-go (#3972) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da7b11a682d..4d34f492ccc 100644 --- a/README.md +++ b/README.md @@ -2433,6 +2433,7 @@ _**Unofficial** set of patterns for structuring projects._ *Libraries for version control.* +* [froggit-go](https://github.com/jfrog/froggit-go) - Froggit-Go is a Go library, allowing to perform actions on VCS providers. * [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. * [githooks](https://github.com/gabyx/githooks) - Per-repo and shared Git hooks with version control and auto update. From 5bb4145b88dced9c0a9457db381a5a2b75b3e3c1 Mon Sep 17 00:00:00 2001 From: Abdelrahman Ahmed Date: Tue, 4 Jan 2022 03:44:26 +0200 Subject: [PATCH 2558/3440] add kwatch --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d34f492ccc..5d38fba5b77 100644 --- a/README.md +++ b/README.md @@ -2433,7 +2433,7 @@ _**Unofficial** set of patterns for structuring projects._ *Libraries for version control.* -* [froggit-go](https://github.com/jfrog/froggit-go) - Froggit-Go is a Go library, allowing to perform actions on VCS providers. +* [froggit-go](https://github.com/jfrog/froggit-go) - Froggit-Go is a Go library, allowing to perform actions on VCS providers. * [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. * [githooks](https://github.com/gabyx/githooks) - Per-repo and shared Git hooks with version control and auto update. @@ -2770,6 +2770,7 @@ _**Unofficial** set of patterns for structuring projects._ * [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. * [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. +* [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly. * [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. * [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. * [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. From 8d47ee0477b3e332b5f28ede0f8d7351cff88ed9 Mon Sep 17 00:00:00 2001 From: Wendell Sun Date: Tue, 4 Jan 2022 09:21:45 +0800 Subject: [PATCH 2559/3440] fix link errors --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 5d38fba5b77..9d057fcaabd 100644 --- a/README.md +++ b/README.md @@ -1650,7 +1650,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. * [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. * [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. -* [go-retryablehttp](https://github.com/hashicorp/) - Retryable HTTP client in Go. +* [go-retryablehttp](https://github.com/hashicorp/go-retryablehttp) - Retryable HTTP client in Go. * [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. * [heimdall](https://github.com/gojektech/heimdall) - An enhanced http client with retry and hystrix capabilities. * [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. @@ -2946,7 +2946,6 @@ _**Unofficial** set of patterns for structuring projects._ * [Go-gopher-Vector](https://github.com/keygx/Go-gopher-Vector) - Go gopher Vector Data [.ai, .svg]. * [gopher-logos](https://github.com/GolangUA/gopher-logos) - adorable gopher logos. * [gopher-stickers](https://github.com/tenntenn/gopher-stickers) -* [gopher-vector](https://github.com/golang-samples/gopher-vector) * [gophericons](https://github.com/shalakhin/gophericons) * [gopherize.me](https://github.com/matryer/gopherize.me) - Gopherize yourself. * [gophers](https://github.com/ashleymcnamara/gophers) - Gopher artworks by Ashley McNamara. From ccee6d3760c19964674628aebe354f6034b582d0 Mon Sep 17 00:00:00 2001 From: Sameer Azazi Date: Wed, 5 Jan 2022 10:55:27 +0530 Subject: [PATCH 2560/3440] feat: add google/wire to the list of DI libraries (#3967) * Add google/wire to the list of DI libraries list * Sort DI libraries list in alphabetic order * Add punctuation to the google/wire description * remove newline Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9d057fcaabd..033950fdb24 100644 --- a/README.md +++ b/README.md @@ -1422,6 +1422,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). * [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. * [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. +* [google/wire](https://github.com/google/wire) - Automated Initialization in Go. * [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. * [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. * [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. From 27a855c54199b9d0ebb8d5a7211b1319f44d6f2e Mon Sep 17 00:00:00 2001 From: Nate <37554478+servusdei2018@users.noreply.github.com> Date: Sun, 26 Dec 2021 17:15:08 -0500 Subject: [PATCH 2561/3440] doc: add protoncheck --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 033950fdb24..0c7ed2c26ec 100644 --- a/README.md +++ b/README.md @@ -2845,6 +2845,7 @@ _**Unofficial** set of patterns for structuring projects._ * [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. * [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. +* [protoncheck](https://github.com/servusdei2018/protoncheck) - ProtonMail module for waybar/polybar/yabar/i3blocks. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. From 06171cb3fecbdfc3c4e5f80674c5236dc82ea0ec Mon Sep 17 00:00:00 2001 From: Ochi Daiki Date: Thu, 13 Jan 2022 14:40:14 +0900 Subject: [PATCH 2562/3440] gtree: update description (#3984) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c7ed2c26ec..9acb9d1badf 100644 --- a/README.md +++ b/README.md @@ -1496,7 +1496,7 @@ _**Unofficial** set of patterns for structuring projects._ * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. * [gotoprom](https://github.com/cabify/gotoprom) - Type-safe metrics builder wrapper library for the official Prometheus client. * [gountries](https://github.com/pariz/gountries) - Package that exposes country and subdivision data. -* [gtree](https://github.com/ddddddO/gtree) - Provide CLI and Package to generate tree from Markdown or programmatically, and the output is JSON/YAML/TOML/tree command. +* [gtree](https://github.com/ddddddO/gtree) - Provide CLI and Package for tree output and directories creation from Markdown or programmatically. * [health](https://github.com/alexliesenfeld/health) - A simple and flexible health check library for Go. * [health](https://github.com/dimiro1/health) - Easy to use, extensible health check library. * [healthcheck](https://github.com/etherlabsio/healthcheck) - An opinionated and concurrent health-check HTTP handler for RESTful services. From 638307dabf2f53af19c6391c127c5b6cca222e68 Mon Sep 17 00:00:00 2001 From: Roman Sharkov Date: Mon, 17 Jan 2022 11:50:44 +0200 Subject: [PATCH 2563/3440] Add romshark/jscan (#3989) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9acb9d1badf..d60b37b88cf 100644 --- a/README.md +++ b/README.md @@ -1211,6 +1211,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. * [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. * [jettison](https://github.com/wI2L/jettison) - Fast and flexible JSON encoder for Go. +* [jscan](https://github.com/romshark/jscan) - High performance zero-allocation JSON iterator. * [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. * [JSON-to-Proto](https://json-to-proto.github.io/) - Convert JSON to Protobuf online. * [json2go](https://github.com/m-zajac/json2go) - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. From 05655e17bacc6798616cc1b8074f372d370b33de Mon Sep 17 00:00:00 2001 From: Bart Date: Mon, 17 Jan 2022 10:58:15 +0100 Subject: [PATCH 2564/3440] add cheek job scheduler (#3990) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d60b37b88cf..8e953a7e571 100644 --- a/README.md +++ b/README.md @@ -1177,6 +1177,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for scheduling jobs.* +* [cheek](https://github.com/datarootsio/cheek) - A simple crontab like scheduler that aims to offer a KISS approach to job scheduling. * [clockwerk](https://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. * [cronticker](https://github.com/krayzpipes/cronticker) - A ticker implementation to support cron schedules. * [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. From bfa5051d6fc39cd5d05ee1c08d4204a190be4bb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E7=8E=89=E5=A0=82?= Date: Mon, 17 Jan 2022 23:22:55 +0800 Subject: [PATCH 2565/3440] add netpoll (#3869) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8e953a7e571..b3edd2b8cf9 100644 --- a/README.md +++ b/README.md @@ -1623,6 +1623,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. * [nbio](https://github.com/lesismal/nbio) - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. +* [netpoll](https://github.com/cloudwego/netpoll) - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance. * [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). * [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. * [panoptes-stream](https://github.com/yahoo/panoptes-stream) - A cloud native distributed streaming network telemetry (gNMI, Juniper JTI and Cisco MDT). From 25f68d4af5ecbc10e6721556255d08e0b73dd3b9 Mon Sep 17 00:00:00 2001 From: Michael Gasch Date: Wed, 19 Jan 2022 09:00:47 +0100 Subject: [PATCH 2566/3440] add memlog (#3992) Signed-off-by: Michael Gasch --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3edd2b8cf9..bdf02ecf0e4 100644 --- a/README.md +++ b/README.md @@ -469,6 +469,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [iter](https://github.com/disksing/iter) - Go implementation of C++ STL iterators and algorithms. * [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. +* [memlog](https://github.com/embano1/memlog) - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka. * [merkle](https://github.com/bobg/merkle) - Space-efficient computation of Merkle root hashes and inclusion proofs. * [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. * [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. From a95517c69ac16f2af76a8b80546543456a431dd4 Mon Sep 17 00:00:00 2001 From: John Arundel Date: Mon, 24 Jan 2022 15:50:22 +0000 Subject: [PATCH 2567/3440] Split books into 'paid' and 'free' per #3956 --- README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index bdf02ecf0e4..e62cbca1728 100644 --- a/README.md +++ b/README.md @@ -2920,14 +2920,21 @@ _**Unofficial** set of patterns for structuring projects._ ## E-Books +## E-books for purchase + * [100 Go Mistakes: How to Avoid Them](https://www.manning.com/books/100-go-mistakes-how-to-avoid-them) +* [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) +* [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. +* [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. +* [Writing A Compiler In Go](https://compilerbook.com) +* [Writing An Interpreter In Go](https://interpreterbook.com) - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. + +## Free e-books + * [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) * [An Introduction to Programming in Go](http://www.golang-book.com/) -* [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) * [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) * [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) -* [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. -* [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. * [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. * [Go Bootcamp](http://golangbootcamp.com) * [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. @@ -2940,9 +2947,6 @@ _**Unofficial** set of patterns for structuring projects._ * [The Go Programming Language](https://www.gopl.io/) * [The Golang Standard Library by Example (Chinese)](https://github.com/polaris1119/The-Golang-Standard-Library-by-Example) * [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) -* [Writing A Compiler In Go](https://compilerbook.com) -* [Writing An Interpreter In Go](https://interpreterbook.com) - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. - **[⬆ back to top](#contents)** From 26063191d2a04579a23cf7e53ce06d34d7f20b21 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 25 Jan 2022 01:11:19 +0530 Subject: [PATCH 2568/3440] update contents and change headings in ebooks Follow up PR for https://github.com/avelino/awesome-go/pull/4004 - updated the table of contents - change subcategory titles in markdown from h2 to h3 --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e62cbca1728..e6c376c8dfd 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Benchmarks](#benchmarks) - [Conferences](#conferences) - [E-Books](#e-books) + - [E-books for purchase](#e-books-for-purchase) + - [Free e-books](#free-e-books) - [Gophers](#gophers) - [Meetups](#meetups) - [Style Guides](#style-guides) @@ -2920,7 +2922,7 @@ _**Unofficial** set of patterns for structuring projects._ ## E-Books -## E-books for purchase +### E-books for purchase * [100 Go Mistakes: How to Avoid Them](https://www.manning.com/books/100-go-mistakes-how-to-avoid-them) * [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) @@ -2929,7 +2931,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Writing A Compiler In Go](https://compilerbook.com) * [Writing An Interpreter In Go](https://interpreterbook.com) - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. -## Free e-books +### Free e-books * [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) * [An Introduction to Programming in Go](http://www.golang-book.com/) From 0f3e1f94254c831dc1f724f918dce936239c974d Mon Sep 17 00:00:00 2001 From: John Arundel Date: Tue, 25 Jan 2022 18:49:39 +0000 Subject: [PATCH 2569/3440] Add 'The Power of Go: Tools' ebook (#4006) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6c376c8dfd..507012ca176 100644 --- a/README.md +++ b/README.md @@ -2928,6 +2928,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) * [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. * [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. +* [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) - A guide to writing command-line tools in Go. * [Writing A Compiler In Go](https://compilerbook.com) * [Writing An Interpreter In Go](https://interpreterbook.com) - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. From b673bb53b5d2e022c70eadd1b2bad5c10d1ee9b5 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 27 Jan 2022 02:09:03 -0300 Subject: [PATCH 2570/3440] add structy/log (#4010) Signed-off-by: Avelino --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 507012ca176..fe25fe118f4 100644 --- a/README.md +++ b/README.md @@ -1285,6 +1285,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. * [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. * [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. +* [structy/log](https://github.com/structy/log) - A simple to use log system, minimalist but with features for debugging and differentiation of messages. * [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. * [xlog](https://github.com/rs/xlog) - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. From 410fd897b40da3f9e108e4abb0f010d7b1da8af4 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 28 Jan 2022 08:54:12 -0300 Subject: [PATCH 2571/3440] WorkOS new sponsor big thanks @workos-inc and @zenorocha Signed-off-by: Avelino --- README.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fe25fe118f4..c576b0bb6a3 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,26 @@ ### Sponsorships -[![Doppler](https://github.com/avelino/awesome-go/raw/main/tmpl/assets/sponsors/doppler.png)](https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesomego&utm_source=github) - -[![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) + **Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community._ From 17aea40068e06cf3e2493b3095d1fd05a9a1a598 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 28 Jan 2022 09:07:28 -0300 Subject: [PATCH 2572/3440] upgrade links Signed-off-by: Avelino --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c576b0bb6a3..e9fc7041ae1 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,11 @@ Special thanks to:

- [![Doppler](https://github.com/avelino/awesome-go/raw/main/tmpl/assets/sponsors/doppler.png)](https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesomego&utm_source=github) + [![Doppler](https://avelino.run/sponsors/doppler-logo.png)](https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesomego&utm_source=github)
- WorkOS + WorkOS
Your app, enterprise-ready.
From f1bdff3e0f0f59ac780c9861e650d942ffd0359f Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 28 Jan 2022 09:09:04 -0300 Subject: [PATCH 2573/3440] fixed md typo Signed-off-by: Avelino --- README.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index e9fc7041ae1..b98d3fc5ab4 100644 --- a/README.md +++ b/README.md @@ -13,23 +13,23 @@
- Special thanks to:

- - [![Doppler](https://avelino.run/sponsors/doppler-logo.png)](https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesomego&utm_source=github) - -
-
- WorkOS -
- Your app, enterprise-ready. -
- Start selling to enterprise customers with just a few lines of code. -
- Add Single Sign-On (and more) in minutes instead of months. -
-

- - [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) +Special thanks to:

+ +[![Doppler](https://avelino.run/sponsors/doppler-logo.png)](https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesomego&utm_source=github) + + +
+ WorkOS +
+ Your app, enterprise-ready. +
+ Start selling to enterprise customers with just a few lines of code. +
+ Add Single Sign-On (and more) in minutes instead of months. +
+

+ +[![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go)
**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community._ From 0960f526eb16957529c1952dfba493a5550692a2 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 28 Jan 2022 09:11:46 -0300 Subject: [PATCH 2574/3440] doppler logo resize Signed-off-by: Avelino --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b98d3fc5ab4..e973f15c9e8 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,12 @@ Special thanks to:

-[![Doppler](https://avelino.run/sponsors/doppler-logo.png)](https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesomego&utm_source=github) + + +
+ Doppler +
+
From 97e3ad8d69433bef25cea44aa5e2a632476ebe9c Mon Sep 17 00:00:00 2001 From: Carlos Treminio Date: Sun, 23 Jan 2022 17:12:01 -0600 Subject: [PATCH 2575/3440] :sparkles: add go-atlassian --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e973f15c9e8..57f6c6e884a 100644 --- a/README.md +++ b/README.md @@ -2189,6 +2189,7 @@ _**Unofficial** set of patterns for structuring projects._ * [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](https://open.mapquestapi.com/geocoding/), [Nominatim](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](https://opencagedata.com/api), [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. * [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-atlassian](https://github.com/ctreminiom/go-atlassian) - Go library for accessing the [Atlassian Cloud](https://www.atlassian.com/enterprise/cloud) services (Jira, Jira Service Management, Jira Agile, Confluence, Admin Cloud) * [go-aws-news](https://github.com/circa10a/go-aws-news) - Go application and library to fetch what's new from AWS. * [go-chronos](https://github.com/axelspringer/go-chronos) - Go library for interacting with the [Chronos](https://mesos.github.io/chronos/) Job Scheduler * [go-hacknews](https://github.com/PaulRosset/go-hacknews) - Tiny Go client for HackerNews API. From e3837e161a7e676820d21ff8ae2236ffeee46cd7 Mon Sep 17 00:00:00 2001 From: junk1tm Date: Thu, 27 Jan 2022 01:39:37 +0300 Subject: [PATCH 2576/3440] add junk1tm/env --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 57f6c6e884a..aa7c9691d05 100644 --- a/README.md +++ b/README.md @@ -376,6 +376,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. * [conflate](https://github.com/the4thamigo-uk/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. * [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). +* [env](https://github.com/junk1tm/env) - A lightweight package for loading environment variables into structs. * [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. * [envconf](https://github.com/ian-kent/envconf) - Configuration from environment. * [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. From d69136644660101dea9dd9ff76d6eb69ab9aa318 Mon Sep 17 00:00:00 2001 From: roseduan Date: Sat, 22 Jan 2022 15:15:24 +0800 Subject: [PATCH 2577/3440] add lotusdb add lotusdb in database --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aa7c9691d05..c08657239a9 100644 --- a/README.md +++ b/README.md @@ -556,6 +556,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. * [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. +* [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. * [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. * [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. * [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. From 90d166c8517ce687bc11c94712dd1c3ea076789e Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 28 Jan 2022 17:51:18 -0300 Subject: [PATCH 2578/3440] set sub text of doppler Signed-off-by: Avelino --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c08657239a9..6b4141d1aa9 100644 --- a/README.md +++ b/README.md @@ -11,16 +11,17 @@ ### Sponsorships -
- Special thanks to:

- - +
Doppler
-
+ Quit struggling with scattered API keys and access controls. +
+ Keep your secrets in sync across environments, servers, and teams with Doppler. +
+
From 57d94798b3687374d240f03c5a6857f336e5207b Mon Sep 17 00:00:00 2001 From: Yiling-J Date: Tue, 23 Nov 2021 10:35:09 +0800 Subject: [PATCH 2579/3440] add piper --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6b4141d1aa9..f279d46f650 100644 --- a/README.md +++ b/README.md @@ -410,6 +410,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. * [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. * [onion](https://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. +* [piper](https://github.com/Yiling-J/piper) - Viper wrapper with config inheritance and key generation. * [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. * [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). * [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library. From aa5e522767298704fd2ed2dcaed417c84b8c1d90 Mon Sep 17 00:00:00 2001 From: Rueian Date: Thu, 20 Jan 2022 21:06:10 +0800 Subject: [PATCH 2580/3440] add rueidis --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 34207a27449..88404596322 100644 --- a/README.md +++ b/README.md @@ -691,6 +691,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. * [redigo](https://github.com/gomodule/redigo) - Redigo is a Go client for the Redis database. * [redis](https://github.com/go-redis/redis) - Redis client for Golang. + * [rueidis](http://github.com/rueian/rueidis) - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching. * [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. * Search and Analytic Databases. From bc51b975b91715e7fd9bef5a531942d8e917f9ac Mon Sep 17 00:00:00 2001 From: chenquan Date: Thu, 20 Jan 2022 20:26:39 +0800 Subject: [PATCH 2581/3440] doc(readme): add go-pkg repository --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 88404596322..bd870dd80ea 100644 --- a/README.md +++ b/README.md @@ -2425,6 +2425,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. +* [go-pkg](https://github.com/monmohan/xferspdy) - A go toolkit. **[⬆ back to top](#contents)** From 63bfb8ffbc4d5f18c89efee09d1a5c5492e0a0c7 Mon Sep 17 00:00:00 2001 From: chenquan Date: Thu, 20 Jan 2022 20:28:30 +0800 Subject: [PATCH 2582/3440] doc(readme): add go-pkg repository --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bd870dd80ea..08164669512 100644 --- a/README.md +++ b/README.md @@ -2425,7 +2425,7 @@ _**Unofficial** set of patterns for structuring projects._ * [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. -* [go-pkg](https://github.com/monmohan/xferspdy) - A go toolkit. +* [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. **[⬆ back to top](#contents)** From f7c188ea917d17ad94923c2851f0b87c4fc4db4f Mon Sep 17 00:00:00 2001 From: chenquan Date: Thu, 20 Jan 2022 20:33:32 +0800 Subject: [PATCH 2583/3440] doc(readme): reorder --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 08164669512..9c65614d272 100644 --- a/README.md +++ b/README.md @@ -2323,6 +2323,7 @@ _**Unofficial** set of patterns for structuring projects._ * [go-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. * [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. * [go-lock](https://github.com/viney-shih/go-lock) - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation. +* [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. * [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. * [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. * [go-safe](https://github.com/kenkyu392/go-safe) - Panic-safe sandbox. @@ -2425,7 +2426,6 @@ _**Unofficial** set of patterns for structuring projects._ * [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. -* [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. **[⬆ back to top](#contents)** From 651862583c322d1100b6f94a9cbe5a725593375b Mon Sep 17 00:00:00 2001 From: int-2147483647 <98012752+int-2147483647@users.noreply.github.com> Date: Sat, 29 Jan 2022 17:12:51 +0200 Subject: [PATCH 2584/3440] Added ariga/atlas to Database schema migration. (#4013) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c65614d272..fb6af77b40a 100644 --- a/README.md +++ b/README.md @@ -580,6 +580,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Database schema migration.* +* [atlas](https://github.com/ariga/atlas) - A Database Toolkit. A CLI designed to help companies better work with their data. * [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. * [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. From d58cc77ee4371bc911ff96ed45ac6ddb58f1301a Mon Sep 17 00:00:00 2001 From: Ravi Shekhar Jethani Date: Fri, 14 Jan 2022 00:28:52 +0100 Subject: [PATCH 2585/3440] Add github.com/rsjethani/secret to security (#1) - repo link: https://github.com/rsjethani/secret - pkg.go.dev: https://pkg.go.dev/github.com/rsjethani/secret/v2 - goreportcard.com: https://goreportcard.com/report/github.com/rsjethani/secret - coverage service link: https://github.com/rsjethani/secret/actions OR https://gocover.io/github.com/rsjethani/secret --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb6af77b40a..3956d09d4b3 100644 --- a/README.md +++ b/README.md @@ -1886,6 +1886,7 @@ _**Unofficial** set of patterns for structuring projects._ * [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. * [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. * [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. +* [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std* etc. * [secure](https://github.com/unrolled/secure) - HTTP middleware for Go that facilitates some quick security wins. * [secureio](https://github.com/xaionaro-go/secureio) - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519. * [simple-scrypt](https://github.com/elithrar/simple-scrypt) - Scrypt package with a simple, obvious API and automatic cost calibration built-in. From 6f75473f2c158160a3f08ca6cb4401ab7bb86126 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 29 Jan 2022 15:05:07 -0300 Subject: [PATCH 2586/3440] add keygen Signed-off-by: Avelino --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 3956d09d4b3..ee4c7b9714f 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,18 @@

+ +
+ keygen +
+ A dead-simple software licensing and distribution API built for developers +
+ Securely license and distribute Go applications with a single API. +
+ Add auto updates with only a few lines of code. +
+

+ [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go)
From 9110430d2063e4e14202b423ea28e10760ee48ae Mon Sep 17 00:00:00 2001 From: Jonas Tulstrup <32391434+Tulstrup@users.noreply.github.com> Date: Mon, 31 Jan 2022 08:37:07 +0100 Subject: [PATCH 2587/3440] Add Coding Mystery to Websites (#4014) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ee4c7b9714f..c8adf968378 100644 --- a/README.md +++ b/README.md @@ -3120,6 +3120,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. * [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. +* [Coding Mystery](https://codingmystery.com) - Solve exciting escape-room-inspired programming challenges using Go. * [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. * [Go Blog](https://blog.golang.org) - The official Go blog. * [Go Code Club](https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3) - A group of Gophers read and discuss a different Go project every week. From 66d4108fe4f907e82070bb4739956d07e81c68c8 Mon Sep 17 00:00:00 2001 From: Lior Kaplan Date: Wed, 17 Nov 2021 00:59:55 +0200 Subject: [PATCH 2588/3440] Add ChainJacking by Checkmarx ChainJacking is a tool to find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c8adf968378..46a3d84500b 100644 --- a/README.md +++ b/README.md @@ -2681,6 +2681,7 @@ _**Unofficial** set of patterns for structuring projects._ ## Code Analysis * [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. +* [ChainJacking](https://github.com/Checkmarx/chainjacking) - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack. * [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. From a73530f84a9b605420dc26e3bdef22a2482429ae Mon Sep 17 00:00:00 2001 From: Ian McCracken Date: Sat, 29 Jan 2022 16:41:55 -0600 Subject: [PATCH 2589/3440] Add bingo to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46a3d84500b..084c466300f 100644 --- a/README.md +++ b/README.md @@ -462,6 +462,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Generic datastructures and algorithms in Go.* * [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. +* [bingo](https://github.com/iancmcc/bingo) - Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes. * [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. * [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. * [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go. From 30a60df003622f5c9970ef32ad231fe4ff82a830 Mon Sep 17 00:00:00 2001 From: Michele Dimaggio <22237379+DjMike238@users.noreply.github.com> Date: Thu, 3 Feb 2022 11:22:03 +0100 Subject: [PATCH 2590/3440] Bot Building: update echotron description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 084c466300f..45b56678b82 100644 --- a/README.md +++ b/README.md @@ -239,7 +239,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building and working with bots.* -* [echotron](https://github.com/NicoNex/echotron) - Concurrent library for Telegram Bots written in pure Go. +* [echotron](https://github.com/NicoNex/echotron) - An elegant and concurrent library for Telegram Bots in Go. * [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. From 8c7376b89168c439fa0a1ed364d0f1ac95e6028d Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 3 Feb 2022 09:23:05 -0300 Subject: [PATCH 2591/3440] contrib guide: put a period `.` at end of description --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 791eee55c55..192e0d899e3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,8 @@ To set this list apart from and complement the excellent [Go wiki Projects page] - Descriptions should be clear, concise, and non-promotional; - 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; -- The package or project had to be maintained under **open source license** ( *we make a brief review of the code before the link enters the list* ), [see list of allowed licenses](https://opensource.org/licenses/alphabetical). +- The package or project had to be maintained under **open source license** ( *we make a brief review of the code before the link enters the list* ), [see list of allowed licenses](https://opensource.org/licenses/alphabetical); +- Remember to put a period `.` at end of the project description. Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. From 6ef800d2c36bfa71899433f81c1793dab444e415 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Feb 2022 06:32:50 -0300 Subject: [PATCH 2592/3440] remove mccoyst/vorbis ref: #4016 https://github.com/square/go-jose/pull/334 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 45b56678b82..60a9be6c9c0 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms. * [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. -* [vorbis](https://github.com/mccoyst/vorbis) - "Native" Go Vorbis decoder (uses CGO, but has no dependencies). **[⬆ back to top](#contents)** From c4ade4adddbd6a9de3b62f9ef6e4ab06da2d0a70 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Feb 2022 06:35:36 -0300 Subject: [PATCH 2593/3440] remove RichardKnop/go-oauth2-server ref: #4016 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 60a9be6c9c0..d7a46ab6877 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-email-normalizer](https://github.com/dimuska139/go-email-normalizer) - Golang library for providing a canonical representation of email address. * [go-guardian](https://github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token and Certificate based authentication. * [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. -* [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - Standalone, specification-compliant, OAuth2 server written in Golang. * [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. From f34cd1a5c64ff91b4eab8d68f9323b7deb0e681c Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Feb 2022 06:37:07 -0300 Subject: [PATCH 2594/3440] remove robbert229/jwt ref: #4016 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d7a46ab6877..cda54295bd9 100644 --- a/README.md +++ b/README.md @@ -198,7 +198,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. * [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure and idiomatic web session management with pluggable backends. -* [jwt](https://github.com/robbert229/jwt) - Clean and easy to use implementation of JSON Web Tokens (JWT). * [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. * [jwt](https://github.com/cristalhq/jwt) - Safe, simple and fast JSON Web Tokens for Go. * [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. From 023da8c296f3df8106b13bb049b8f383bba2d3ac Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Feb 2022 06:49:38 -0300 Subject: [PATCH 2595/3440] Update issue templates --- .github/ISSUE_TEMPLATE/awesome-go-com.md | 13 +++++++++++++ .github/ISSUE_TEMPLATE/awesome-go-related-topic.md | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/awesome-go-com.md create mode 100644 .github/ISSUE_TEMPLATE/awesome-go-related-topic.md diff --git a/.github/ISSUE_TEMPLATE/awesome-go-com.md b/.github/ISSUE_TEMPLATE/awesome-go-com.md new file mode 100644 index 00000000000..33c6f51f33d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/awesome-go-com.md @@ -0,0 +1,13 @@ +--- +name: awesome-go.com +about: website-related +title: "[awesome-go.com]: issue title here" +labels: awesome-go.com +assignees: '' + +--- + + diff --git a/.github/ISSUE_TEMPLATE/awesome-go-related-topic.md b/.github/ISSUE_TEMPLATE/awesome-go-related-topic.md new file mode 100644 index 00000000000..2dd422f1ddd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/awesome-go-related-topic.md @@ -0,0 +1,13 @@ +--- +name: awesome-go related topic +about: Create a report to help us improve +title: '' +labels: help wanted +assignees: '' + +--- + + From a6bf071b609662e7b419323e5401cc9ec340a92d Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Fri, 4 Feb 2022 17:22:35 +0300 Subject: [PATCH 2596/3440] feat(README): add faker --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cda54295bd9..71bdebfaf5d 100644 --- a/README.md +++ b/README.md @@ -1525,6 +1525,7 @@ _**Unofficial** set of patterns for structuring projects._ * [captcha](https://github.com/steambap/captcha) - Package captcha provides an easy to use, unopinionated API for captcha generation. * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. +* [faker](github.com/neotoolkit/faker) - Fake data generator. * [faker](https://github.com/pioz/faker) - Random fake data and struct generator for Go. * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [gatus](https://github.com/TwinProduction/gatus) - Automated service health dashboard. From 3143373673dd36ad418389929a5a7a5ce0ff9424 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Fri, 4 Feb 2022 17:54:14 +0300 Subject: [PATCH 2597/3440] fix(README): fix faker github link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 71bdebfaf5d..79d624dce6e 100644 --- a/README.md +++ b/README.md @@ -1525,7 +1525,7 @@ _**Unofficial** set of patterns for structuring projects._ * [captcha](https://github.com/steambap/captcha) - Package captcha provides an easy to use, unopinionated API for captcha generation. * [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. * [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. -* [faker](github.com/neotoolkit/faker) - Fake data generator. +* [faker](https://github.com/neotoolkit/faker) - Fake data generator. * [faker](https://github.com/pioz/faker) - Random fake data and struct generator for Go. * [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. * [gatus](https://github.com/TwinProduction/gatus) - Automated service health dashboard. From 371dfdb67a2dd42ea00e9f57a41b0600d5e4e780 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Fri, 14 Jan 2022 11:43:37 +0300 Subject: [PATCH 2598/3440] feat(README): add go-dummy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 79d624dce6e..ff7728a20a9 100644 --- a/README.md +++ b/README.md @@ -1951,6 +1951,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. * [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js +* [go-dummy](https://github.com/go-dummy/dummy) - Run mock server based on API contract with one command. * [go-feature-flag](https://github.com/thomaspoignant/go-feature-flag) - A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. * [go-proxy-cache](https://github.com/fabiocicerchia/go-proxy-cache) - Simple Reverse Proxy with Caching, written in Go, using Redis. * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. From 9fb5325533f422ce450f50657767a9ab9857c569 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Fri, 4 Feb 2022 16:16:32 +0300 Subject: [PATCH 2599/3440] feat(README): add go-dummy --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ff7728a20a9..46a38bd5374 100644 --- a/README.md +++ b/README.md @@ -1951,7 +1951,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. * [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. * [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js -* [go-dummy](https://github.com/go-dummy/dummy) - Run mock server based on API contract with one command. +* [go-dummy](https://github.com/neotoolkit/dummy) - Run mock server based off an API contract with one command. * [go-feature-flag](https://github.com/thomaspoignant/go-feature-flag) - A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. * [go-proxy-cache](https://github.com/fabiocicerchia/go-proxy-cache) - Simple Reverse Proxy with Caching, written in Go, using Redis. * [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. From 9c13a3ab27a884ddab1ca5b300cec016c258671b Mon Sep 17 00:00:00 2001 From: Elton Minetto Date: Fri, 4 Feb 2022 15:39:28 -0300 Subject: [PATCH 2600/3440] Add Trybe's style guide (#4022) * Add Trybe's style guide --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46a38bd5374..7082c413397 100644 --- a/README.md +++ b/README.md @@ -3094,6 +3094,7 @@ _**Unofficial** set of patterns for structuring projects._ * [Magnetico](https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification) * [Sourcegraph](https://about.sourcegraph.com/handbook/engineering/go_style_guide) * [Thanos](https://thanos.io/tip/contributing/coding-style-guide.md/) +* [Trybe](https://github.com/betrybe/playbook-go/blob/main/README_EN.md) * [Uber](https://github.com/uber-go/guide/blob/master/style.md) **[⬆ back to top](#contents)** From a937377c26fa266ce58150fa8b5a4440f8e9c8e6 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Feb 2022 15:45:43 -0300 Subject: [PATCH 2601/3440] markdown structure improvements - removing duplicate content menu - enabling vscode editing with markdown lint on - previously it was automatically correcting the content menu swapping, messing up the order and making it fail the tests - markdown lint Signed-off-by: Avelino --- README.md | 5324 +++++++++++++++++++++++++------------------------- repo_test.go | 34 +- 2 files changed, 2674 insertions(+), 2684 deletions(-) diff --git a/README.md b/README.md index 7082c413397..c47b1dc9935 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# awesome-go Awesome Go +# Awesome Go + +awesome-go [![Build Status](https://github.com/avelino/awesome-go/actions/workflows/tests.yaml/badge.svg?branch=main)](https://github.com/avelino/awesome-go/actions/workflows/tests.yaml?query=branch%3Amain) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) @@ -8,43 +10,42 @@ awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt - -### Sponsorships +**Sponsorships:** Special thanks to:

-
- Doppler -
- Quit struggling with scattered API keys and access controls. -
+
+ Doppler +
+ Quit struggling with scattered API keys and access controls. +
Keep your secrets in sync across environments, servers, and teams with Doppler. -
+

-
- WorkOS -
- Your app, enterprise-ready. -
- Start selling to enterprise customers with just a few lines of code. -
- Add Single Sign-On (and more) in minutes instead of months. -
+
+ WorkOS +
+ Your app, enterprise-ready. +
+ Start selling to enterprise customers with just a few lines of code. +
+ Add Single Sign-On (and more) in minutes instead of months. +

-
- keygen -
- A dead-simple software licensing and distribution API built for developers -
- Securely license and distribute Go applications with a single API. -
- Add auto updates with only a few lines of code. -
+
+ keygen +
+ A dead-simple software licensing and distribution API built for developers +
+ Securely license and distribute Go applications with a single API. +
+ Add auto updates with only a few lines of code. +

[![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) @@ -54,1401 +55,1400 @@ > A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). - -### Contributing +**Contributing:** Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! -#### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!* +> _If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!_ -### Contents +**Contents:** - [Awesome Go](#awesome-go) - - [Audio and Music](#audio-and-music) - - [Authentication and OAuth](#authentication-and-oauth) - - [Blockchain](#blockchain) - - [Bot Building](#bot-building) - - [Build Automation](#build-automation) - - [Command Line](#command-line) - - [Configuration](#configuration) - - [Continuous Integration](#continuous-integration) - - [CSS Preprocessors](#css-preprocessors) - - [Data Structures](#data-structures) - - [Database](#database) - - [Database Drivers](#database-drivers) - - [Date and Time](#date-and-time) - - [Distributed Systems](#distributed-systems) - - [Dynamic DNS](#dynamic-dns) - - [Email](#email) - - [Embeddable Scripting Languages](#embeddable-scripting-languages) - - [Error Handling](#error-handling) - - [File Handling](#file-handling) - - [Financial](#financial) - - [Forms](#forms) - - [Functional](#functional) - - [Game Development](#game-development) - - [Generation and Generics](#generation-and-generics) - - [Geographic](#geographic) - - [Go Compilers](#go-compilers) - - [Goroutines](#goroutines) - - [GUI](#gui) - - [Hardware](#hardware) - - [Images](#images) - - [IoT](#iot-internet-of-things) - - [Job Scheduler](#job-scheduler) - - [JSON](#json) - - [Logging](#logging) - - [Machine Learning](#machine-learning) - - [Messaging](#messaging) - - [Microsoft Office](#microsoft-office) - - [Microsoft Excel](#microsoft-excel) - - [Miscellaneous](#miscellaneous) - - [Dependency Injection](#dependency-injection) - - [Project Layout](#project-layout) - - [Strings](#strings) - - [Uncategorized](#uncategorized) - - [Natural Language Processing](#natural-language-processing) - - [Networking](#networking) - - [HTTP Clients](#http-clients) - - [OpenGL](#opengl) - - [ORM](#orm) - - [Package Management](#package-management) - - [Performance](#performance) - - [Query Language](#query-language) - - [Resource Embedding](#resource-embedding) - - [Science and Data Analysis](#science-and-data-analysis) - - [Security](#security) - - [Serialization](#serialization) - - [Server Applications](#server-applications) - - [Stream Processing](#stream-processing) - - [Template Engines](#template-engines) - - [Testing](#testing) - - [Text Processing](#text-processing) - - [Third-party APIs](#third-party-apis) - - [Utilities](#utilities) - - [UUID](#uuid) - - [Validation](#validation) - - [Version Control](#version-control) - - [Video](#video) - - [Web Frameworks](#web-frameworks) - - [Middlewares](#middlewares) - - [Actual middlewares](#actual-middlewares) - - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) - - [Routers](#routers) - - [WebAssembly](#webassembly) - - [Windows](#windows) - - [XML](#xml) - - [Zero Trust](#zero-trust) - -- [Tools](#tools) - - [Code Analysis](#code-analysis) - - [Editor Plugins](#editor-plugins) - - [Go Generate Tools](#go-generate-tools) - - [Go Tools](#go-tools) - - [Software Packages](#software-packages) - - [DevOps Tools](#devops-tools) - - [Other Software](#other-software) - + - [Audio and Music](#audio-and-music) + - [Authentication and OAuth](#authentication-and-oauth) + - [Blockchain](#blockchain) + - [Bot Building](#bot-building) + - [Build Automation](#build-automation) + - [Command Line](#command-line) + - [Advanced Console UIs](#advanced-console-uis) + - [Standard CLI](#standard-cli) + - [Configuration](#configuration) + - [Continuous Integration](#continuous-integration) + - [CSS Preprocessors](#css-preprocessors) + - [Data Structures](#data-structures) + - [Database](#database) + - [Database Drivers](#database-drivers) + - [Date and Time](#date-and-time) + - [Distributed Systems](#distributed-systems) + - [Dynamic DNS](#dynamic-dns) + - [Email](#email) + - [Embeddable Scripting Languages](#embeddable-scripting-languages) + - [Error Handling](#error-handling) + - [File Handling](#file-handling) + - [Financial](#financial) + - [Forms](#forms) + - [Functional](#functional) + - [Game Development](#game-development) + - [Generation and Generics](#generation-and-generics) + - [Geographic](#geographic) + - [Go Compilers](#go-compilers) + - [Goroutines](#goroutines) + - [GUI](#gui) + - [Hardware](#hardware) + - [Images](#images) + - [IoT (Internet of Things)](#iot-internet-of-things) + - [Job Scheduler](#job-scheduler) + - [JSON](#json) + - [Logging](#logging) + - [Machine Learning](#machine-learning) + - [Messaging](#messaging) + - [Microsoft Office](#microsoft-office) + - [Microsoft Excel](#microsoft-excel) + - [Miscellaneous](#miscellaneous) + - [Dependency Injection](#dependency-injection) + - [Project Layout](#project-layout) + - [Strings](#strings) + - [Uncategorized](#uncategorized) + - [Natural Language Processing](#natural-language-processing) + - [Networking](#networking) + - [HTTP Clients](#http-clients) + - [OpenGL](#opengl) + - [ORM](#orm) + - [Package Management](#package-management) + - [Performance](#performance) + - [Query Language](#query-language) + - [Resource Embedding](#resource-embedding) + - [Science and Data Analysis](#science-and-data-analysis) + - [Security](#security) + - [Serialization](#serialization) + - [Server Applications](#server-applications) + - [Stream Processing](#stream-processing) + - [Template Engines](#template-engines) + - [Testing](#testing) + - [Text Processing](#text-processing) + - [Third-party APIs](#third-party-apis) + - [Utilities](#utilities) + - [UUID](#uuid) + - [Validation](#validation) + - [Version Control](#version-control) + - [Video](#video) + - [Web Frameworks](#web-frameworks) + - [Middlewares](#middlewares) + - [Actual middlewares](#actual-middlewares) + - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) + - [Routers](#routers) + - [WebAssembly](#webassembly) + - [Windows](#windows) + - [XML](#xml) + - [Zero Trust](#zero-trust) + - [Code Analysis](#code-analysis) + - [Editor Plugins](#editor-plugins) + - [Go Generate Tools](#go-generate-tools) + - [Go Tools](#go-tools) + - [Software Packages](#software-packages) + - [DevOps Tools](#devops-tools) + - [Other Software](#other-software) - [Resources](#resources) - - [Benchmarks](#benchmarks) - - [Conferences](#conferences) - - [E-Books](#e-books) - - [E-books for purchase](#e-books-for-purchase) - - [Free e-books](#free-e-books) - - [Gophers](#gophers) - - [Meetups](#meetups) - - [Style Guides](#style-guides) + - [Benchmarks](#benchmarks) + - [Conferences](#conferences) + - [E-Books](#e-books) + - [E-books for purchase](#e-books-for-purchase) + - [Free e-books](#free-e-books) + - [Gophers](#gophers) + - [Meetups](#meetups) + - [Style Guides](#style-guides) + - [Social Media](#social-media) - [Twitter](#twitter) - - [Websites](#websites) - - [Tutorials](#tutorials) + - [Reddit](#reddit) + - [Websites](#websites) + - [Tutorials](#tutorials) **[⬆ back to top](#contents)** ## Audio and Music -*Libraries for manipulating audio.* +_Libraries for manipulating audio._ -* [flac](https://github.com/mewkiz/flac) - Native Go FLAC encoder/decoder with support for FLAC streams. -* [gaad](https://github.com/Comcast/gaad) - Native Go AAC bitstream parser. -* [GoAudio](https://github.com/DylanMeeus/GoAudio) - Native Go Audio Processing Library. -* [gosamplerate](https://github.com/dh1tw/gosamplerate) - libsamplerate bindings for go. -* [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go. -* [malgo](https://github.com/gen2brain/malgo) - Mini audio library. -* [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library. -* [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. -* [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. -* [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms. -* [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. -* [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. +- [flac](https://github.com/mewkiz/flac) - Native Go FLAC encoder/decoder with support for FLAC streams. +- [gaad](https://github.com/Comcast/gaad) - Native Go AAC bitstream parser. +- [GoAudio](https://github.com/DylanMeeus/GoAudio) - Native Go Audio Processing Library. +- [gosamplerate](https://github.com/dh1tw/gosamplerate) - libsamplerate bindings for go. +- [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go. +- [malgo](https://github.com/gen2brain/malgo) - Mini audio library. +- [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library. +- [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. +- [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. +- [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms. +- [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. +- [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. **[⬆ back to top](#contents)** ## Authentication and OAuth -*Libraries for implementing authentications schemes.* - -* [authboss](https://github.com/volatiletech/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. -* [branca](https://github.com/essentialkaos/branca) - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+. -* [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. -* [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. -* [go-email-normalizer](https://github.com/dimuska139/go-email-normalizer) - Golang library for providing a canonical representation of email address. -* [go-guardian](https://github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token and Certificate based authentication. -* [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. -* [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. -* [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. -* [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. -* [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure and idiomatic web session management with pluggable backends. -* [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. -* [jwt](https://github.com/cristalhq/jwt) - Safe, simple and fast JSON Web Tokens for Go. -* [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. -* [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. -* [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. -* [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. -* [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes. -* [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. -* [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). -* [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. -* [rbac](https://github.com/zpatrick/rbac) - Minimalistic RBAC package for Go applications. -* [scope](https://github.com/SonicRoshan/scope) - Easily Manage OAuth2 Scopes In Go. -* [scs](https://github.com/alexedwards/scs) - Session Manager for HTTP servers. -* [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. -* [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). -* [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. -* [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. -* [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package. -* [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser. +_Libraries for implementing authentications schemes._ + +- [authboss](https://github.com/volatiletech/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. +- [branca](https://github.com/essentialkaos/branca) - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+. +- [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. +- [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. +- [go-email-normalizer](https://github.com/dimuska139/go-email-normalizer) - Golang library for providing a canonical representation of email address. +- [go-guardian](https://github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token and Certificate based authentication. +- [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. +- [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. +- [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. +- [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. +- [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure and idiomatic web session management with pluggable backends. +- [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. +- [jwt](https://github.com/cristalhq/jwt) - Safe, simple and fast JSON Web Tokens for Go. +- [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. +- [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. +- [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. +- [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. +- [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes. +- [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. +- [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). +- [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. +- [rbac](https://github.com/zpatrick/rbac) - Minimalistic RBAC package for Go applications. +- [scope](https://github.com/SonicRoshan/scope) - Easily Manage OAuth2 Scopes In Go. +- [scs](https://github.com/alexedwards/scs) - Session Manager for HTTP servers. +- [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. +- [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). +- [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. +- [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. +- [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package. +- [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser. **[⬆ back to top](#contents)** ## Blockchain -*Tools for building blockchains.* +_Tools for building blockchains._ -* [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem. -* [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol. -* [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host. -* [solana-go](https://github.com/gagliardetto/solana-go) - Go library to interface with Solana JSON RPC and WebSocket interfaces. -* [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. +- [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem. +- [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol. +- [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host. +- [solana-go](https://github.com/gagliardetto/solana-go) - Go library to interface with Solana JSON RPC and WebSocket interfaces. +- [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. **[⬆ back to top](#contents)** ## Bot Building -*Libraries for building and working with bots.* - -* [echotron](https://github.com/NicoNex/echotron) - An elegant and concurrent library for Telegram Bots in Go. -* [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. -* [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. -* [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. -* [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. -* [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. -* [go-twitch-irc](https://github.com/gempir/go-twitch-irc) - Library to write bots for twitch.tv chat -* [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. -* [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. -* [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. -* [Kelp](https://github.com/stellar/kelp) - official trading and market-making bot for the [Stellar](https://www.stellar.org/) DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies. -* [larry](https://github.com/ezeoleaf/larry) - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go. -* [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. -* [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. -* [olivia](https://github.com/olivia-ai/olivia) - A chatbot built with an artificial neural network. -* [slack-bot](https://github.com/innogames/slack-bot) - Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github... -* [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. -* [slackscot](https://github.com/alexandre-normand/slackscot) - Another framework for building Slack bots. -* [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. -* [telego](https://github.com/mymmrac/telego) - Telegram Bot API library for Golang with full one-to-one API implementation. -* [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. -* [teleterm](https://github.com/alfiankan/teleterm) - Telegram Bot Exec Terminal Command. -* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. +_Libraries for building and working with bots._ + +- [echotron](https://github.com/NicoNex/echotron) - An elegant and concurrent library for Telegram Bots in Go. +- [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. +- [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. +- [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. +- [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. +- [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. +- [go-twitch-irc](https://github.com/gempir/go-twitch-irc) - Library to write bots for twitch.tv chat +- [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. +- [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. +- [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. +- [Kelp](https://github.com/stellar/kelp) - official trading and market-making bot for the [Stellar](https://www.stellar.org/) DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies. +- [larry](https://github.com/ezeoleaf/larry) - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go. +- [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. +- [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. +- [olivia](https://github.com/olivia-ai/olivia) - A chatbot built with an artificial neural network. +- [slack-bot](https://github.com/innogames/slack-bot) - Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github... +- [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. +- [slackscot](https://github.com/alexandre-normand/slackscot) - Another framework for building Slack bots. +- [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. +- [telego](https://github.com/mymmrac/telego) - Telegram Bot API library for Golang with full one-to-one API implementation. +- [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. +- [teleterm](https://github.com/alfiankan/teleterm) - Telegram Bot Exec Terminal Command. +- [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. **[⬆ back to top](#contents)** ## Build Automation -*Libraries and tools helping with build automation.* +_Libraries and tools helping with build automation._ -* [1build](https://github.com/gopinath-langote/1build) - Command line tool to frictionlessly manage project-specific commands. -* [anko](https://github.com/GuilhermeCaruso/anko) - Simple application watcher for multiple programming languages. -* [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. -* [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. -* [goyek](https://github.com/goyek/goyek) - Create build pipelines in Go. -* [mage](https://github.com/magefile/mage) - Mage is a make/rake-like build tool using Go. -* [mmake](https://github.com/tj/mmake) - Modern Make. -* [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. -* [Task](https://github.com/go-task/task) - simple "Make" alternative. -* [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. +- [1build](https://github.com/gopinath-langote/1build) - Command line tool to frictionlessly manage project-specific commands. +- [anko](https://github.com/GuilhermeCaruso/anko) - Simple application watcher for multiple programming languages. +- [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. +- [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. +- [goyek](https://github.com/goyek/goyek) - Create build pipelines in Go. +- [mage](https://github.com/magefile/mage) - Mage is a make/rake-like build tool using Go. +- [mmake](https://github.com/tj/mmake) - Modern Make. +- [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. +- [Task](https://github.com/go-task/task) - simple "Make" alternative. +- [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. **[⬆ back to top](#contents)** ## Command Line -### Standard CLI +### Advanced Console UIs -*Libraries for building standard or basic Command Line applications.* - -* [acmd](https://github.com/cristalhq/acmd) - Simple, useful and opinionated CLI package in Go. -* [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. -* [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 struct tags. -* [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. -* [climax](https://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. -* [clîr](https://github.com/leaanthony/clir) - A Simple and Clear CLI library. Dependency free. -* [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idiomatic way. -* [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. -* [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. -* [command-chain](https://github.com/rainu/go-command-chain) - A go library for configure and run command chains - such like pipelining in unix shells. -* [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. -* [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. -* [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync. -* [elvish](https://github.com/elves/elvish) - An expressive programming language and a versatile interactive shell. -* [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. -* [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. -* [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. -* [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package. -* [go-andotp](https://github.com/grijul/go-andotp) - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as library as well. -* [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go. -* [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow. -* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. -* [go-getoptions](https://github.com/DavidGamba/go-getoptions) - Go option parser inspired on the flexibility of Perl’s GetOpt::Long. -* [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. -* [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection. -* [job](https://github.com/liujianping/job) - JOB, make your short-term command as a long-term job. -* [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands (superseded by `kong`; see below). -* [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. -* [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. -* [ops](https://github.com/nanovms/ops) - Unikernel Builder/Orchestrator. -* [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. -* [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more. -* [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. -* [strumt](https://github.com/antham/strumt) - Library to create prompt chain. -* [subcmd](https://github.com/bobg/subcmd) - Another approach to parsing and running subcommands. Works alongside the standard `flag` package. -* [ts](https://github.com/liujianping/ts) - Timestamp convert & compare tool. -* [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. -* [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). -* [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency. -* [wmenu](https://github.com/dixonwille/wmenu) - Easy to use menu structure for cli applications that prompts users to make choices. +_Libraries for building Console Applications and Console User Interfaces._ + +- [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. +- [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that supports fmt.Printf/Sprintf. +- [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. +- [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. +- [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. +- [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. +- [colourize](https://github.com/TreyBastian/colourize) - Go library for ANSI colour text in terminals. +- [ctc](https://github.com/wzshiming/ctc) - The non-invasive cross-platform terminal color library does not need to modify the Print method. +- [go-ataman](https://github.com/workanator/go-ataman) - Go library for rendering ANSI colored text templates in terminals. +- [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. +- [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. +- [go-isatty](https://github.com/mattn/go-isatty) - isatty for golang. +- [go-prompt](https://github.com/c-bata/go-prompt) - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit). +- [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. +- [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. +- [gookit/color](https://github.com/gookit/color) - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. +- [marker](https://github.com/cyucelen/marker) - Easiest way to match and mark strings for colorful terminal outputs. +- [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. +- [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. +- [pterm](https://github.com/pterm/pterm) - A library to beautify console output on every platform with many combinable components. +- [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. +- [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. +- [tabby](https://github.com/cheynewallace/tabby) - A tiny library for super simple Golang tables. +- [table](https://github.com/tomlazar/table) - Small library for terminal color based tables . +- [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. +- [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. +- [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). +- [termenv](https://github.com/muesli/termenv) - Advanced ANSI style & color support for your terminal applications. +- [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). +- [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. +- [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. +- [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data. +- [yacspin](https://github.com/theckman/yacspin) - Yet Another CLi Spinner package, for working with terminal spinners. **[⬆ back to top](#contents)** -### Advanced Console UIs +### Standard CLI -*Libraries for building Console Applications and Console User Interfaces.* - -* [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. -* [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that supports fmt.Printf/Sprintf. -* [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. -* [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. -* [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. -* [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. -* [colourize](https://github.com/TreyBastian/colourize) - Go library for ANSI colour text in terminals. -* [ctc](https://github.com/wzshiming/ctc) - The non-invasive cross-platform terminal color library does not need to modify the Print method. -* [go-ataman](https://github.com/workanator/go-ataman) - Go library for rendering ANSI colored text templates in terminals. -* [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. -* [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. -* [go-isatty](https://github.com/mattn/go-isatty) - isatty for golang. -* [go-prompt](https://github.com/c-bata/go-prompt) - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit). -* [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. -* [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. -* [gookit/color](https://github.com/gookit/color) - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. -* [marker](https://github.com/cyucelen/marker) - Easiest way to match and mark strings for colorful terminal outputs. -* [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. -* [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. -* [pterm](https://github.com/pterm/pterm) - A library to beautify console output on every platform with many combinable components. -* [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. -* [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. -* [tabby](https://github.com/cheynewallace/tabby) - A tiny library for super simple Golang tables. -* [table](https://github.com/tomlazar/table) - Small library for terminal color based tables . -* [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. -* [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. -* [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). -* [termenv](https://github.com/muesli/termenv) - Advanced ANSI style & color support for your terminal applications. -* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). -* [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. -* [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. -* [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data. -* [yacspin](https://github.com/theckman/yacspin) - Yet Another CLi Spinner package, for working with terminal spinners. +_Libraries for building standard or basic Command Line applications._ + +- [acmd](https://github.com/cristalhq/acmd) - Simple, useful and opinionated CLI package in Go. +- [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. +- [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 struct tags. +- [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. +- [climax](https://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. +- [clîr](https://github.com/leaanthony/clir) - A Simple and Clear CLI library. Dependency free. +- [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idiomatic way. +- [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. +- [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. +- [command-chain](https://github.com/rainu/go-command-chain) - A go library for configure and run command chains - such like pipelining in unix shells. +- [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. +- [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. +- [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync. +- [elvish](https://github.com/elves/elvish) - An expressive programming language and a versatile interactive shell. +- [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs. +- [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. +- [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. +- [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package. +- [go-andotp](https://github.com/grijul/go-andotp) - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as library as well. +- [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go. +- [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow. +- [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. +- [go-getoptions](https://github.com/DavidGamba/go-getoptions) - Go option parser inspired on the flexibility of Perl’s GetOpt::Long. +- [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. +- [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection. +- [job](https://github.com/liujianping/job) - JOB, make your short-term command as a long-term job. +- [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands (superseded by `kong`; see below). +- [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. +- [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. +- [ops](https://github.com/nanovms/ops) - Unikernel Builder/Orchestrator. +- [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. +- [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more. +- [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. +- [strumt](https://github.com/antham/strumt) - Library to create prompt chain. +- [subcmd](https://github.com/bobg/subcmd) - Another approach to parsing and running subcommands. Works alongside the standard `flag` package. +- [ts](https://github.com/liujianping/ts) - Timestamp convert & compare tool. +- [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. +- [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). +- [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency. +- [wmenu](https://github.com/dixonwille/wmenu) - Easy to use menu structure for cli applications that prompts users to make choices. **[⬆ back to top](#contents)** ## Configuration -*Libraries for configuration parsing.* - -* [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader. -* [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). -* [config](https://github.com/golobby/config) - A lightweight yet powerful config package for Go projects. -* [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. -* [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. -* [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. -* [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. -* [configuro](https://github.com/sherifabdlnaby/configuro) - opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications. -* [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. -* [conflate](https://github.com/the4thamigo-uk/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. -* [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). -* [env](https://github.com/junk1tm/env) - A lightweight package for loading environment variables into structs. -* [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. -* [envconf](https://github.com/ian-kent/envconf) - Configuration from environment. -* [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. -* [envh](https://github.com/antham/envh) - Helpers to manage environment variables. -* [fig](https://github.com/kkyr/fig) - Tiny library for reading configuration from a file and from environment variables (with validation & defaults). -* [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. -* [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. -* [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store. -* [go-conf](https://github.com/ThomasObenaus/go-conf) - Simple library for application configuration based on annotated structs. It supports reading the configuration from environment variables, config files and command line parameters. -* [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. -* [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). -* [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. -* [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from 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. -* [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. -* [gonfig](https://github.com/milad-abbasi/gonfig) - Tag-based configuration parser which loads values from different providers into typesafe struct. -* [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. -* [harvester](https://github.com/beatlabs/harvester) - Harvester, a easy to use static and dynamic configuration package supportig seeding, env vars and Consul integration. -* [hjson](https://github.com/hjson/hjson-go) - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. -* [hocon](https://github.com/gurkankaymak/hocon) - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files. -* [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file. -* [ini](https://github.com/go-ini/ini) - Go package to read and write INI files. -* [ini](https://github.com/wlevene/ini) - INI Parser & Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file. -* [joshbetz/config](https://github.com/joshbetz/config) - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. -* [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. -* [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. -* [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. -* [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (succesor to `kingpin`). -* [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. -* [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. -* [onion](https://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. -* [piper](https://github.com/Yiling-J/piper) - Viper wrapper with config inheritance and key generation. -* [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. -* [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). -* [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library. -* [uConfig](https://github.com/omeid/uconfig) - Lightweight, zero-dependency, and extendable configuration management. -* [viper](https://github.com/spf13/viper) - Go configuration with fangs. -* [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). -* [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). +_Libraries for configuration parsing._ + +- [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader. +- [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). +- [config](https://github.com/golobby/config) - A lightweight yet powerful config package for Go projects. +- [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. +- [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. +- [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. +- [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. +- [configuro](https://github.com/sherifabdlnaby/configuro) - opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications. +- [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. +- [conflate](https://github.com/the4thamigo-uk/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. +- [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). +- [env](https://github.com/junk1tm/env) - A lightweight package for loading environment variables into structs. +- [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. +- [envconf](https://github.com/ian-kent/envconf) - Configuration from environment. +- [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. +- [envh](https://github.com/antham/envh) - Helpers to manage environment variables. +- [fig](https://github.com/kkyr/fig) - Tiny library for reading configuration from a file and from environment variables (with validation & defaults). +- [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. +- [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. +- [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store. +- [go-conf](https://github.com/ThomasObenaus/go-conf) - Simple library for application configuration based on annotated structs. It supports reading the configuration from environment variables, config files and command line parameters. +- [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. +- [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). +- [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. +- [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from 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. +- [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. +- [gonfig](https://github.com/milad-abbasi/gonfig) - Tag-based configuration parser which loads values from different providers into typesafe struct. +- [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. +- [harvester](https://github.com/beatlabs/harvester) - Harvester, a easy to use static and dynamic configuration package supportig seeding, env vars and Consul integration. +- [hjson](https://github.com/hjson/hjson-go) - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. +- [hocon](https://github.com/gurkankaymak/hocon) - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files. +- [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file. +- [ini](https://github.com/go-ini/ini) - Go package to read and write INI files. +- [ini](https://github.com/wlevene/ini) - INI Parser & Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file. +- [joshbetz/config](https://github.com/joshbetz/config) - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. +- [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. +- [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. +- [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. +- [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (succesor to `kingpin`). +- [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. +- [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. +- [onion](https://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. +- [piper](https://github.com/Yiling-J/piper) - Viper wrapper with config inheritance and key generation. +- [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. +- [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). +- [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library. +- [uConfig](https://github.com/omeid/uconfig) - Lightweight, zero-dependency, and extendable configuration management. +- [viper](https://github.com/spf13/viper) - Go configuration with fangs. +- [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). +- [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). **[⬆ back to top](#contents)** ## Continuous Integration -*Tools for help with continuous integration.* +_Tools for help with continuous integration._ -* [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. -* [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. -* [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. -* [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. -* [gotestfmt](https://github.com/haveyoudebuggedit/gotestfmt) - go test output for humans. -* [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. +- [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. +- [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. +- [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. +- [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. +- [gotestfmt](https://github.com/haveyoudebuggedit/gotestfmt) - go test output for humans. +- [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. **[⬆ back to top](#contents)** ## CSS Preprocessors -*Libraries for preprocessing CSS files.* +_Libraries for preprocessing CSS files._ -* [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. +- [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. **[⬆ back to top](#contents)** ## Data Structures -*Generic datastructures and algorithms in Go.* - -* [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. -* [bingo](https://github.com/iancmcc/bingo) - Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes. -* [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. -* [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. -* [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go. -* [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. -* [bloomfilter](https://github.com/OldPanda/bloomfilter) - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library. -* [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams. -* [cmap](https://github.com/lrita/cmap) - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards. -* [concurrent-writer](https://github.com/free/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. -* [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. -* [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). -* [crunch](https://github.com/superwhiskers/crunch) - Go package implementing buffers for handling various datatypes easily. -* [cuckoo-filter](https://github.com/linvon/cuckoo-filter) - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper is available. -* [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. -* [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. -* [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). -* [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. -* [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation in Go. -* [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. -* [fsm](https://github.com/cocoonspace/fsm) - Finite-State Machine package. -* [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. -* [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-edlib](https://github.com/hbollon/go-edlib) - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode. -* [go-ef](https://github.com/amallia/go-ef) - A Go implementation of the Elias-Fano encoding. -* [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. -* [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. -* [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. -* [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. -* [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. -* [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. -* [gofal](https://github.com/xxjwxc/gofal) - fractional api for Go. -* [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. -* [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. -* [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. -* [gostl](https://github.com/liyue201/gostl) - Data structure and algorithm library for go, designed to provide functions similar to C++ STL. -* [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. -* [goterator](https://github.com/yaa110/goterator) - Iterator implementation to provide map and reduce functionalities. -* [hashsplit](http://github.com/bobg/hashsplit) - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position. -* [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. -* [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. -* [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. -* [iter](https://github.com/disksing/iter) - Go implementation of C++ STL iterators and algorithms. -* [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. -* [memlog](https://github.com/embano1/memlog) - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka. -* [merkle](https://github.com/bobg/merkle) - Space-efficient computation of Merkle root hashes and inclusion proofs. -* [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. -* [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. -* [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. -* [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. -* [ordered-concurrently](https://github.com/tejzpr/ordered-concurrently) - Go module that processes work concurrently and returns output in a channel in the order of input. -* [parapipe](https://github.com/nazar256/parapipe) - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results. -* [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. -* [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. -* [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree. -* [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). -* [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. -* [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. -* [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. -* [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. -* [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. -* [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. -* [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. -* [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. -* [trie](https://github.com/derekparker/trie) - Trie implementation in Go. -* [ttlcache](https://github.com/ReneKroon/ttlcache) - In-memory string-interface{} cache with various time-based expiration options and callbacks. -* [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. -* [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. +_Generic datastructures and algorithms in Go._ + +- [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. +- [bingo](https://github.com/iancmcc/bingo) - Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes. +- [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. +- [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. +- [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go. +- [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. +- [bloomfilter](https://github.com/OldPanda/bloomfilter) - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library. +- [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams. +- [cmap](https://github.com/lrita/cmap) - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards. +- [concurrent-writer](https://github.com/free/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. +- [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. +- [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). +- [crunch](https://github.com/superwhiskers/crunch) - Go package implementing buffers for handling various datatypes easily. +- [cuckoo-filter](https://github.com/linvon/cuckoo-filter) - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper is available. +- [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. +- [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. +- [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). +- [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. +- [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation in Go. +- [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. +- [fsm](https://github.com/cocoonspace/fsm) - Finite-State Machine package. +- [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. +- [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-edlib](https://github.com/hbollon/go-edlib) - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode. +- [go-ef](https://github.com/amallia/go-ef) - A Go implementation of the Elias-Fano encoding. +- [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. +- [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. +- [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. +- [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. +- [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. +- [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. +- [gofal](https://github.com/xxjwxc/gofal) - fractional api for Go. +- [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. +- [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. +- [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. +- [gostl](https://github.com/liyue201/gostl) - Data structure and algorithm library for go, designed to provide functions similar to C++ STL. +- [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. +- [goterator](https://github.com/yaa110/goterator) - Iterator implementation to provide map and reduce functionalities. +- [hashsplit](http://github.com/bobg/hashsplit) - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position. +- [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. +- [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. +- [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. +- [iter](https://github.com/disksing/iter) - Go implementation of C++ STL iterators and algorithms. +- [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. +- [memlog](https://github.com/embano1/memlog) - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka. +- [merkle](https://github.com/bobg/merkle) - Space-efficient computation of Merkle root hashes and inclusion proofs. +- [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. +- [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. +- [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. +- [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. +- [ordered-concurrently](https://github.com/tejzpr/ordered-concurrently) - Go module that processes work concurrently and returns output in a channel in the order of input. +- [parapipe](https://github.com/nazar256/parapipe) - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results. +- [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. +- [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. +- [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree. +- [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). +- [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. +- [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. +- [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. +- [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. +- [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. +- [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. +- [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. +- [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. +- [trie](https://github.com/derekparker/trie) - Trie implementation in Go. +- [ttlcache](https://github.com/ReneKroon/ttlcache) - In-memory string-interface{} cache with various time-based expiration options and callbacks. +- [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. +- [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. **[⬆ back to top](#contents)** ## Database -*Databases implemented in Go.* - -* [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. -* [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go. -* [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. -* [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. -* [Bitcask](https://git.mills.io/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). -* [buntdb](https://github.com/tidwall/buntdb) - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. -* [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. -* [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. -* [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. -* [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore. -* [Coffer](https://github.com/claygod/coffer) - Simple ACID key-value database that supports transactions. -* [column](https://github.com/kelindar/column) - High-performance, columnar, embeddable in-memory store with bitmap indexing and transactions. -* [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. -* [CovenantSQL](https://github.com/CovenantSQL/CovenantSQL) - CovenantSQL is a SQL database on blockchain. -* [Databunker](https://github.com/paranoidguy/databunker) - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. -* [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. -* [dtm](https://github.com/yedf/dtm) - A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages. -* [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. -* [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. -* [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. -* [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. -* [godis](https://github.com/hdt3213/godis) - A Golang implemented high-performance Redis server and cluster. -* [goleveldb](https://github.com/syndtr/goleveldb) - Implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in Go. -* [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. -* [hare](https://github.com/jameycribbs/hare) - A simple database management system that stores each table as a text file of line-delimited JSON. -* [immudb](https://github.com/codenotary/immudb) - immudb is a lightweight, high-speed immutable database for systems and applications written in Go. -* [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics. -* [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. -* [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. -* [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. -* [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. -* [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. -* [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. -* [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. -* [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. -* [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. -* [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. -* [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. -* [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. -* [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. -* [slowpoke](https://github.com/recoilme/slowpoke) - Key-value store with persistence. -* [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. -* [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. -* [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. -* [ttlcache](https://github.com/cheshir/ttlcache) - In-memory key value storage with TTL for each record. -* [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. -* [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. -* [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. - -*Database schema migration.* - -* [atlas](https://github.com/ariga/atlas) - A Database Toolkit. A CLI designed to help companies better work with their data. -* [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. -* [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. -* [go-pg-migrate](https://github.com/lawzava/go-pg-migrate) - CLI-friendly package for go-pg migrations management. -* [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. -* [goavro](https://github.com/linkedin/goavro) - A Go package that encodes and decodes Avro data. -* [goose](https://github.com/pressly/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/golang-migrate/migrate) - Database migrations. CLI and Golang library. -* [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. -* [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code. -* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. -* [schema](https://github.com/adlio/schema) - Library to embed schema migrations for database/sql-compatible databases inside your Go binaries. -* [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. -* [soda](https://github.com/gobuffalo/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. -* [sqlize](https://github.com/sunary/sqlize) - Database migration generator. Allows generate sql migration from model and existing sql by differ them. - -*Database tools.* - -* [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. -* [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small insterts and sends big requests to ClickHouse servers. -* [datagen](https://github.com/codingconcepts/datagen) - A fast data generator that's multi-table aware and supports multi-row DML. -* [dbbench](https://github.com/sj14/dbbench) - Database benchmarking tool with support for several databases and scripts. -* [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. -* [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. Supports statement and row based replication. -* [octillery](https://github.com/knocknote/octillery) - Go package for sharding databases ( Supports every ORM or raw SQL ). -* [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer. -* [pg_timetable](https://github.com/cybertec-postgresql/pg_timetable) - Advanced scheduling for PostgreSQL. -* [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. -* [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code. -* [pREST](https://github.com/prest/prest) - Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new. -* [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup. -* [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.* - -* [bqb](https://github.com/nullism/bqb) - Lightweight and easy to learn query builder. -* [buildsqlx](https://github.com/arthurkushman/buildsqlx) - Go database query builder library for PostgreSQL. -* [dbq](https://github.com/rocketlaunchr/dbq) - Zero boilerplate database operations for Go. -* [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use them with ease. -* [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder. -* [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. -* [goqu](https://github.com/doug-martin/goqu) - Idiomatic SQL builder and query library. -* [gosql](https://github.com/twharmon/gosql) - SQL Query builder with better null values support. -* [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. -* [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. -* [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. -* [mpath](https://github.com/spacetab-io/mpath-go) - MPTT (Modified Preorder Tree Traversal) package for SQL records - materialized path realisation. -* [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. -* [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. -* [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. -* [sq](https://github.com/bokwoon95/go-structured-query) - Type-safe SQL builder and struct mapper for Go. -* [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. -* [sqlingo](https://github.com/lqs/sqlingo) - A lightweight DSL to build SQL in Go. -* [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. -* [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries. -* [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. -* [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. +_Databases implemented in Go._ + +- [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. +- [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go. +- [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. +- [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. +- [Bitcask](https://git.mills.io/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). +- [buntdb](https://github.com/tidwall/buntdb) - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. +- [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. +- [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. +- [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. +- [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore. +- [Coffer](https://github.com/claygod/coffer) - Simple ACID key-value database that supports transactions. +- [column](https://github.com/kelindar/column) - High-performance, columnar, embeddable in-memory store with bitmap indexing and transactions. +- [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. +- [CovenantSQL](https://github.com/CovenantSQL/CovenantSQL) - CovenantSQL is a SQL database on blockchain. +- [Databunker](https://github.com/paranoidguy/databunker) - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. +- [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. +- [dtm](https://github.com/yedf/dtm) - A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages. +- [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. +- [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. +- [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. +- [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. +- [godis](https://github.com/hdt3213/godis) - A Golang implemented high-performance Redis server and cluster. +- [goleveldb](https://github.com/syndtr/goleveldb) - Implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in Go. +- [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. +- [hare](https://github.com/jameycribbs/hare) - A simple database management system that stores each table as a text file of line-delimited JSON. +- [immudb](https://github.com/codenotary/immudb) - immudb is a lightweight, high-speed immutable database for systems and applications written in Go. +- [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics. +- [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. +- [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. +- [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. +- [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. +- [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. +- [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. +- [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. +- [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. +- [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. +- [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. +- [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. +- [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. +- [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. +- [slowpoke](https://github.com/recoilme/slowpoke) - Key-value store with persistence. +- [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. +- [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. +- [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. +- [ttlcache](https://github.com/cheshir/ttlcache) - In-memory key value storage with TTL for each record. +- [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. +- [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. +- [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. + +_Database schema migration._ + +- [atlas](https://github.com/ariga/atlas) - A Database Toolkit. A CLI designed to help companies better work with their data. +- [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. +- [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. +- [go-pg-migrate](https://github.com/lawzava/go-pg-migrate) - CLI-friendly package for go-pg migrations management. +- [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. +- [goavro](https://github.com/linkedin/goavro) - A Go package that encodes and decodes Avro data. +- [goose](https://github.com/pressly/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/golang-migrate/migrate) - Database migrations. CLI and Golang library. +- [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. +- [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code. +- [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. +- [schema](https://github.com/adlio/schema) - Library to embed schema migrations for database/sql-compatible databases inside your Go binaries. +- [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. +- [soda](https://github.com/gobuffalo/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. +- [sqlize](https://github.com/sunary/sqlize) - Database migration generator. Allows generate sql migration from model and existing sql by differ them. + +_Database tools._ + +- [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. +- [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small insterts and sends big requests to ClickHouse servers. +- [datagen](https://github.com/codingconcepts/datagen) - A fast data generator that's multi-table aware and supports multi-row DML. +- [dbbench](https://github.com/sj14/dbbench) - Database benchmarking tool with support for several databases and scripts. +- [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. +- [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. Supports statement and row based replication. +- [octillery](https://github.com/knocknote/octillery) - Go package for sharding databases ( Supports every ORM or raw SQL ). +- [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer. +- [pg_timetable](https://github.com/cybertec-postgresql/pg_timetable) - Advanced scheduling for PostgreSQL. +- [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. +- [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code. +- [pREST](https://github.com/prest/prest) - Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new. +- [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup. +- [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._ + +- [bqb](https://github.com/nullism/bqb) - Lightweight and easy to learn query builder. +- [buildsqlx](https://github.com/arthurkushman/buildsqlx) - Go database query builder library for PostgreSQL. +- [dbq](https://github.com/rocketlaunchr/dbq) - Zero boilerplate database operations for Go. +- [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use them with ease. +- [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder. +- [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. +- [goqu](https://github.com/doug-martin/goqu) - Idiomatic SQL builder and query library. +- [gosql](https://github.com/twharmon/gosql) - SQL Query builder with better null values support. +- [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. +- [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. +- [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. +- [mpath](https://github.com/spacetab-io/mpath-go) - MPTT (Modified Preorder Tree Traversal) package for SQL records - materialized path realisation. +- [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. +- [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. +- [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. +- [sq](https://github.com/bokwoon95/go-structured-query) - Type-safe SQL builder and struct mapper for Go. +- [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. +- [sqlingo](https://github.com/lqs/sqlingo) - A lightweight DSL to build SQL in Go. +- [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. +- [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries. +- [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. +- [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. **[⬆ back to top](#contents)** ## Database Drivers -*Libraries for connecting and operating databases.* - -* Relational Databases - * [avatica](https://github.com/apache/calcite-avatica-go) - Apache Avatica/Phoenix 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. - * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that uses database/sql. - * [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver for Go. - * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that uses database/sql. - * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. - * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. - * [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver. - * [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org). - * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. - * [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. - * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. - * [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. - * [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver. - -* NoSQL Databases - * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. - * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. - * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. - * [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. - * [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go. - * [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa. - * [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. - * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. - * [gocosmos](https://github.com/btnguyen2k/gocosmos) - REST client and standard `database/sql` driver for Azure Cosmos DB. - * [gocql](https://gocql.github.io) - Go language driver for Apache Cassandra. - * [godis](https://github.com/piaohao/godis) - redis client implement by golang, inspired by jedis. - * [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. - * [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. - * [mgm](https://github.com/kamva/mgm) - MongoDB model-based ODM for Go (based on official MongoDB driver). - * [mgo](https://github.com/globalsign/mgo) - (unmaintained) 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. - * [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. - * [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. - * [qmgo](https://github.com/qiniu/qmgo) - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. - * [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. - * [redigo](https://github.com/gomodule/redigo) - Redigo is a Go client for the Redis database. - * [redis](https://github.com/go-redis/redis) - Redis client for Golang. - * [rueidis](http://github.com/rueian/rueidis) - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching. - * [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. - -* 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. - * [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. - * [go-elasticsearch](https://github.com/elastic/go-elasticsearch) - Official Elasticsearch client for Go. - * [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch. - * [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine. - * [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. - -* Multiple Backends. - * [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. - * [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. - * [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more). +_Libraries for connecting and operating databases._ + +- Relational Databases + - [avatica](https://github.com/apache/calcite-avatica-go) - Apache Avatica/Phoenix 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. + - [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that uses database/sql. + - [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver for Go. + - [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that uses database/sql. + - [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. + - [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. + - [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver. + - [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org). + - [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. + - [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. + - [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. + - [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. + - [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver. + +- NoSQL Databases + - [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. + - [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. + - [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. + - [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. + - [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go. + - [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa. + - [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. + - [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. + - [gocosmos](https://github.com/btnguyen2k/gocosmos) - REST client and standard `database/sql` driver for Azure Cosmos DB. + - [gocql](https://gocql.github.io) - Go language driver for Apache Cassandra. + - [godis](https://github.com/piaohao/godis) - redis client implement by golang, inspired by jedis. + - [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. + - [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. + - [mgm](https://github.com/kamva/mgm) - MongoDB model-based ODM for Go (based on official MongoDB driver). + - [mgo](https://github.com/globalsign/mgo) - (unmaintained) 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. + - [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. + - [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. + - [qmgo](https://github.com/qiniu/qmgo) - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. + - [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. + - [redigo](https://github.com/gomodule/redigo) - Redigo is a Go client for the Redis database. + - [redis](https://github.com/go-redis/redis) - Redis client for Golang. + - [rueidis](http://github.com/rueian/rueidis) - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching. + - [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. + +- 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. + - [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. + - [go-elasticsearch](https://github.com/elastic/go-elasticsearch) - Official Elasticsearch client for Go. + - [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch. + - [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine. + - [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. + +- Multiple Backends. + - [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. + - [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. + - [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more). **[⬆ back to top](#contents)** ## Date and Time -*Libraries for working with dates and times.* - -* [carbon](https://github.com/golang-module/carbon) - A simple, semantic and developer-friendly golang package for datetime. -* [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library. -* [cronrange](https://github.com/1set/cronrange) - Parses Cron-style time range expressions, checks if the given time is within any ranges. -* [date](https://github.com/rickb777/date) - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day. -* [dateparse](https://github.com/araddon/dateparse) - Parse date's without knowing format in advance. -* [durafmt](https://github.com/hako/durafmt) - Time duration formatting library for Go. -* [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving... -* [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). -* [go-str2duration](https://github.com/xhit/go-str2duration) - Convert string to duration. Support time.Duration returned string and more. -* [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. -* [go-week](https://github.com/stoewer/go-week) - An efficient package to work with ISO8601 week dates. -* [gostradamus](https://github.com/bykof/gostradamus) - A Go package for working with dates. -* [iso8601](https://github.com/relvacode/iso8601) - Efficiently parse ISO8601 date-times without regex. -* [kair](https://github.com/GuilhermeCaruso/kair) - Date and Time - Golang Formatting Library. -* [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. -* [NullTime](https://github.com/kirillDanshin/nulltime) - Nullable `time.Time`. -* [strftime](https://github.com/awoodbeck/strftime) - C99-compatible strftime formatter. -* [timespan](https://github.com/SaidinWoT/timespan) - For interacting with intervals of time, defined as a start time and a duration. -* [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. -* [tuesday](https://github.com/osteele/tuesday) - Ruby-compatible Strftime function. +_Libraries for working with dates and times._ + +- [carbon](https://github.com/golang-module/carbon) - A simple, semantic and developer-friendly golang package for datetime. +- [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library. +- [cronrange](https://github.com/1set/cronrange) - Parses Cron-style time range expressions, checks if the given time is within any ranges. +- [date](https://github.com/rickb777/date) - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day. +- [dateparse](https://github.com/araddon/dateparse) - Parse date's without knowing format in advance. +- [durafmt](https://github.com/hako/durafmt) - Time duration formatting library for Go. +- [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving... +- [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). +- [go-str2duration](https://github.com/xhit/go-str2duration) - Convert string to duration. Support time.Duration returned string and more. +- [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. +- [go-week](https://github.com/stoewer/go-week) - An efficient package to work with ISO8601 week dates. +- [gostradamus](https://github.com/bykof/gostradamus) - A Go package for working with dates. +- [iso8601](https://github.com/relvacode/iso8601) - Efficiently parse ISO8601 date-times without regex. +- [kair](https://github.com/GuilhermeCaruso/kair) - Date and Time - Golang Formatting Library. +- [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. +- [NullTime](https://github.com/kirillDanshin/nulltime) - Nullable `time.Time`. +- [strftime](https://github.com/awoodbeck/strftime) - C99-compatible strftime formatter. +- [timespan](https://github.com/SaidinWoT/timespan) - For interacting with intervals of time, defined as a start time and a duration. +- [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. +- [tuesday](https://github.com/osteele/tuesday) - Ruby-compatible Strftime function. **[⬆ back to top](#contents)** ## Distributed Systems -*Packages that help with building Distributed Systems.* - -* [arpc](https://github.com/lesismal/arpc) - More effective network communication, support two-way-calling, notify, broadcast. -* [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. -* [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. -* [consistenthash](https://github.com/mbrostami/consistenthash) - Consistent hashing with configurable replicas. -* [dht](https://github.com/anacrolix/dht) - BitTorrent Kademlia DHT implementation. -* [digota](https://github.com/digota/digota) - grpc ecommerce microservice. -* [dot](https://github.com/dotchain/dot/) - distributed sync using operational transformation/OT. -* [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash. -* [dragonboat](https://github.com/lni/dragonboat) - A feature complete and high performance multi-group Raft library in Go. -* [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. -* [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation. -* [dynatomic](https://github.com/tylfin/dynatomic) - A library for using DynamoDB as an atomic counter. -* [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. -* [failured](https://github.com/andy2046/failured) - adaptive accrual failure detector for distributed systems. -* [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package. -* [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. -* [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. -* [gmsec](https://github.com/gmsec/micro) - A Go distributed systems development framework. -* [go-doudou](https://github.com/unionj-cloud/go-doudou) - A gossip protocol and OpenAPI 3.0 spec based decentralized microservice framework. Built-in go-doudou cli focusing on low-code and rapid dev can power up your productivity. -* [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service. -* [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. -* [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. -* [go-micro](https://github.com/micro/go-micro) - A distributed systems development framework. -* [go-mysql-lock](https://github.com/sanketplus/go-mysql-lock) - MySQL based distributed lock. -* [go-pdu](https://github.com/pdupub/go-pdu) - A decentralized identity-based social network. -* [go-sundheit](https://github.com/AppsFlyer/go-sundheit) - A library built to provide support for defining async service health checks for golang services. -* [go-zero](https://github.com/tal-tech/go-zero) - A web and rpc framework. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity. -* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. -* [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. -* [Kratos](https://github.com/go-kratos/kratos) - A modular-designed and easy-to-use microservices framework in Go. -* [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. -* [lura](https://github.com/luraproject/lura) - Ultra performant API Gateway framework with middlewares. -* [micro](https://github.com/micro/micro) - A distributed systems runtime for the cloud and beyond. -* [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems. -* [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. -* [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. -* [pjrpc](https://gitlab.com/pjrpc/pjrpc) - Golang JSON-RPC Server-Client with Protobuf spec. -* [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. -* [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. -* [rain](https://github.com/cenkalti/rain) - BitTorrent client and library. -* [redis-lock](https://github.com/bsm/redislock) - Simplified distributed locking implementation using Redis. -* [resgate](https://resgate.io/) - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly. -* [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. -* [Semaphore](https://github.com/jexia/semaphore) - A straightforward (micro) service orchestrator. -* [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)). -* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. +_Packages that help with building Distributed Systems._ + +- [arpc](https://github.com/lesismal/arpc) - More effective network communication, support two-way-calling, notify, broadcast. +- [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. +- [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. +- [consistenthash](https://github.com/mbrostami/consistenthash) - Consistent hashing with configurable replicas. +- [dht](https://github.com/anacrolix/dht) - BitTorrent Kademlia DHT implementation. +- [digota](https://github.com/digota/digota) - grpc ecommerce microservice. +- [dot](https://github.com/dotchain/dot/) - distributed sync using operational transformation/OT. +- [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash. +- [dragonboat](https://github.com/lni/dragonboat) - A feature complete and high performance multi-group Raft library in Go. +- [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. +- [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation. +- [dynatomic](https://github.com/tylfin/dynatomic) - A library for using DynamoDB as an atomic counter. +- [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. +- [failured](https://github.com/andy2046/failured) - adaptive accrual failure detector for distributed systems. +- [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package. +- [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. +- [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. +- [gmsec](https://github.com/gmsec/micro) - A Go distributed systems development framework. +- [go-doudou](https://github.com/unionj-cloud/go-doudou) - A gossip protocol and OpenAPI 3.0 spec based decentralized microservice framework. Built-in go-doudou cli focusing on low-code and rapid dev can power up your productivity. +- [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service. +- [go-jump](https://github.com/dgryski/go-jump) - Port of Google's "Jump" Consistent Hash function. +- [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. +- [go-micro](https://github.com/micro/go-micro) - A distributed systems development framework. +- [go-mysql-lock](https://github.com/sanketplus/go-mysql-lock) - MySQL based distributed lock. +- [go-pdu](https://github.com/pdupub/go-pdu) - A decentralized identity-based social network. +- [go-sundheit](https://github.com/AppsFlyer/go-sundheit) - A library built to provide support for defining async service health checks for golang services. +- [go-zero](https://github.com/tal-tech/go-zero) - A web and rpc framework. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity. +- [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. +- [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. +- [Kratos](https://github.com/go-kratos/kratos) - A modular-designed and easy-to-use microservices framework in Go. +- [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. +- [lura](https://github.com/luraproject/lura) - Ultra performant API Gateway framework with middlewares. +- [micro](https://github.com/micro/micro) - A distributed systems runtime for the cloud and beyond. +- [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems. +- [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. +- [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. +- [pjrpc](https://gitlab.com/pjrpc/pjrpc) - Golang JSON-RPC Server-Client with Protobuf spec. +- [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. +- [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. +- [rain](https://github.com/cenkalti/rain) - BitTorrent client and library. +- [redis-lock](https://github.com/bsm/redislock) - Simplified distributed locking implementation using Redis. +- [resgate](https://resgate.io/) - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly. +- [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. +- [Semaphore](https://github.com/jexia/semaphore) - A straightforward (micro) service orchestrator. +- [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)). +- [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. **[⬆ back to top](#contents)** ## Dynamic DNS -*Tools for updating dynamic DNS records.* +_Tools for updating dynamic DNS records._ -* [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. -* [dyndns](https://gitlab.com/alcastle/dyndns) - Background Go process to regularly and automatically check your IP Address and make updates to (one or many) Dynamic DNS records for Google domains whenever your address changes. -* [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. +- [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend. +- [dyndns](https://gitlab.com/alcastle/dyndns) - Background Go process to regularly and automatically check your IP Address and make updates to (one or many) Dynamic DNS records for Google domains whenever your address changes. +- [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. **[⬆ back to top](#contents)** ## Email -*Libraries and tools that implement email creation and sending.* - -* [chasquid](https://blitiri.com.ar/p/chasquid) - SMTP server written in Go. -* [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. -* [email-verifier](https://github.com/AfterShip/email-verifier) - A Go library for email verification without sending any emails. -* [go-dkim](https://github.com/toorop/go-dkim) - DKIM library, to sign & verify email. -* [go-email-validator](https://github.com/go-email-validator/go-email-validator) - Modular email validator for syntax, disposable, smtp, etc... checking. -* [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-premailer](https://github.com/vanng822/go-premailer) - Inline styling for HTML mail in Go. -* [go-simple-mail](https://github.com/xhit/go-simple-mail) - Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send. -* [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. -* [mailchain](https://github.com/mailchain/mailchain) - Send encrypted emails to blockchain addresses written in Go. -* [mailgun-go](https://github.com/mailgun/mailgun-go) - Go library for sending mail with the Mailgun API. -* [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. -* [smtpmock](https://github.com/mocktools/go-smtp-mock) - Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP behaviour for your test environment. +_Libraries and tools that implement email creation and sending._ + +- [chasquid](https://blitiri.com.ar/p/chasquid) - SMTP server written in Go. +- [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. +- [email-verifier](https://github.com/AfterShip/email-verifier) - A Go library for email verification without sending any emails. +- [go-dkim](https://github.com/toorop/go-dkim) - DKIM library, to sign & verify email. +- [go-email-validator](https://github.com/go-email-validator/go-email-validator) - Modular email validator for syntax, disposable, smtp, etc... checking. +- [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-premailer](https://github.com/vanng822/go-premailer) - Inline styling for HTML mail in Go. +- [go-simple-mail](https://github.com/xhit/go-simple-mail) - Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send. +- [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. +- [mailchain](https://github.com/mailchain/mailchain) - Send encrypted emails to blockchain addresses written in Go. +- [mailgun-go](https://github.com/mailgun/mailgun-go) - Go library for sending mail with the Mailgun API. +- [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. +- [smtpmock](https://github.com/mocktools/go-smtp-mock) - Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP behaviour for your test environment. **[⬆ back to top](#contents)** ## Embeddable Scripting Languages -*Embedding other languages inside your go code.* - -* [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). -* [cel-go](https://github.com/google/cel-go) - Fast, portable, non-Turing complete expression evaluation with gradual typing. -* [ecal](https://github.com/krotik/ecal) - A simple embeddable scripting language which supports concurrent event processing. -* [expr](https://github.com/antonmedv/expr) - Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing. -* [gentee](https://github.com/gentee/gentee) - Embeddable scripting programming language. -* [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. -* [goja](https://github.com/dop251/goja) - ECMAScript 5.1(+) implementation in Go. -* [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. -* [gval](https://github.com/PaesslerAG/gval) - A highly customizable expression language written in Go. -* [metacall](https://github.com/metacall/core) - Cross-platform Polyglot Runtime which supports NodeJS, JavaScript, TypeScript, Python, Ruby, C#, WebAssembly, Java, Cobol and more. -* [ngaro](https://github.com/db47h/ngaro) - Embeddable Ngaro VM implementation enabling scripting in Retro. -* [prolog](https://github.com/ichiban/prolog) - Embeddable Prolog. -* [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go. -* [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. +_Embedding other languages inside your go code._ + +- [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). +- [cel-go](https://github.com/google/cel-go) - Fast, portable, non-Turing complete expression evaluation with gradual typing. +- [ecal](https://github.com/krotik/ecal) - A simple embeddable scripting language which supports concurrent event processing. +- [expr](https://github.com/antonmedv/expr) - Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing. +- [gentee](https://github.com/gentee/gentee) - Embeddable scripting programming language. +- [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. +- [goja](https://github.com/dop251/goja) - ECMAScript 5.1(+) implementation in Go. +- [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. +- [gval](https://github.com/PaesslerAG/gval) - A highly customizable expression language written in Go. +- [metacall](https://github.com/metacall/core) - Cross-platform Polyglot Runtime which supports NodeJS, JavaScript, TypeScript, Python, Ruby, C#, WebAssembly, Java, Cobol and more. +- [ngaro](https://github.com/db47h/ngaro) - Embeddable Ngaro VM implementation enabling scripting in Retro. +- [prolog](https://github.com/ichiban/prolog) - Embeddable Prolog. +- [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go. +- [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. **[⬆ back to top](#contents)** ## Error Handling -*Libraries for handling errors.* +_Libraries for handling errors._ -* [emperror](https://github.com/emperror/emperror) - Error handling tools and best practices for Go libraries and applications. -* [eris](https://github.com/rotisserie/eris) - A better way to handle, trace, and log errors in Go. Compatible with the standard error library and github.com/pkg/errors. -* [errlog](https://github.com/snwfdhmp/errlog) - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place. -* [errors](https://github.com/emperror/errors) - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives. -* [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. -* [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. -* [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. -* [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builting Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. -* [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. -* [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. -* [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. -* [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. +- [emperror](https://github.com/emperror/emperror) - Error handling tools and best practices for Go libraries and applications. +- [eris](https://github.com/rotisserie/eris) - A better way to handle, trace, and log errors in Go. Compatible with the standard error library and github.com/pkg/errors. +- [errlog](https://github.com/snwfdhmp/errlog) - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place. +- [errors](https://github.com/emperror/errors) - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives. +- [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. +- [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. +- [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. +- [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builting Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. +- [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. +- [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. +- [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. +- [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. **[⬆ back to top](#contents)** ## File Handling -*Libraries for handling files and file systems.* - -* [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. -* [afs](https://github.com/viant/afs) - Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go. -* [baraka](https://github.com/xis/baraka) - A library to process http file uploads easily. -* [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client. -* [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5, SHA256, SHA1, CRC or BLAKE2s, for large files. -* [copy](https://github.com/otiai10/copy) - Copy directory recursively. -* [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). -* [gdu](https://github.com/dundee/gdu) - Disk usage analyzer with console interface. -* [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. -* [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. -* [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). -* [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. -* [gut/yos](https://github.com/1set/gut) - Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links. -* [higgs](https://github.com/dastoori/higgs) - A tiny cross-platform Go library to hide/unhide files and directories. -* [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. -* [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. -* [parquet](https://github.com/parsyl/parquet) - Read and write [parquet](https://parquet.apache.org) files. -* [pathtype](https://github.com/jonchun/pathtype) - Treat paths as their own type instead of using strings. -* [pdfcpu](https://github.com/pdfcpu/pdfcpu) - PDF processor. -* [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. -* [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. -* [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. -* [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [*todo.txt*](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [*todo.txt* format](https://github.com/todotxt/todo.txt). -* [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. +_Libraries for handling files and file systems._ + +- [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go. +- [afs](https://github.com/viant/afs) - Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go. +- [baraka](https://github.com/xis/baraka) - A library to process http file uploads easily. +- [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client. +- [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5, SHA256, SHA1, CRC or BLAKE2s, for large files. +- [copy](https://github.com/otiai10/copy) - Copy directory recursively. +- [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html). +- [gdu](https://github.com/dundee/gdu) - Disk usage analyzer with console interface. +- [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag. +- [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. +- [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). +- [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. +- [gut/yos](https://github.com/1set/gut) - Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links. +- [higgs](https://github.com/dastoori/higgs) - A tiny cross-platform Go library to hide/unhide files and directories. +- [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +- [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. +- [parquet](https://github.com/parsyl/parquet) - Read and write [parquet](https://parquet.apache.org) files. +- [pathtype](https://github.com/jonchun/pathtype) - Treat paths as their own type instead of using strings. +- [pdfcpu](https://github.com/pdfcpu/pdfcpu) - PDF processor. +- [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. +- [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. +- [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. +- [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [_todo.txt_](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [_todo.txt_ format](https://github.com/todotxt/todo.txt). +- [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. **[⬆ back to top](#contents)** ## Financial -*Packages for accounting and finance.* - -* [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang. -* [ach](https://github.com/moov-io/ach) - A reader, writer, and valdiator for Automated Clearing House (ACH) files. -* [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. -* [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. -* [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. -* [fastme](https://github.com/newity/fastme) - Fast extensible matching engine Go implementation. -* [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. -* [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. -* [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. -* [go-finnhub](https://github.com/m1/go-finnhub) - Client for stock market, forex and crypto data from finnhub.io. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges. -* [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). -* [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. -* [payme](https://github.com/jovandeginste/payme) - QR code generator (ASCII & PNG) for SEPA payments. -* [sleet](https://github.com/BoltApp/sleet) - One unified interface for multiple Payment Service Providers (PsP) to process online payment. -* [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies. -* [ticker](https://github.com/achannarasappa/ticker) - Terminal stock watcher and stock position tracker. -* [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. -* [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. +_Packages for accounting and finance._ + +- [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang. +- [ach](https://github.com/moov-io/ach) - A reader, writer, and valdiator for Automated Clearing House (ACH) files. +- [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. +- [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. +- [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. +- [fastme](https://github.com/newity/fastme) - Fast extensible matching engine Go implementation. +- [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. +- [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. +- [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. +- [go-finnhub](https://github.com/m1/go-finnhub) - Client for stock market, forex and crypto data from finnhub.io. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges. +- [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). +- [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. +- [payme](https://github.com/jovandeginste/payme) - QR code generator (ASCII & PNG) for SEPA payments. +- [sleet](https://github.com/BoltApp/sleet) - One unified interface for multiple Payment Service Providers (PsP) to process online payment. +- [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies. +- [ticker](https://github.com/achannarasappa/ticker) - Terminal stock watcher and stock position tracker. +- [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. +- [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. **[⬆ back to top](#contents)** ## Forms -*Libraries for working with forms.* +_Libraries for working with forms._ -* [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. -* [formam](https://github.com/monoculum/formam) - decode form's values into a struct. -* [forms](https://github.com/albrow/forms) - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. -* [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. -* [nosurf](https://github.com/justinas/nosurf) - CSRF protection middleware for Go. -* [qs](https://github.com/sonh/qs) - Go module for encoding structs into URL query parameters. -* [queryparam](https://github.com/tomwright/queryparam) - Decode `url.Values` into usable struct values of standard or custom types. +- [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. +- [formam](https://github.com/monoculum/formam) - decode form's values into a struct. +- [forms](https://github.com/albrow/forms) - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. +- [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. +- [nosurf](https://github.com/justinas/nosurf) - CSRF protection middleware for Go. +- [qs](https://github.com/sonh/qs) - Go module for encoding structs into URL query parameters. +- [queryparam](https://github.com/tomwright/queryparam) - Decode `url.Values` into usable struct values of standard or custom types. **[⬆ back to top](#contents)** ## Functional -*Packages to support functional programming in Go.* +_Packages to support functional programming in Go._ -* [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang. -* [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go. -* [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. -* [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang. +- [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang. +- [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go. +- [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. +- [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang. **[⬆ back to top](#contents)** ## Game Development -*Awesome game development libraries.* - -* [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go. -* [Ebiten](https://github.com/hajimehoshi/ebiten) - dead 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. -* [g3n](https://github.com/g3n/engine) - Go 3D Game Engine. -* [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A\* path finding algorithm. -* [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. -* [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping. -* [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. -* [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework. -* [Oak](https://github.com/oakmound/oak) - Pure Go game engine. -* [Pitaya](https://github.com/topfreegames/pitaya) - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. -* [Pixel](https://github.com/faiface/pixel) - Hand-crafted 2D game library in Go. -* [prototype](https://github.com/gonutz/prototype) - Cross-platform (Windows/Linux/Mac) library for creating desktop games using a minimal API. -* [raylib-go](https://github.com/gen2brain/raylib-go) - Go bindings for [raylib](https://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. -* [tile](https://github.com/kelindar/tile) - Data-oriented and cache-friendly 2D Grid library (TileMap), includes pathfinding, observers and import/export. +_Awesome game development libraries._ + +- [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go. +- [Ebiten](https://github.com/hajimehoshi/ebiten) - dead 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. +- [g3n](https://github.com/g3n/engine) - Go 3D Game Engine. +- [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A\* path finding algorithm. +- [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. +- [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping. +- [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. +- [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework. +- [Oak](https://github.com/oakmound/oak) - Pure Go game engine. +- [Pitaya](https://github.com/topfreegames/pitaya) - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. +- [Pixel](https://github.com/faiface/pixel) - Hand-crafted 2D game library in Go. +- [prototype](https://github.com/gonutz/prototype) - Cross-platform (Windows/Linux/Mac) library for creating desktop games using a minimal API. +- [raylib-go](https://github.com/gen2brain/raylib-go) - Go bindings for [raylib](https://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. +- [tile](https://github.com/kelindar/tile) - Data-oriented and cache-friendly 2D Grid library (TileMap), includes pathfinding, observers and import/export. **[⬆ back to top](#contents)** ## Generation and Generics -*Tools to enhance the language with features like generics via code generation.* +_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. -* [gen](https://github.com/clipperhouse/gen) - Code generation tool for ‘generics’-like functionality. -* [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. -* [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. -* [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. -* [go-xray](https://github.com/pieterclaerhout/go-xray) - Helpers for making the use of reflection easier. -* [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. -* [gotype](https://github.com/wzshiming/gotype) - Golang source code parsing, usage like reflect package. -* [goverter](https://github.com/jmattheis/goverter) - Generate converters by defining an interface. -* [GoWrap](https://github.com/hexdigest/gowrap) - Generate decorators for Go interfaces using simple templates. -* [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. -* [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. -* [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection. -* [typeregistry](https://github.com/xiaoxin01/typeregistry) - A library to create type dynamically. +- [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. +- [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. +- [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. +- [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. +- [go-xray](https://github.com/pieterclaerhout/go-xray) - Helpers for making the use of reflection easier. +- [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. +- [gotype](https://github.com/wzshiming/gotype) - Golang source code parsing, usage like reflect package. +- [goverter](https://github.com/jmattheis/goverter) - Generate converters by defining an interface. +- [GoWrap](https://github.com/hexdigest/gowrap) - Generate decorators for Go interfaces using simple templates. +- [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. +- [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. +- [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection. +- [typeregistry](https://github.com/xiaoxin01/typeregistry) - A library to create type dynamically. **[⬆ back to top](#contents)** ## Geographic -*Geographic tools and servers* +_Geographic tools and servers_ -* [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. -* [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver. -* [godal](https://github.com/airbusgeo/godal) - Go wrapper for GDAL. -* [mbtileserver](https://github.com/consbio/mbtileserver) - A simple Go-based server for map tiles stored in mbtiles format. -* [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. -* [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. -* [S2 geojson](https://github.com/pantrif/s2-geojson) - Convert geojson to s2 cells & demonstrating some S2 geometry features on map. -* [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. -* [simplefeatures](https://github.com/peterstace/simplefeatures) - simplesfeatures is a 2D geometry library that provides Go types that model geometries, as well as algorithms that operate on them. -* [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. -* [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM). +- [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. +- [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver. +- [godal](https://github.com/airbusgeo/godal) - Go wrapper for GDAL. +- [mbtileserver](https://github.com/consbio/mbtileserver) - A simple Go-based server for map tiles stored in mbtiles format. +- [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. +- [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. +- [S2 geojson](https://github.com/pantrif/s2-geojson) - Convert geojson to s2 cells & demonstrating some S2 geometry features on map. +- [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. +- [simplefeatures](https://github.com/peterstace/simplefeatures) - simplesfeatures is a 2D geometry library that provides Go types that model geometries, as well as algorithms that operate on them. +- [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. +- [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM). **[⬆ back to top](#contents)** ## Go Compilers -*Tools for compiling Go to other languages.* +_Tools for compiling Go to other languages._ -* [c4go](https://github.com/Konstantin8105/c4go) - Transpile C code to Go code. -* [esp32](https://github.com/andygeiss/esp32-transpiler) - Transpile Go into Arduino code. -* [f4go](https://github.com/Konstantin8105/f4go) - Transpile FORTRAN 77 code to Go code. -* [gopherjs](https://github.com/gopherjs/gopherjs) - Compiler from Go to JavaScript. -* [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. +- [c4go](https://github.com/Konstantin8105/c4go) - Transpile C code to Go code. +- [esp32](https://github.com/andygeiss/esp32-transpiler) - Transpile Go into Arduino code. +- [f4go](https://github.com/Konstantin8105/f4go) - Transpile FORTRAN 77 code to Go code. +- [gopherjs](https://github.com/gopherjs/gopherjs) - Compiler from Go to JavaScript. +- [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. **[⬆ back to top](#contents)** ## Goroutines -*Tools for managing and working with Goroutines.* - -* [ants](https://github.com/panjf2000/ants) - A high-performance and low-cost goroutine pool in Go. -* [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. -* [async](https://github.com/reugn/async) - An alternative sync library for Go (Future, Promise, Locks). -* [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. -* [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. -* [channelify](https://github.com/ddelizia/channelify) - Transform your function to return channels for easy and powerful parallel processing. -* [concurrency-limiter](https://github.com/vivek-ng/concurrency-limiter) - Concurrency limiter with support for timeouts , dynamic priority and context cancellation of goroutines. -* [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. -* [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. -* [execpool](https://github.com/hexdigest/execpool) - A pool built around exec.Cmd that spins up a given number of processes in advance and attaches stdin and stdout to them when needed. Very similar to FastCGI or Apache Prefork MPM but works for any command. -* [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. -* [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. -* [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. -* [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. -* [go-waitgroup](https://github.com/pieterclaerhout/go-waitgroup) - Like `sync.WaitGroup` with error handling and concurrency control. -* [go-workers](https://github.com/catmullet/go-workers) - Easily and safely run workers for large data processing pipelines. -* [goccm](https://github.com/zenthangplus/goccm) - Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently. -* [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. -* [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. -* [gowl](https://github.com/hamed-yousefi/gowl) - Gowl is a process management and process monitoring tool at once. An infinite worker pool gives you the ability to control the pool and processes and monitor their status. -* [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. -* [gowp](https://github.com/xxjwxc/gowp) - gowp is concurrency limiting goroutine pool. -* [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. -* [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. -* [hands](https://github.com/duanckham/hands) - A process controller used to control the execution and return strategies of multiple goroutines. -* [Hunch](https://github.com/AaronJan/Hunch) - Hunch provides functions like: `All`, `First`, `Retry`, `Waterfall` etc., that makes asynchronous flow control more intuitive. -* [kyoo](https://github.com/dirkaholic/kyoo) - Provides an unlimited job queue and concurrent worker pools. -* [neilotoole/errgroup](https://github.com/neilotoole/errgroup) - Drop-in alternative to `sync/errgroup`, limited to a pool of N worker goroutines. -* [nursery](https://github.com/arunsworld/nursery) - Structured concurrency in Go. -* [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. -* [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. -* [pond](https://github.com/alitto/pond) - Minimalistic and High-performance goroutine worker pool written in Go. -* [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. -* [queue](https://github.com/AnikHasibul/queue) - Gives you a `sync.WaitGroup` like queue group accessibility. Helps you to throttle and limit goroutines, wait for the end of the all goroutines and much more. -* [routine](https://github.com/x-mod/routine) - go routine control with context, support: Main, Go, Pool and some useful Executors. -* [semaphore](https://github.com/kamilsk/semaphore) - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. -* [semaphore](https://github.com/marusama/semaphore) - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations). -* [stl](https://github.com/ssgreg/stl) - Software transactional locks based on Software Transactional Memory (STM) concurrency control mechanism. -* [threadpool](https://github.com/shettyh/threadpool) - Golang threadpool implementation. -* [tunny](https://github.com/Jeffail/tunny) - Goroutine pool for golang. -* [worker-pool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool. -* [workerpool](https://github.com/gammazero/workerpool) - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued. +_Tools for managing and working with Goroutines._ + +- [ants](https://github.com/panjf2000/ants) - A high-performance and low-cost goroutine pool in Go. +- [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. +- [async](https://github.com/reugn/async) - An alternative sync library for Go (Future, Promise, Locks). +- [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. +- [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. +- [channelify](https://github.com/ddelizia/channelify) - Transform your function to return channels for easy and powerful parallel processing. +- [concurrency-limiter](https://github.com/vivek-ng/concurrency-limiter) - Concurrency limiter with support for timeouts , dynamic priority and context cancellation of goroutines. +- [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. +- [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. +- [execpool](https://github.com/hexdigest/execpool) - A pool built around exec.Cmd that spins up a given number of processes in advance and attaches stdin and stdout to them when needed. Very similar to FastCGI or Apache Prefork MPM but works for any command. +- [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. +- [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. +- [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. +- [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. +- [go-waitgroup](https://github.com/pieterclaerhout/go-waitgroup) - Like `sync.WaitGroup` with error handling and concurrency control. +- [go-workers](https://github.com/catmullet/go-workers) - Easily and safely run workers for large data processing pipelines. +- [goccm](https://github.com/zenthangplus/goccm) - Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently. +- [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. +- [gollback](https://github.com/vardius/gollback) - asynchronous simple function utilities, for managing execution of closures and callbacks. +- [gowl](https://github.com/hamed-yousefi/gowl) - Gowl is a process management and process monitoring tool at once. An infinite worker pool gives you the ability to control the pool and processes and monitor their status. +- [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. +- [gowp](https://github.com/xxjwxc/gowp) - gowp is concurrency limiting goroutine pool. +- [gpool](https://github.com/Sherifabdlnaby/gpool) - manages a resizeable pool of context-aware goroutines to bound concurrency. +- [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. +- [hands](https://github.com/duanckham/hands) - A process controller used to control the execution and return strategies of multiple goroutines. +- [Hunch](https://github.com/AaronJan/Hunch) - Hunch provides functions like: `All`, `First`, `Retry`, `Waterfall` etc., that makes asynchronous flow control more intuitive. +- [kyoo](https://github.com/dirkaholic/kyoo) - Provides an unlimited job queue and concurrent worker pools. +- [neilotoole/errgroup](https://github.com/neilotoole/errgroup) - Drop-in alternative to `sync/errgroup`, limited to a pool of N worker goroutines. +- [nursery](https://github.com/arunsworld/nursery) - Structured concurrency in Go. +- [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. +- [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. +- [pond](https://github.com/alitto/pond) - Minimalistic and High-performance goroutine worker pool written in Go. +- [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. +- [queue](https://github.com/AnikHasibul/queue) - Gives you a `sync.WaitGroup` like queue group accessibility. Helps you to throttle and limit goroutines, wait for the end of the all goroutines and much more. +- [routine](https://github.com/x-mod/routine) - go routine control with context, support: Main, Go, Pool and some useful Executors. +- [semaphore](https://github.com/kamilsk/semaphore) - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. +- [semaphore](https://github.com/marusama/semaphore) - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations). +- [stl](https://github.com/ssgreg/stl) - Software transactional locks based on Software Transactional Memory (STM) concurrency control mechanism. +- [threadpool](https://github.com/shettyh/threadpool) - Golang threadpool implementation. +- [tunny](https://github.com/Jeffail/tunny) - Goroutine pool for golang. +- [worker-pool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool. +- [workerpool](https://github.com/gammazero/workerpool) - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued. **[⬆ back to top](#contents)** ## GUI -*Libraries for building GUI Applications.* - -*Toolkits* +_Libraries for building GUI Applications._ -* [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. -* [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. -* [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron). -* [go-gtk](https://mattn.github.io/go-gtk/) - Go bindings for GTK. -* [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. -* [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). -* [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. Cross platform. -* [Wails](https://wails.app) - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer. -* [walk](https://github.com/lxn/walk) - Windows application library kit for Go. -* [webview](https://github.com/zserge/webview) - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux). +_Toolkits_ -*Interaction* +- [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. +- [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. +- [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron). +- [go-gtk](https://mattn.github.io/go-gtk/) - Go bindings for GTK. +- [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. +- [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). +- [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. Cross platform. +- [Wails](https://wails.app) - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer. +- [walk](https://github.com/lxn/walk) - Windows application library kit for Go. +- [webview](https://github.com/zserge/webview) - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux). -* [go-appindicator](https://github.com/dawidd6/go-appindicator) - Go bindings for libappindicator3 C library. -* [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. -* [mac-activity-tracker](https://github.com/prashantgupta24/activity-tracker) - OSX library to notify about any (pluggable) activity on your machine. -* [mac-sleep-notifier](https://github.com/prashantgupta24/mac-sleep-notifier) - OSX Sleep/Wake notifications in golang. -* [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. -* [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. -* [zenity](https://github.com/ncruces/zenity) - Cross-platform Go library and CLI to create simple dialogs that interact graphically with the user. +_Interaction_ +- [go-appindicator](https://github.com/dawidd6/go-appindicator) - Go bindings for libappindicator3 C library. +- [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. +- [mac-activity-tracker](https://github.com/prashantgupta24/activity-tracker) - OSX library to notify about any (pluggable) activity on your machine. +- [mac-sleep-notifier](https://github.com/prashantgupta24/mac-sleep-notifier) - OSX Sleep/Wake notifications in golang. +- [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. +- [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. +- [zenity](https://github.com/ncruces/zenity) - Cross-platform Go library and CLI to create simple dialogs that interact graphically with the user. **[⬆ back to top](#contents)** ## Hardware -*Libraries, tools, and tutorials for interacting with hardware.* +_Libraries, tools, and tutorials for interacting with hardware._ -* [arduino-cli](https://github.com/arduino/arduino-cli) - Official Arduino CLI and library. Can run standalone, or be incorporated into larger Go projects. -* [emgo](https://github.com/ziutek/emgo) - Go-like language for programming embedded systems (e.g. STM32 MCU). -* [ghw](https://github.com/jaypipes/ghw) - Golang hardware discovery/inspection library. -* [go-osc](https://github.com/hypebeast/go-osc) - Open Sound Control (OSC) bindings for Go. -* [go-rpio](https://github.com/stianeikeland/go-rpio) - GPIO for Go, doesn't require cgo. -* [goroslib](https://github.com/aler9/goroslib) - Robot Operating System (ROS) library for Go. -* [joystick](https://github.com/0xcafed00d/joystick) - a polled API to read the state of an attached joystick. -* [sysinfo](https://github.com/zcalusic/sysinfo) - A pure Go library providing Linux OS / kernel / hardware system information. +- [arduino-cli](https://github.com/arduino/arduino-cli) - Official Arduino CLI and library. Can run standalone, or be incorporated into larger Go projects. +- [emgo](https://github.com/ziutek/emgo) - Go-like language for programming embedded systems (e.g. STM32 MCU). +- [ghw](https://github.com/jaypipes/ghw) - Golang hardware discovery/inspection library. +- [go-osc](https://github.com/hypebeast/go-osc) - Open Sound Control (OSC) bindings for Go. +- [go-rpio](https://github.com/stianeikeland/go-rpio) - GPIO for Go, doesn't require cgo. +- [goroslib](https://github.com/aler9/goroslib) - Robot Operating System (ROS) library for Go. +- [joystick](https://github.com/0xcafed00d/joystick) - a polled API to read the state of an attached joystick. +- [sysinfo](https://github.com/zcalusic/sysinfo) - A pure Go library providing Linux OS / kernel / hardware system information. **[⬆ back to top](#contents)** ## Images -*Libraries for manipulating images.* - -* [bild](https://github.com/anthonynsimon/bild) - Collection of image processing algorithms in pure Go. -* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. -* [cameron](https://github.com/aofei/cameron) - An avatar generator for Go. -* [canvas](https://github.com/tdewolff/canvas) - Vector graphics to PDF, SVG or rasterized image. -* [darkroom](https://github.com/gojek/darkroom) - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency. -* [draft](https://github.com/lucasepe/draft) - Generate High Level Microservice Architecture diagrams for GraphViz using simple YAML syntax. -* [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. -* [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. -* [gift](https://github.com/disintegration/gift) - Package of image processing filters. -* [gltf](https://github.com/qmuntal/gltf) - Efficient and robust glTF 2.0 reader, writer and validator. -* [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. -* [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library. -* [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. -* [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. -* [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. -* [go-webp](https://github.com/kolesa-team/go-webp) - Library for encode and decode webp pictures, using libwebp. -* [gocv](https://github.com/hybridgroup/gocv) - Go package for computer vision using OpenCV 3.3+. -* [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. -* [goimghdr](https://github.com/corona10/goimghdr) - The imghdr module determines the type of image contained in a file for Go. -* [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. -* [govips](https://github.com/davidbyttow/govips) - A lightning fast image processing and resizing library for Go. -* [gowitness](https://github.com/sensepost/gowitness) - Screenshoting webpages using go and headless chrome on command line. -* [gridder](https://github.com/shomali11/gridder) - A Grid based 2D Graphics library. -* [image2ascii](https://github.com/qeesung/image2ascii) - Convert image to ASCII. -* [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. -* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. -* [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. -* [img](https://github.com/hawx/img) - Selection of image manipulation tools. -* [ln](https://github.com/fogleman/ln) - 3D line art rendering in Go. -* [mergi](https://github.com/noelyahan/mergi) - Tool & Go library for image manipulation (Merge, Crop, Resize, Watermark, Animate). -* [mort](https://github.com/aldor007/mort) - Storage and image processing server written in Go. -* [mpo](https://github.com/donatj/mpo) - Decoder and conversion tool for MPO 3D Photos. -* [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go. -* [pt](https://github.com/fogleman/pt) - Path tracing engine written in Go. -* [resize](https://github.com/nfnt/resize) - Image resizing for Go with common interpolation methods. -* [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. -* [scout](https://github.com/jonoton/scout) - Scout is a standalone open source software solution for DIY video security. -* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. -* [steganography](https://github.com/auyer/steganography) - Pure Go Library for LSB steganography. -* [stegify](https://github.com/DimitarPetrov/stegify) - Go tool for LSB steganography, capable of hiding any file within an image. -* [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. -* [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. -* [webp-server](https://github.com/mehdipourfar/webp-server) - Simple and minimal image server capable of storing, resizing, converting and caching images. +_Libraries for manipulating images._ + +- [bild](https://github.com/anthonynsimon/bild) - Collection of image processing algorithms in pure Go. +- [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. +- [cameron](https://github.com/aofei/cameron) - An avatar generator for Go. +- [canvas](https://github.com/tdewolff/canvas) - Vector graphics to PDF, SVG or rasterized image. +- [darkroom](https://github.com/gojek/darkroom) - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency. +- [draft](https://github.com/lucasepe/draft) - Generate High Level Microservice Architecture diagrams for GraphViz using simple YAML syntax. +- [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. +- [gg](https://github.com/fogleman/gg) - 2D rendering in pure Go. +- [gift](https://github.com/disintegration/gift) - Package of image processing filters. +- [gltf](https://github.com/qmuntal/gltf) - Efficient and robust glTF 2.0 reader, writer and validator. +- [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. +- [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library. +- [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. +- [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. +- [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. +- [go-webp](https://github.com/kolesa-team/go-webp) - Library for encode and decode webp pictures, using libwebp. +- [gocv](https://github.com/hybridgroup/gocv) - Go package for computer vision using OpenCV 3.3+. +- [goimagehash](https://github.com/corona10/goimagehash) - Go Perceptual image hashing package. +- [goimghdr](https://github.com/corona10/goimghdr) - The imghdr module determines the type of image contained in a file for Go. +- [govatar](https://github.com/o1egl/govatar) - Library and CMD tool for generating funny avatars. +- [govips](https://github.com/davidbyttow/govips) - A lightning fast image processing and resizing library for Go. +- [gowitness](https://github.com/sensepost/gowitness) - Screenshoting webpages using go and headless chrome on command line. +- [gridder](https://github.com/shomali11/gridder) - A Grid based 2D Graphics library. +- [image2ascii](https://github.com/qeesung/image2ascii) - Convert image to ASCII. +- [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. +- [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. +- [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. +- [img](https://github.com/hawx/img) - Selection of image manipulation tools. +- [ln](https://github.com/fogleman/ln) - 3D line art rendering in Go. +- [mergi](https://github.com/noelyahan/mergi) - Tool & Go library for image manipulation (Merge, Crop, Resize, Watermark, Animate). +- [mort](https://github.com/aldor007/mort) - Storage and image processing server written in Go. +- [mpo](https://github.com/donatj/mpo) - Decoder and conversion tool for MPO 3D Photos. +- [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go. +- [pt](https://github.com/fogleman/pt) - Path tracing engine written in Go. +- [resize](https://github.com/nfnt/resize) - Image resizing for Go with common interpolation methods. +- [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. +- [scout](https://github.com/jonoton/scout) - Scout is a standalone open source software solution for DIY video security. +- [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. +- [steganography](https://github.com/auyer/steganography) - Pure Go Library for LSB steganography. +- [stegify](https://github.com/DimitarPetrov/stegify) - Go tool for LSB steganography, capable of hiding any file within an image. +- [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. +- [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. +- [webp-server](https://github.com/mehdipourfar/webp-server) - Simple and minimal image server capable of storing, resizing, converting and caching images. **[⬆ back to top](#contents)** ## IoT (Internet of Things) -*Libraries for programming devices of the IoT.* +_Libraries for programming devices of the IoT._ -* [connectordb](https://github.com/connectordb/connectordb) - Open-Source Platform for Quantified Self & IoT. -* [devices](https://github.com/goiot/devices) - Suite of libraries for IoT devices, experimental for x/exp/io. -* [eywa](https://github.com/xcodersun/eywa) - Project Eywa is essentially a connection manager that keeps track of connected devices. -* [flogo](https://github.com/tibcosoftware/flogo) - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. -* [gatt](https://github.com/paypal/gatt) - Gatt is a Go package for building Bluetooth Low Energy peripherals. -* [gobot](https://github.com/hybridgroup/gobot/) - Gobot is a framework for robotics, physical computing, and the Internet of Things. -* [huego](https://github.com/amimof/huego) - An extensive Philips Hue client library for Go. -* [iot](https://github.com/vaelen/iot/) - IoT is a simple framework for implementing a Google IoT Core device. -* [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. -* [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. -* [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. +- [connectordb](https://github.com/connectordb/connectordb) - Open-Source Platform for Quantified Self & IoT. +- [devices](https://github.com/goiot/devices) - Suite of libraries for IoT devices, experimental for x/exp/io. +- [eywa](https://github.com/xcodersun/eywa) - Project Eywa is essentially a connection manager that keeps track of connected devices. +- [flogo](https://github.com/tibcosoftware/flogo) - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. +- [gatt](https://github.com/paypal/gatt) - Gatt is a Go package for building Bluetooth Low Energy peripherals. +- [gobot](https://github.com/hybridgroup/gobot/) - Gobot is a framework for robotics, physical computing, and the Internet of Things. +- [huego](https://github.com/amimof/huego) - An extensive Philips Hue client library for Go. +- [iot](https://github.com/vaelen/iot/) - IoT is a simple framework for implementing a Google IoT Core device. +- [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. +- [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. +- [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. **[⬆ back to top](#contents)** ## Job Scheduler -*Libraries for scheduling jobs.* +_Libraries for scheduling jobs._ -* [cheek](https://github.com/datarootsio/cheek) - A simple crontab like scheduler that aims to offer a KISS approach to job scheduling. -* [clockwerk](https://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. -* [cronticker](https://github.com/krayzpipes/cronticker) - A ticker implementation to support cron schedules. -* [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. -* [gocron](https://github.com/go-co-op/gocron) - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). -* [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. -* [gronx](https://github.com/adhocore/gronx) - Cron expression parser, task runner and daemon consuming crontab like task list. -* [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. -* [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. -* [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling. -* [sched](https://github.com/romshark/sched) - A job scheduler with the ability to fast-forward time. -* [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. -* [tasks](https://github.com/madflojo/tasks) - An easy to use in-process scheduler for recurring tasks in Go. +- [cheek](https://github.com/datarootsio/cheek) - A simple crontab like scheduler that aims to offer a KISS approach to job scheduling. +- [clockwerk](https://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. +- [cronticker](https://github.com/krayzpipes/cronticker) - A ticker implementation to support cron schedules. +- [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. +- [gocron](https://github.com/go-co-op/gocron) - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). +- [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. +- [gronx](https://github.com/adhocore/gronx) - Cron expression parser, task runner and daemon consuming crontab like task list. +- [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. +- [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. +- [leprechaun](https://github.com/kilgaloon/leprechaun) - Job scheduler that supports webhooks, crons and classic scheduling. +- [sched](https://github.com/romshark/sched) - A job scheduler with the ability to fast-forward time. +- [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. +- [tasks](https://github.com/madflojo/tasks) - An easy to use in-process scheduler for recurring tasks in Go. **[⬆ back to top](#contents)** ## JSON -*Libraries for working with JSON.* - -* [ajson](https://github.com/spyzhov/ajson) - Abstract JSON for golang with JSONPath support. -* [ask](https://github.com/simonnilsson/ask) - Easy access to nested values in maps and slices. Works in combination with encoding/json and other packages that "Unmarshal" arbitrary data into Go data-types. -* [dynjson](https://github.com/cocoonspace/dynjson) - Client-customizable JSON formats for dynamic APIs. -* [ej](https://github.com/lucassscaravelli/ej) - Write and read JSON from different sources succinctly. -* [epoch](https://github.com/vtopc/epoch) - Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from build-in time.Time type in JSON. -* [fastjson](https://github.com/valyala/fastjson) - Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection. -* [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. -* [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. -* [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is ment to allow us to easily create json response errors that follow the JsonApi spec. -* [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. -* [gojq](https://github.com/elgs/gojq) - JSON query in Golang. -* [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. -* [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. -* [jettison](https://github.com/wI2L/jettison) - Fast and flexible JSON encoder for Go. -* [jscan](https://github.com/romshark/jscan) - High performance zero-allocation JSON iterator. -* [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. -* [JSON-to-Proto](https://json-to-proto.github.io/) - Convert JSON to Protobuf online. -* [json2go](https://github.com/m-zajac/json2go) - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. -* [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. -* [jsoncolor](https://github.com/neilotoole/jsoncolor) - Drop-in replacement for `encoding/json` that outputs colorized JSON. -* [jsondiff](https://github.com/wI2L/jsondiff) - JSON diff library for Go based on RFC6902 (JSON Patch). -* [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. -* [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. -* [jsonic](https://github.com/sinhashubham95/jsonic) - Utilities to handle and query JSON without defining structs in a type safe manner. -* [jzon](https://github.com/zerosnake0/jzon) - JSON library with standard compatible API/behavior. -* [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. -* [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. -* [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. -* [OjG](https://github.com/ohler55/ojg) - Optimized JSON for Go is a high performance parser with a variety of additional JSON tools including JSONPath. -* [omg.jsonparser](https://github.com/dedalqq/omg.jsonparser) - Simple JSON parser with validation by condition via golang struct fields tags. -* [ujson](https://github.com/olvrng/ujson) - Fast and minimal JSON parser and transformer that works on unstructured JSON. -* [vjson](https://github.com/miladibra10/vjson) - Go package for validating JSON objects with declaring a JSON schema with fluent API. +_Libraries for working with JSON._ + +- [ajson](https://github.com/spyzhov/ajson) - Abstract JSON for golang with JSONPath support. +- [ask](https://github.com/simonnilsson/ask) - Easy access to nested values in maps and slices. Works in combination with encoding/json and other packages that "Unmarshal" arbitrary data into Go data-types. +- [dynjson](https://github.com/cocoonspace/dynjson) - Client-customizable JSON formats for dynamic APIs. +- [ej](https://github.com/lucassscaravelli/ej) - Write and read JSON from different sources succinctly. +- [epoch](https://github.com/vtopc/epoch) - Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from build-in time.Time type in JSON. +- [fastjson](https://github.com/valyala/fastjson) - Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection. +- [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. +- [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. +- [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is ment to allow us to easily create json response errors that follow the JsonApi spec. +- [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. +- [gojq](https://github.com/elgs/gojq) - JSON query in Golang. +- [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. +- [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. +- [jettison](https://github.com/wI2L/jettison) - Fast and flexible JSON encoder for Go. +- [jscan](https://github.com/romshark/jscan) - High performance zero-allocation JSON iterator. +- [JSON-to-Go](https://mholt.github.io/json-to-go/) - Convert JSON to Go struct. +- [JSON-to-Proto](https://json-to-proto.github.io/) - Convert JSON to Protobuf online. +- [json2go](https://github.com/m-zajac/json2go) - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. +- [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. +- [jsoncolor](https://github.com/neilotoole/jsoncolor) - Drop-in replacement for `encoding/json` that outputs colorized JSON. +- [jsondiff](https://github.com/wI2L/jsondiff) - JSON diff library for Go based on RFC6902 (JSON Patch). +- [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. +- [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. +- [jsonic](https://github.com/sinhashubham95/jsonic) - Utilities to handle and query JSON without defining structs in a type safe manner. +- [jzon](https://github.com/zerosnake0/jzon) - JSON library with standard compatible API/behavior. +- [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. +- [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. +- [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. +- [OjG](https://github.com/ohler55/ojg) - Optimized JSON for Go is a high performance parser with a variety of additional JSON tools including JSONPath. +- [omg.jsonparser](https://github.com/dedalqq/omg.jsonparser) - Simple JSON parser with validation by condition via golang struct fields tags. +- [ujson](https://github.com/olvrng/ujson) - Fast and minimal JSON parser and transformer that works on unstructured JSON. +- [vjson](https://github.com/miladibra10/vjson) - Go package for validating JSON objects with declaring a JSON schema with fluent API. **[⬆ back to top](#contents)** ## Logging -*Libraries for generating and working with log files.* - -* [distillog](https://github.com/amoghe/distillog) - distilled levelled logging (think of it as stdlib + log levels). -* [glg](https://github.com/kpango/glg) - glg is simple and fast leveled logging library for Go. -* [glo](https://github.com/lajosbencz/glo) - PHP Monolog inspired logging facility with identical severity levels. -* [glog](https://github.com/golang/glog) - Leveled execution logs for Go. -* [go-cronowriter](https://github.com/utahta/go-cronowriter) - Simple writer that rotate log files automatically based on current date and time, like cronolog. -* [go-log](https://github.com/pieterclaerhout/go-log) - A logging library with strack traces, object dumping and optional timestamps. -* [go-log](https://github.com/subchen/go-log) - Simple and configurable Logging in Go, with level, formatters and writers. -* [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. -* [go-log](https://github.com/ian-kent/go-log) - Log4j implementation in Go. -* [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. -* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Console, Simple Console, File or Elasticsearch. -* [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. -* [gone/log](https://github.com/One-com/gone/tree/master/log) - Fast, extendable, full-featured, std-lib source compatible log library. -* [httpretty](https://github.com/henvic/httpretty) - Pretty-prints your regular HTTP requests on your terminal for debugging (similar to http.DumpRequest). -* [journald](https://github.com/ssgreg/journald) - Go implementation of systemd Journal's native API for logging. -* [kemba](https://github.com/clok/kemba) - A tiny debug logging tool inspired by [debug](https://github.com/visionmedia/debug), great for CLI tools and applications. -* [log](https://github.com/aerogo/log) - An O(1) logging system that allows you to connect one log to multiple writers (e.g. stdout, a file and a TCP connection). -* [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](https://github.com/teris-io/log) - Structured log interface for Go cleanly separates logging facade from its implementation. -* [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. -* [logger](https://github.com/azer/logger) - Minimalistic logging library for Go. -* [logmatic](https://github.com/borderstech/logmatic) - Colorized logger for Golang with dynamic log level configuration. -* [logo](https://github.com/mbndr/logo) - Golang logger to different configurable writers. -* [logrus](https://github.com/Sirupsen/logrus) - Structured logger for Go. -* [logrusiowriter](https://github.com/cabify/logrusiowriter) - `io.Writer` implementation using [logrus](https://github.com/sirupsen/logrus) logger. -* [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). -* [logur](https://github.com/logur/logur) - An opinionated logger interface and collection of logging best practices with adapters and integrations for well-known libraries ([logrus](https://github.com/sirupsen/logrus), [go-kit log](https://github.com/go-kit/kit/tree/master/log), [zap](https://github.com/uber-go/zap), [zerolog](https://github.com/rs/zerolog), etc). -* [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. -* [logxi](https://github.com/mgutz/logxi) - 12-factor app logger that is fast and makes you happy. -* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. -* [mlog](https://github.com/jbrodriguez/mlog) - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. -* [noodlog](https://github.com/gyozatech/noodlog) - Parametrized JSON logging library which lets you obfuscate sensitive data and marshal any kind of content. No more printed pointers instead of values, nor escape chars for the JSON strings. -* [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation. -* [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). -* [phuslu/log](https://github.com/phuslu/log) - Structured Logging Made Easy. -* [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. -* [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. -* [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. -* [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. -* [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. -* [structy/log](https://github.com/structy/log) - A simple to use log system, minimalist but with features for debugging and differentiation of messages. -* [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. -* [xlog](https://github.com/rs/xlog) - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. -* [yell](https://github.com/jfcg/yell) - Yet another minimalistic logging library. -* [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. -* [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. -* [zkits-logger](https://github.com/edoger/zkits-logger) - A powerful zero-dependency JSON logger. +_Libraries for generating and working with log files._ + +- [distillog](https://github.com/amoghe/distillog) - distilled levelled logging (think of it as stdlib + log levels). +- [glg](https://github.com/kpango/glg) - glg is simple and fast leveled logging library for Go. +- [glo](https://github.com/lajosbencz/glo) - PHP Monolog inspired logging facility with identical severity levels. +- [glog](https://github.com/golang/glog) - Leveled execution logs for Go. +- [go-cronowriter](https://github.com/utahta/go-cronowriter) - Simple writer that rotate log files automatically based on current date and time, like cronolog. +- [go-log](https://github.com/pieterclaerhout/go-log) - A logging library with strack traces, object dumping and optional timestamps. +- [go-log](https://github.com/subchen/go-log) - Simple and configurable Logging in Go, with level, formatters and writers. +- [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. +- [go-log](https://github.com/ian-kent/go-log) - Log4j implementation in Go. +- [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. +- [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Console, Simple Console, File or Elasticsearch. +- [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. +- [gone/log](https://github.com/One-com/gone/tree/master/log) - Fast, extendable, full-featured, std-lib source compatible log library. +- [httpretty](https://github.com/henvic/httpretty) - Pretty-prints your regular HTTP requests on your terminal for debugging (similar to http.DumpRequest). +- [journald](https://github.com/ssgreg/journald) - Go implementation of systemd Journal's native API for logging. +- [kemba](https://github.com/clok/kemba) - A tiny debug logging tool inspired by [debug](https://github.com/visionmedia/debug), great for CLI tools and applications. +- [log](https://github.com/aerogo/log) - An O(1) logging system that allows you to connect one log to multiple writers (e.g. stdout, a file and a TCP connection). +- [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](https://github.com/teris-io/log) - Structured log interface for Go cleanly separates logging facade from its implementation. +- [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. +- [logger](https://github.com/azer/logger) - Minimalistic logging library for Go. +- [logmatic](https://github.com/borderstech/logmatic) - Colorized logger for Golang with dynamic log level configuration. +- [logo](https://github.com/mbndr/logo) - Golang logger to different configurable writers. +- [logrus](https://github.com/Sirupsen/logrus) - Structured logger for Go. +- [logrusiowriter](https://github.com/cabify/logrusiowriter) - `io.Writer` implementation using [logrus](https://github.com/sirupsen/logrus) logger. +- [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). +- [logur](https://github.com/logur/logur) - An opinionated logger interface and collection of logging best practices with adapters and integrations for well-known libraries ([logrus](https://github.com/sirupsen/logrus), [go-kit log](https://github.com/go-kit/kit/tree/master/log), [zap](https://github.com/uber-go/zap), [zerolog](https://github.com/rs/zerolog), etc). +- [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. +- [logxi](https://github.com/mgutz/logxi) - 12-factor app logger that is fast and makes you happy. +- [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. +- [mlog](https://github.com/jbrodriguez/mlog) - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. +- [noodlog](https://github.com/gyozatech/noodlog) - Parametrized JSON logging library which lets you obfuscate sensitive data and marshal any kind of content. No more printed pointers instead of values, nor escape chars for the JSON strings. +- [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation. +- [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). +- [phuslu/log](https://github.com/phuslu/log) - Structured Logging Made Easy. +- [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. +- [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. +- [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. +- [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. +- [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. +- [structy/log](https://github.com/structy/log) - A simple to use log system, minimalist but with features for debugging and differentiation of messages. +- [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. +- [xlog](https://github.com/rs/xlog) - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. +- [yell](https://github.com/jfcg/yell) - Yet another minimalistic logging library. +- [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. +- [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. +- [zkits-logger](https://github.com/edoger/zkits-logger) - A powerful zero-dependency JSON logger. **[⬆ back to top](#contents)** ## Machine Learning -*Libraries for Machine Learning.* - -* [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. -* [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. -* [ddt](https://github.com/sgrodriguez/ddt) - Dynamic decision tree, create trees defining customizable rules. -* [eaopt](https://github.com/MaxHalford/eaopt) - An evolutionary optimization library. -* [evoli](https://github.com/khezen/evoli) - Genetic Algorithm and Particle Swarm Optimization library. -* [fonet](https://github.com/Fontinalis/fonet) - A Deep Neural Network library written in Go. -* [go-cluster](https://github.com/e-XpertSolutions/go-cluster) - Go implementation of the k-modes and k-prototypes clustering algorithms. -* [go-deep](https://github.com/patrikeh/go-deep) - A feature-rich neural network library in Go. -* [go-fann](https://github.com/white-pony/go-fann) - Go bindings for Fast Artificial Neural Networks(FANN) library. -* [go-featureprocessing](https://github.com/nikolaydubina/go-featureprocessing) - Fast and convenient feature processing for low latency machine learning in Go. -* [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. -* [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. -* [GoMind](https://github.com/surenderthakran/gomind) - A simplistic Neural Network Library in Go. -* [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go. -* [gonet](https://github.com/dathoangnd/gonet) - Neural Network for Go. -* [Goptuna](https://github.com/c-bata/goptuna) - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized. -* [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. -* [gorgonia](https://github.com/gorgonia/gorgonia) - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms. -* [gorse](https://github.com/zhenghaoz/gorse) - An offline recommender system backend based on collaborative filtering written in Go. -* [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. -* [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. -* [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. -* [m2cgen](https://github.com/BayesWitnesses/m2cgen) - A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies, written in Python with Go language support. -* [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. -* [ocrserver](https://github.com/otiai10/ocrserver) - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. -* [onnx-go](https://github.com/owulveryck/onnx-go) - Go Interface to Open Neural Network Exchange (ONNX). -* [probab](https://github.com/ThePaw/probab) - Probability distribution functions. Bayesian inference. Written in pure Go. -* [randomforest](https://github.com/malaschitz/randomForest) - Easy to use Random Forest library 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. -* [tfgo](https://github.com/galeone/tfgo) - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python. -* [Varis](https://github.com/Xamber/Varis) - Golang Neural Network. +_Libraries for Machine Learning._ + +- [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. +- [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. +- [ddt](https://github.com/sgrodriguez/ddt) - Dynamic decision tree, create trees defining customizable rules. +- [eaopt](https://github.com/MaxHalford/eaopt) - An evolutionary optimization library. +- [evoli](https://github.com/khezen/evoli) - Genetic Algorithm and Particle Swarm Optimization library. +- [fonet](https://github.com/Fontinalis/fonet) - A Deep Neural Network library written in Go. +- [go-cluster](https://github.com/e-XpertSolutions/go-cluster) - Go implementation of the k-modes and k-prototypes clustering algorithms. +- [go-deep](https://github.com/patrikeh/go-deep) - A feature-rich neural network library in Go. +- [go-fann](https://github.com/white-pony/go-fann) - Go bindings for Fast Artificial Neural Networks(FANN) library. +- [go-featureprocessing](https://github.com/nikolaydubina/go-featureprocessing) - Fast and convenient feature processing for low latency machine learning in Go. +- [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. +- [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. +- [GoMind](https://github.com/surenderthakran/gomind) - A simplistic Neural Network Library in Go. +- [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go. +- [gonet](https://github.com/dathoangnd/gonet) - Neural Network for Go. +- [Goptuna](https://github.com/c-bata/goptuna) - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized. +- [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. +- [gorgonia](https://github.com/gorgonia/gorgonia) - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms. +- [gorse](https://github.com/zhenghaoz/gorse) - An offline recommender system backend based on collaborative filtering written in Go. +- [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. +- [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. +- [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. +- [m2cgen](https://github.com/BayesWitnesses/m2cgen) - A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies, written in Python with Go language support. +- [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. +- [ocrserver](https://github.com/otiai10/ocrserver) - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. +- [onnx-go](https://github.com/owulveryck/onnx-go) - Go Interface to Open Neural Network Exchange (ONNX). +- [probab](https://github.com/ThePaw/probab) - Probability distribution functions. Bayesian inference. Written in pure Go. +- [randomforest](https://github.com/malaschitz/randomForest) - Easy to use Random Forest library 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. +- [tfgo](https://github.com/galeone/tfgo) - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python. +- [Varis](https://github.com/Xamber/Varis) - Golang Neural Network. **[⬆ back to top](#contents)** ## Messaging -*Libraries that implement messaging systems.* - -* [ami](https://github.com/kak-tus/ami) - Go client to reliable queues based on Redis Cluster Streams. -* [amqp](https://github.com/rabbitmq/amqp091-go) - Go RabbitMQ Client Library. -* [APNs2](https://github.com/sideshow/apns2) - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. -* [Asynq](https://github.com/hibiken/asynq) - A simple, reliable, and efficient distributed task queue for Go built on top of Redis. -* [Beaver](https://github.com/Clivern/Beaver) - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. -* [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. -* [Bus](https://github.com/mustafaturan/bus) - Minimalist message bus implementation for internal communication. -* [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. -* [Chanify](https://github.com/chanify/chanify) - A push notification server send message to your iOS devices. -* [Commander](https://github.com/jeroenrinzema/commander) - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka. -* [Confluent Kafka Golang Client](https://github.com/confluentinc/confluent-kafka-go) - confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform. -* [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. -* [drone-line](https://github.com/appleboy/drone-line) - Sending [Line](https://at.line.me/en) 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. -* [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-mq](https://github.com/cheshir/go-mq) - RabbitMQ client with declarative configuration. -* [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-res](https://github.com/jirenius/go-res) - Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate. -* [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. -* [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). -* [gosd](https://github.com/alexsniffin/gosd) - A library for scheduling when to dispatch a message to a channel. -* [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. -* [hare](https://github.com/leozz37/hare) - A user friendly library for sending messages and listening to TCP sockets. -* [hub](https://github.com/leandro-lugaresi/hub) - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. -* [jazz](https://github.com/socifi/jazz) - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. -* [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. -* [mangos](https://github.com/nanomsg/mangos) - Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability. -* [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. -* [Mercure](https://github.com/dunglas/mercure) - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events). -* [messagebus](https://github.com/vardius/message-bus) - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. -* [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. -* [pubsub](https://github.com/tuxychandru/pubsub) - Simple pubsub package for go. -* [rabbus](https://github.com/rafaeljesus/rabbus) - A tiny wrapper over amqp exchanges and queues. -* [rabtap](https://github.com/jandelgado/rabtap) - RabbitMQ swiss army knife cli app. -* [RapidMQ](https://github.com/sybrexsys/RapidMQ) - RapidMQ is a lightweight and reliable library for managing of the local messages queue. -* [redisqueue](https://github.com/robinjoseph08/redisqueue) - redisqueue provides a producer and consumer of a queue that uses Redis streams. -* [rmqconn](https://github.com/sbabiv/rmqconn) - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed. -* [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). +_Libraries that implement messaging systems._ + +- [ami](https://github.com/kak-tus/ami) - Go client to reliable queues based on Redis Cluster Streams. +- [amqp](https://github.com/rabbitmq/amqp091-go) - Go RabbitMQ Client Library. +- [APNs2](https://github.com/sideshow/apns2) - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. +- [Asynq](https://github.com/hibiken/asynq) - A simple, reliable, and efficient distributed task queue for Go built on top of Redis. +- [Beaver](https://github.com/Clivern/Beaver) - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. +- [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. +- [Bus](https://github.com/mustafaturan/bus) - Minimalist message bus implementation for internal communication. +- [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. +- [Chanify](https://github.com/chanify/chanify) - A push notification server send message to your iOS devices. +- [Commander](https://github.com/jeroenrinzema/commander) - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka. +- [Confluent Kafka Golang Client](https://github.com/confluentinc/confluent-kafka-go) - confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform. +- [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. +- [drone-line](https://github.com/appleboy/drone-line) - Sending [Line](https://at.line.me/en) 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. +- [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-mq](https://github.com/cheshir/go-mq) - RabbitMQ client with declarative configuration. +- [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-res](https://github.com/jirenius/go-res) - Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate. +- [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. +- [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). +- [gosd](https://github.com/alexsniffin/gosd) - A library for scheduling when to dispatch a message to a channel. +- [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. +- [hare](https://github.com/leozz37/hare) - A user friendly library for sending messages and listening to TCP sockets. +- [hub](https://github.com/leandro-lugaresi/hub) - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. +- [jazz](https://github.com/socifi/jazz) - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. +- [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. +- [mangos](https://github.com/nanomsg/mangos) - Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability. +- [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. +- [Mercure](https://github.com/dunglas/mercure) - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events). +- [messagebus](https://github.com/vardius/message-bus) - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. +- [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. +- [pubsub](https://github.com/tuxychandru/pubsub) - Simple pubsub package for go. +- [rabbus](https://github.com/rafaeljesus/rabbus) - A tiny wrapper over amqp exchanges and queues. +- [rabtap](https://github.com/jandelgado/rabtap) - RabbitMQ swiss army knife cli app. +- [RapidMQ](https://github.com/sybrexsys/RapidMQ) - RapidMQ is a lightweight and reliable library for managing of the local messages queue. +- [redisqueue](https://github.com/robinjoseph08/redisqueue) - redisqueue provides a producer and consumer of a queue that uses Redis streams. +- [rmqconn](https://github.com/sbabiv/rmqconn) - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed. +- [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). **[⬆ back to top](#contents)** ## Microsoft Office -* [unioffice](https://github.com/unidoc/unioffice) - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents. +- [unioffice](https://github.com/unidoc/unioffice) - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents. ### Microsoft Excel -*Libraries for working with Microsoft Excel.* +_Libraries for working with Microsoft Excel._ -* [excelize](https://github.com/xuri/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. -* [go-excel](https://github.com/szyhf/go-excel) - A simple and light reader to read a relate-db-like excel as a table. -* [goxlsxwriter](https://github.com/fterrag/goxlsxwriter) - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files. -* [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. -* [xlsx](https://github.com/plandem/xlsx) - Fast and safe way to read/update your existing Microsoft Excel files in Go programs. +- [excelize](https://github.com/xuri/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. +- [go-excel](https://github.com/szyhf/go-excel) - A simple and light reader to read a relate-db-like excel as a table. +- [goxlsxwriter](https://github.com/fterrag/goxlsxwriter) - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files. +- [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. +- [xlsx](https://github.com/plandem/xlsx) - Fast and safe way to read/update your existing Microsoft Excel files in Go programs. **[⬆ back to top](#contents)** @@ -1456,22 +1456,22 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ### Dependency Injection -*Libraries for working with dependency injection.* +_Libraries for working with dependency injection._ -* [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. -* [container](https://github.com/golobby/container) - A powerful IoC Container with fluent and easy-to-use interface. -* [di](https://github.com/goava/di) - A dependency injection container for go programming language. -* [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. -* [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. -* [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). -* [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. -* [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. -* [google/wire](https://github.com/google/wire) - Automated Initialization in Go. -* [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. -* [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. -* [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. -* [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, and http endpoints, and service startup. -* [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. +- [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. +- [container](https://github.com/golobby/container) - A powerful IoC Container with fluent and easy-to-use interface. +- [di](https://github.com/goava/di) - A dependency injection container for go programming language. +- [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. +- [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. +- [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). +- [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. +- [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. +- [google/wire](https://github.com/google/wire) - Automated Initialization in Go. +- [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. +- [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. +- [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. +- [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, and http endpoints, and service startup. +- [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. **[⬆ back to top](#contents)** @@ -1479,1093 +1479,1091 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a _**Unofficial** set of patterns for structuring projects._ -* [ardanlabs/service](https://github.com/ardanlabs/service) - A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications. -* [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. -* [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. -* [go-starter](https://github.com/allaboutapps/go-starter) - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers. -* [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. -* [gobase](https://github.com/wajox/gobase) - A simple skeleton for golang application with basic setup for real golang application. -* [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. Note: despite the org-name they do not represent official golang standards, see [this issue](https://github.com/golang-standards/project-layout/issues/117) for more information. Nonetheless, some may find the layout useful. -* [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. -* [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. -* [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. -* [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. -* [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout. +- [ardanlabs/service](https://github.com/ardanlabs/service) - A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications. +- [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. +- [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. +- [go-starter](https://github.com/allaboutapps/go-starter) - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers. +- [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. +- [gobase](https://github.com/wajox/gobase) - A simple skeleton for golang application with basic setup for real golang application. +- [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. Note: despite the org-name they do not represent official golang standards, see [this issue](https://github.com/golang-standards/project-layout/issues/117) for more information. Nonetheless, some may find the layout useful. +- [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. +- [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. +- [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. +- [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. +- [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout. **[⬆ back to top](#contents)** ### Strings -*Libraries for working with strings.* +_Libraries for working with strings._ -* [bexp](https://github.com/mkungla/bexp) - Go implementation of Brace Expansion mechanism to generate arbitrary strings. -* [go-formatter](https://gitlab.com/tymonx/go-formatter) - Implements **replacement fields** surrounded by curly braces `{}` format strings. -* [gobeam/Stringy](https://github.com/gobeam/Stringy) - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. -* [strutil](https://github.com/ozgio/strutil) - String utilities. -* [sttr](https://github.com/abhimanyu003/sttr) - cross-platform, cli app to perform various operations on string. -* [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. +- [bexp](https://github.com/mkungla/bexp) - Go implementation of Brace Expansion mechanism to generate arbitrary strings. +- [go-formatter](https://gitlab.com/tymonx/go-formatter) - Implements **replacement fields** surrounded by curly braces `{}` format strings. +- [gobeam/Stringy](https://github.com/gobeam/Stringy) - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. +- [strutil](https://github.com/ozgio/strutil) - String utilities. +- [sttr](https://github.com/abhimanyu003/sttr) - cross-platform, cli app to perform various operations on string. +- [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. **[⬆ back to top](#contents)** ### Uncategorized -*These libraries were placed here because none of the other categories seemed to fit.* - -* [anagent](https://github.com/mudler/anagent) - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection. -* [antch](https://github.com/antchfx/antch) - A fast, powerful and extensible web crawling & scraping framework. -* [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. -* [base64Captcha](https://github.com/mojocn/base64Captcha) - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha. -* [basexx](https://github.com/bobg/basexx) - Convert to, from, and between digit strings in various number bases. -* [battery](https://github.com/distatus/battery) - Cross-platform, normalized battery information library. -* [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. -* [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](https://browscap.org/). -* [captcha](https://github.com/steambap/captcha) - Package captcha provides an easy to use, unopinionated API for captcha generation. -* [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. -* [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. -* [faker](https://github.com/neotoolkit/faker) - Fake data generator. -* [faker](https://github.com/pioz/faker) - Random fake data and struct generator for Go. -* [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. -* [gatus](https://github.com/TwinProduction/gatus) - Automated service health dashboard. -* [go-commandbus](https://github.com/lana/go-commandbus) - A slight and pluggable command-bus for Go. -* [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool 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-unarr](https://github.com/gen2brain/go-unarr) - Decompression library for RAR, TAR, ZIP and 7z archives. -* [gofakeit](https://github.com/brianvoe/gofakeit) - Random data generator written in go. -* [gommit](https://github.com/antham/gommit) - Analyze git commit messages to ensure they follow defined patterns. -* [gopsutil](https://github.com/shirou/gopsutil) - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). -* [gosh](https://github.com/osamingo/gosh) - Provide Go Statistics Handler, Struct, Measure Method. -* [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. -* [gotoprom](https://github.com/cabify/gotoprom) - Type-safe metrics builder wrapper library for the official Prometheus client. -* [gountries](https://github.com/pariz/gountries) - Package that exposes country and subdivision data. -* [gtree](https://github.com/ddddddO/gtree) - Provide CLI and Package for tree output and directories creation from Markdown or programmatically. -* [health](https://github.com/alexliesenfeld/health) - A simple and flexible health check library for Go. -* [health](https://github.com/dimiro1/health) - Easy to use, extensible health check library. -* [healthcheck](https://github.com/etherlabsio/healthcheck) - An opinionated and concurrent health-check HTTP handler for RESTful services. -* [hostutils](https://github.com/Wing924/hostutils) - A golang library for packing and unpacking FQDNs list. -* [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. -* [lk](https://github.com/hyperboloide/lk) - A simple licensing library for golang. -* [llvm](https://github.com/llir/llvm) - Library for interacting with LLVM IR in pure Go. -* [metrics](https://github.com/pascaldekloe/metrics) - Library for metrics instrumentation and Prometheus exposition. -* [morse](https://github.com/alwindoss/morse) - Library to convert to and from morse code. -* [numa](https://github.com/lrita/numa) - NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code. -* [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. -* [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. -* [sandid](https://github.com/aofei/sandid) - Every grain of sand on earth has its own ID. -* [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. -* [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. -* [shoutrrr](https://github.com/containrrr/shoutrrr) - Notification library providing easy access to various messaging services like slack, mattermost, gotify and smtp among others. -* [stateless](https://github.com/qmuntal/stateless) - A fluent library for creating state machines. -* [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... -* [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. -* [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. -* [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and output handling. -* [varint](https://github.com/chmike/varint) - A faster varying length integer encoder/decoder than the one provided in the standard library. -* [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go. -* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber. +_These libraries were placed here because none of the other categories seemed to fit._ + +- [anagent](https://github.com/mudler/anagent) - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection. +- [antch](https://github.com/antchfx/antch) - A fast, powerful and extensible web crawling & scraping framework. +- [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. +- [base64Captcha](https://github.com/mojocn/base64Captcha) - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha. +- [basexx](https://github.com/bobg/basexx) - Convert to, from, and between digit strings in various number bases. +- [battery](https://github.com/distatus/battery) - Cross-platform, normalized battery information library. +- [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. +- [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](https://browscap.org/). +- [captcha](https://github.com/steambap/captcha) - Package captcha provides an easy to use, unopinionated API for captcha generation. +- [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. +- [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. +- [faker](https://github.com/neotoolkit/faker) - Fake data generator. +- [faker](https://github.com/pioz/faker) - Random fake data and struct generator for Go. +- [ffmt](https://github.com/go-ffmt/ffmt) - Beautify data display for Humans. +- [gatus](https://github.com/TwinProduction/gatus) - Automated service health dashboard. +- [go-commandbus](https://github.com/lana/go-commandbus) - A slight and pluggable command-bus for Go. +- [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool 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-unarr](https://github.com/gen2brain/go-unarr) - Decompression library for RAR, TAR, ZIP and 7z archives. +- [gofakeit](https://github.com/brianvoe/gofakeit) - Random data generator written in go. +- [gommit](https://github.com/antham/gommit) - Analyze git commit messages to ensure they follow defined patterns. +- [gopsutil](https://github.com/shirou/gopsutil) - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). +- [gosh](https://github.com/osamingo/gosh) - Provide Go Statistics Handler, Struct, Measure Method. +- [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. +- [gotoprom](https://github.com/cabify/gotoprom) - Type-safe metrics builder wrapper library for the official Prometheus client. +- [gountries](https://github.com/pariz/gountries) - Package that exposes country and subdivision data. +- [gtree](https://github.com/ddddddO/gtree) - Provide CLI and Package for tree output and directories creation from Markdown or programmatically. +- [health](https://github.com/alexliesenfeld/health) - A simple and flexible health check library for Go. +- [health](https://github.com/dimiro1/health) - Easy to use, extensible health check library. +- [healthcheck](https://github.com/etherlabsio/healthcheck) - An opinionated and concurrent health-check HTTP handler for RESTful services. +- [hostutils](https://github.com/Wing924/hostutils) - A golang library for packing and unpacking FQDNs list. +- [indigo](https://github.com/osamingo/indigo) - Distributed unique ID generator of using Sonyflake and encoded by Base58. +- [lk](https://github.com/hyperboloide/lk) - A simple licensing library for golang. +- [llvm](https://github.com/llir/llvm) - Library for interacting with LLVM IR in pure Go. +- [metrics](https://github.com/pascaldekloe/metrics) - Library for metrics instrumentation and Prometheus exposition. +- [morse](https://github.com/alwindoss/morse) - Library to convert to and from morse code. +- [numa](https://github.com/lrita/numa) - NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code. +- [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. +- [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. +- [sandid](https://github.com/aofei/sandid) - Every grain of sand on earth has its own ID. +- [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. +- [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. +- [shoutrrr](https://github.com/containrrr/shoutrrr) - Notification library providing easy access to various messaging services like slack, mattermost, gotify and smtp among others. +- [stateless](https://github.com/qmuntal/stateless) - A fluent library for creating state machines. +- [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... +- [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. +- [url-shortener](https://github.com/pantrif/url-shortener) - A modern, powerful, and robust URL shortener microservice with mysql support. +- [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and output handling. +- [varint](https://github.com/chmike/varint) - A faster varying length integer encoder/decoder than the one provided in the standard library. +- [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go. +- [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber. **[⬆ back to top](#contents)** ## Natural Language Processing -*Libraries for working with human languages.* - -* [address](https://github.com/bojanz/address) - Handles address representation, validation and formatting. -* [detectlanguage](https://github.com/detectlanguage/detectlanguage-go) - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection. -* [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. -* [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. -* [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. -* [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. -* [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. -* [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. -* [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. -* [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. -* [gosentiwordnet](https://github.com/dinopuguh/gosentiwordnet) - Sentiment analyzer using sentiwordnet lexicon in Go. -* [gotokenizer](https://github.com/xujiajun/gotokenizer) - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) -* [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. -* [govader](https://github.com/jonreiter/govader) - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment). -* [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. -* [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. -* [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. -* [kagome](https://github.com/ikawaha/kagome) - JP morphological analyzer written in pure Go. -* [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. -* [nlp](https://github.com/james-bowman/nlp) - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis). -* [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm. -* [petrovich](https://github.com/striker2000/petrovich) - Petrovich is the library which inflects Russian names to given grammatical case. -* [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. English only. -* [RAKE.go](https://github.com/afjoseph/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](https://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/). -* [spaGO](https://github.com/nlpodyssey/spago) - Self-contained Machine Learning and Natural Language Processing library in Go. -* [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. -* [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. -* [textcat](https://github.com/pebbe/textcat) - Go package for n-gram based text categorization, with support for utf-8 and raw text. -* [transliterator](https://github.com/alexsergivan/transliterator) - Provides one-way string transliteration with supporting of language-specific transliteration rules. -* [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. +_Libraries for working with human languages._ + +- [address](https://github.com/bojanz/address) - Handles address representation, validation and formatting. +- [detectlanguage](https://github.com/detectlanguage/detectlanguage-go) - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection. +- [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. +- [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. +- [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. +- [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. +- [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. +- [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. +- [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. +- [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. +- [gosentiwordnet](https://github.com/dinopuguh/gosentiwordnet) - Sentiment analyzer using sentiwordnet lexicon in Go. +- [gotokenizer](https://github.com/xujiajun/gotokenizer) - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) +- [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. +- [govader](https://github.com/jonreiter/govader) - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment). +- [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. +- [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. +- [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. +- [kagome](https://github.com/ikawaha/kagome) - JP morphological analyzer written in pure Go. +- [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. +- [nlp](https://github.com/james-bowman/nlp) - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis). +- [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm. +- [petrovich](https://github.com/striker2000/petrovich) - Petrovich is the library which inflects Russian names to given grammatical case. +- [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. English only. +- [RAKE.go](https://github.com/afjoseph/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](https://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/). +- [spaGO](https://github.com/nlpodyssey/spago) - Self-contained Machine Learning and Natural Language Processing library in Go. +- [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. +- [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. +- [textcat](https://github.com/pebbe/textcat) - Go package for n-gram based text categorization, with support for utf-8 and raw text. +- [transliterator](https://github.com/alexsergivan/transliterator) - Provides one-way string transliteration with supporting of language-specific transliteration rules. +- [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. **[⬆ back to top](#contents)** ## 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). -* [cidranger](https://github.com/yl2chen/cidranger) - Fast IP to CIDR lookup for Go. -* [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. -* [dnsmonster](https://github.com/mosajjal/dnsmonster) - Passive DNS Capture/Monitoring Framework. -* [easytcp](https://github.com/DarthPestilane/easytcp) - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. -* [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. -* [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. -* [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959). -* [ftpserverlib](https://github.com/fclairamb/ftpserverlib) - Fully featured FTP server library. -* [gaio](https://github.com/xtaci/gaio) - High performance async-io networking for Golang in proactor mode. -* [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. -* [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. -* [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. -* [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. -* [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. -* [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. -* [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. -* [gohooks](https://github.com/averageflow/gohooks) - GoHooks make it easy to send and consume secured web-hooks from a Go application. Inspired by Spatie's Laravel Webhook Client and Server. -* [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. -* [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. -* [graval](https://github.com/koofr/graval) - Experimental FTP server framework. -* [HTTPLab](https://github.com/gchaincl/httplab) - HTTPLabs let you inspect HTTP requests and forge responses. -* [httpproxy](https://github.com/wzshiming/httpproxy) - HTTP proxy handler and dialer. -* [iplib](https://github.com/c-robinson/iplib) - Library for working with IP addresses (net.IP, net.IPNet), inspired by python [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html) -* [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. -* [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. -* [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. -* [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. -* [nbio](https://github.com/lesismal/nbio) - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. -* [netpoll](https://github.com/cloudwego/netpoll) - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance. -* [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). -* [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. -* [panoptes-stream](https://github.com/yahoo/panoptes-stream) - A cloud native distributed streaming network telemetry (gNMI, Juniper JTI and Cisco MDT). -* [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast. -* [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). -* [quic-go](https://github.com/lucas-clemente/quic-go) - An implementation of the QUIC protocol in pure Go. -* [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. -* [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. -* [ssh](https://github.com/gliderlabs/ssh) - Higher-level API for building SSH servers (wraps crypto/ssh). -* [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. -* [stun](https://github.com/go-rtc/stun) - Go implementation of RFC 5389 STUN protocol. -* [tcp_server](https://github.com/firstrow/tcp_server) - Go library for building tcp servers faster. -* [tspool](https://github.com/two/tspool) - A TCP Library use worker pool to improve performance and protect your server. -* [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. -* [vssh](https://github.com/yahoo/vssh) - Go library for building network and server automation over SSH protocol. -* [water](https://github.com/songgao/water) - Simple TUN/TAP library. -* [webrtc](https://github.com/pions/webrtc) - A pure Go implementation of the WebRTC API. -* [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, and custom protocol. +_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). +- [cidranger](https://github.com/yl2chen/cidranger) - Fast IP to CIDR lookup for Go. +- [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. +- [dnsmonster](https://github.com/mosajjal/dnsmonster) - Passive DNS Capture/Monitoring Framework. +- [easytcp](https://github.com/DarthPestilane/easytcp) - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. +- [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. +- [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. +- [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959). +- [ftpserverlib](https://github.com/fclairamb/ftpserverlib) - Fully featured FTP server library. +- [gaio](https://github.com/xtaci/gaio) - High performance async-io networking for Golang in proactor mode. +- [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. +- [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. +- [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. +- [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. +- [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. +- [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. +- [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. +- [gohooks](https://github.com/averageflow/gohooks) - GoHooks make it easy to send and consume secured web-hooks from a Go application. Inspired by Spatie's Laravel Webhook Client and Server. +- [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. +- [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. +- [graval](https://github.com/koofr/graval) - Experimental FTP server framework. +- [HTTPLab](https://github.com/gchaincl/httplab) - HTTPLabs let you inspect HTTP requests and forge responses. +- [httpproxy](https://github.com/wzshiming/httpproxy) - HTTP proxy handler and dialer. +- [iplib](https://github.com/c-robinson/iplib) - Library for working with IP addresses (net.IP, net.IPNet), inspired by python [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html) +- [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. +- [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. +- [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. +- [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. +- [nbio](https://github.com/lesismal/nbio) - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. +- [netpoll](https://github.com/cloudwego/netpoll) - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance. +- [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). +- [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. +- [panoptes-stream](https://github.com/yahoo/panoptes-stream) - A cloud native distributed streaming network telemetry (gNMI, Juniper JTI and Cisco MDT). +- [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast. +- [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). +- [quic-go](https://github.com/lucas-clemente/quic-go) - An implementation of the QUIC protocol in pure Go. +- [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. +- [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in . +- [ssh](https://github.com/gliderlabs/ssh) - Higher-level API for building SSH servers (wraps crypto/ssh). +- [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. +- [stun](https://github.com/go-rtc/stun) - Go implementation of RFC 5389 STUN protocol. +- [tcp_server](https://github.com/firstrow/tcp_server) - Go library for building tcp servers faster. +- [tspool](https://github.com/two/tspool) - A TCP Library use worker pool to improve performance and protect your server. +- [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. +- [vssh](https://github.com/yahoo/vssh) - Go library for building network and server automation over SSH protocol. +- [water](https://github.com/songgao/water) - Simple TUN/TAP library. +- [webrtc](https://github.com/pions/webrtc) - A pure Go implementation of the WebRTC API. +- [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, and custom protocol. **[⬆ back to top](#contents)** ### HTTP Clients -*Libraries for making HTTP requests.* +_Libraries for making HTTP requests._ -* [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. -* [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. -* [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. -* [go-retryablehttp](https://github.com/hashicorp/go-retryablehttp) - Retryable HTTP client in Go. -* [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. -* [heimdall](https://github.com/gojektech/heimdall) - An enhanced http client with retry and hystrix capabilities. -* [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. -* [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. -* [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. -* [request](https://github.com/monaco-io/request) - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency. -* [requests](https://github.com/carlmjohnson/requests) - HTTP requests for Gophers. Uses context.Context and doesn't hide the underlying net/http.Client, making it compatible with standard Go APIs. Also includes testing tools. -* [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. -* [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. -* [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. +- [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. +- [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. +- [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. +- [go-retryablehttp](https://github.com/hashicorp/go-retryablehttp) - Retryable HTTP client in Go. +- [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. +- [heimdall](https://github.com/gojektech/heimdall) - An enhanced http client with retry and hystrix capabilities. +- [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. +- [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. +- [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. +- [request](https://github.com/monaco-io/request) - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency. +- [requests](https://github.com/carlmjohnson/requests) - HTTP requests for Gophers. Uses context.Context and doesn't hide the underlying net/http.Client, making it compatible with standard Go APIs. Also includes testing tools. +- [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. +- [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client. +- [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests. **[⬆ back to top](#contents)** ## OpenGL -*Libraries for using OpenGL in Go.* +_Libraries for using OpenGL in Go._ -* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). -* [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. -* [go-glmatrix](https://github.com/technohippy/go-glmatrix) - Go port of [glMatrix](https://glmatrix.net/) library. -* [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). -* [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. -* [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. +- [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). +- [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. +- [go-glmatrix](https://github.com/technohippy/go-glmatrix) - Go port of [glMatrix](https://glmatrix.net/) library. +- [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). +- [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. +- [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. **[⬆ back to top](#contents)** ## ORM -*Libraries that implement Object-Relational Mapping or datamapping techniques.* - -* [beego orm](https://github.com/beego/beego) - Powerful orm framework for go. Support: pq/mysql/sqlite3. -* [cacheme](https://github.com/Yiling-J/cacheme-go) - Schema based, typed Redis caching/memoize framework for Go. -* [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. -* [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. -* [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. -* [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. -* [go-sql](https://github.com/rushteam/gosql) - A easy ORM for mysql. -* [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. -* [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. -* [GORM](https://github.com/go-gorm/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. -* [gormt](https://github.com/xxjwxc/gormt) - Mysql database to golang gorm struct. -* [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. -* [grimoire](https://github.com/Fs02/grimoire) - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3). -* [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. -* [marlow](https://github.com/marlow/marlow) - Generated ORM from project structs for compile time safety assurances. -* [pop/soda](https://github.com/gobuffalo/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. -* [Prisma](https://github.com/prisma/prisma-client-go) - Prisma Client Go, Typesafe database access for Go. -* [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. -* [rel](https://github.com/go-rel/rel) - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API. -* [SQLBoiler](https://github.com/volatiletech/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. -* [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. -* [XORM](https://gitea.com/xorm/xorm) - Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle). -* [Zoom](https://github.com/albrow/zoom) - Blazing-fast datastore and querying engine built on Redis. +_Libraries that implement Object-Relational Mapping or datamapping techniques._ + +- [beego orm](https://github.com/beego/beego) - Powerful orm framework for go. Support: pq/mysql/sqlite3. +- [cacheme](https://github.com/Yiling-J/cacheme-go) - Schema based, typed Redis caching/memoize framework for Go. +- [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. +- [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. +- [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. +- [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. +- [go-sql](https://github.com/rushteam/gosql) - A easy ORM for mysql. +- [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. +- [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. +- [GORM](https://github.com/go-gorm/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. +- [gormt](https://github.com/xxjwxc/gormt) - Mysql database to golang gorm struct. +- [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. +- [grimoire](https://github.com/Fs02/grimoire) - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3). +- [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. +- [marlow](https://github.com/marlow/marlow) - Generated ORM from project structs for compile time safety assurances. +- [pop/soda](https://github.com/gobuffalo/pop) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. +- [Prisma](https://github.com/prisma/prisma-client-go) - Prisma Client Go, Typesafe database access for Go. +- [reform](https://github.com/go-reform/reform) - Better ORM for Go, based on non-empty interfaces and code generation. +- [rel](https://github.com/go-rel/rel) - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API. +- [SQLBoiler](https://github.com/volatiletech/sqlboiler) - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. +- [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. +- [XORM](https://gitea.com/xorm/xorm) - Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle). +- [Zoom](https://github.com/albrow/zoom) - Blazing-fast datastore and querying engine built on Redis. **[⬆ back to top](#contents)** ## Package Management -*Official tooling for dependency and package management* +_Official tooling for dependency and package management_ -* [go modules](https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more) - Modules are the unit of source code interchange and versioning. The go command has direct support for working with modules, including recording and resolving dependencies on other modules. +- [go modules](https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more) - Modules are the unit of source code interchange and versioning. The go command has direct support for working with modules, including recording and resolving dependencies on other modules. -*Official experimental tooling for package management* +_Official experimental tooling for package management_ -* [dep](https://github.com/golang/dep) - Go dependency tool. -* [vgo](https://go.googlesource.com/vgo/) - Versioned Go. +- [dep](https://github.com/golang/dep) - Go dependency tool. +- [vgo](https://go.googlesource.com/vgo/) - Versioned Go. -*Unofficial libraries for package and dependency management.* +_Unofficial libraries for package and dependency management._ -* [glide](https://github.com/Masterminds/glide) - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. -* [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. -* [gop](https://github.com/lunny/gop) - Build and manage your Go applications out of GOPATH. -* [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. -* [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git. -* [modgv](https://github.com/lucasepe/modgv) - Converts 'go mod graph' output into Graphviz's DOT language. -* [mvn-golang](https://github.com/raydac/mvn-golang) - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure. -* [nut](https://github.com/jingweno/nut) - Vendor Go dependencies. -* [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments. +- [glide](https://github.com/Masterminds/glide) - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. +- [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. +- [gop](https://github.com/lunny/gop) - Build and manage your Go applications out of GOPATH. +- [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. +- [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git. +- [modgv](https://github.com/lucasepe/modgv) - Converts 'go mod graph' output into Graphviz's DOT language. +- [mvn-golang](https://github.com/raydac/mvn-golang) - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure. +- [nut](https://github.com/jingweno/nut) - Vendor Go dependencies. +- [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments. **[⬆ back to top](#contents)** ## Performance -* [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. -* [pixie](https://github.com/pixie-labs/pixie) - No instrumentation tracing for Golang applications via eBPF. -* [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. -* [statsviz](https://github.com/arl/statsviz) - Live visualization of your Go application runtime statistics. -* [tracer](https://github.com/kamilsk/tracer) - Simple, lightweight tracing. +- [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. +- [pixie](https://github.com/pixie-labs/pixie) - No instrumentation tracing for Golang applications via eBPF. +- [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. +- [statsviz](https://github.com/arl/statsviz) - Live visualization of your Go application runtime statistics. +- [tracer](https://github.com/kamilsk/tracer) - Simple, lightweight tracing. **[⬆ back to top](#contents)** ## Query Language -* [api-fu](https://github.com/ccbrown/api-fu) - Comprehensive GraphQL implementation. -* [dasel](https://github.com/tomwright/dasel) - Query and update data structures using selectors from the command line. Comparable to jq/yq but supports JSON, YAML, TOML and XML with zero runtime dependencies. -* [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. -* [gqlgen](https://github.com/99designs/gqlgen) - go generate based graphql server library. -* [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. -* [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. -* [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. -* [gws](https://github.com/Zaba505/gws) - Apollos' "GraphQL over Websocket" client and server implementation. -* [jsonpath](https://github.com/AsaiYusuke/jsonpath) - A query library for retrieving part of JSON based on JSONPath syntax. -* [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. -* [jsonslice](https://github.com/bhmj/jsonslice) - Jsonpath queries with advanced filters. -* [rql](https://github.com/a8m/rql) - Resource Query Language for REST API. -* [rqp](https://github.com/timsolov/rest-query-parser) - Query Parser for REST API. Filtering, validations, both `AND`, `OR` operations are supported directly in the query. -* [straf](https://github.com/SonicRoshan/straf) - Easily Convert Golang structs to GraphQL objects. +- [api-fu](https://github.com/ccbrown/api-fu) - Comprehensive GraphQL implementation. +- [dasel](https://github.com/tomwright/dasel) - Query and update data structures using selectors from the command line. Comparable to jq/yq but supports JSON, YAML, TOML and XML with zero runtime dependencies. +- [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. +- [gqlgen](https://github.com/99designs/gqlgen) - go generate based graphql server library. +- [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. +- [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. +- [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. +- [gws](https://github.com/Zaba505/gws) - Apollos' "GraphQL over Websocket" client and server implementation. +- [jsonpath](https://github.com/AsaiYusuke/jsonpath) - A query library for retrieving part of JSON based on JSONPath syntax. +- [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. +- [jsonslice](https://github.com/bhmj/jsonslice) - Jsonpath queries with advanced filters. +- [rql](https://github.com/a8m/rql) - Resource Query Language for REST API. +- [rqp](https://github.com/timsolov/rest-query-parser) - Query Parser for REST API. Filtering, validations, both `AND`, `OR` operations are supported directly in the query. +- [straf](https://github.com/SonicRoshan/straf) - Easily Convert Golang structs to GraphQL objects. **[⬆ back to top](#contents)** ## Resource Embedding -* [debme](https://github.com/leaanthony/debme) - Create an `embed.FS` from an existing `embed.FS` subdirectory. -* [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-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. -* [mule](https://github.com/wlbr/mule) - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focussed on simplicity. -* [packr](https://github.com/gobuffalo/packr) - The simple and easy way to embed static files into Go binaries. -* [rebed](https://github.com/soypat/rebed) - Recreate folder structures and files from Go 1.16's `embed.FS` type -* [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. -* [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. +- [debme](https://github.com/leaanthony/debme) - Create an `embed.FS` from an existing `embed.FS` subdirectory. +- [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-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. +- [mule](https://github.com/wlbr/mule) - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focussed on simplicity. +- [packr](https://github.com/gobuffalo/packr) - The simple and easy way to embed static files into Go binaries. +- [rebed](https://github.com/soypat/rebed) - Recreate folder structures and files from Go 1.16's `embed.FS` type +- [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. +- [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. **[⬆ back to top](#contents)** ## Science and Data Analysis -*Libraries for scientific computing and data analyzing.* - -* [assocentity](https://github.com/ndabAP/assocentity) - Package assocentity returns the average distance from words to a given entity. -* [bradleyterry](https://github.com/seanhagen/bradleyterry) - Provides a Bradley-Terry Model for pairwise comparisons. -* [calendarheatmap](https://github.com/nikolaydubina/calendarheatmap) - Calendar heatmap in plain Go inspired by Github contribution activity. -* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. -* [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for machine-learning and statistics (similar to pandas). -* [decimal](https://github.com/db47h/decimal) - Package decimal implements arbitrary-precision decimal floating-point arithmetic. -* [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-estimate](https://github.com/milosgajdos/go-estimate) - State estimation and filtering algorithms in Go. -* [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. -* [godesim](https://github.com/soypat/godesim) - Extended/multivariable ODE solver framework for event-based simulations with simple API. -* [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures. -* [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. -* [gonum](https://github.com/gonum/gonum) - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. -* [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, algorithm visualization). -* [gosl](https://github.com/cpmech/gosl) - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. -* [GoStats](https://github.com/OGFris/GoStats) - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. -* [graph](https://github.com/yourbasic/graph) - Library of basic graph algorithms. -* [jsonl-graph](https://github.com/nikolaydubina/jsonl-graph) - Tool to manipulate JSONL graphs with graphviz support. -* [ode](https://github.com/ChristopherRabotin/ode) - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions. -* [orb](https://github.com/paulmach/orb) - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support. -* [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go. -* [piecewiselinear](https://github.com/sgreben/piecewiselinear) - Tiny linear interpolation library. -* [PiHex](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi. -* [rootfinding](https://github.com/khezen/rootfinding) - root-finding algorithms library for finding roots of quadratic functions. -* [sparse](https://github.com/james-bowman/sparse) - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. -* [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. -* [TextRank](https://github.com/DavidBelicza/TextRank) - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. -* [triangolatte](https://github.com/tchayen/triangolatte) - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. +_Libraries for scientific computing and data analyzing._ + +- [assocentity](https://github.com/ndabAP/assocentity) - Package assocentity returns the average distance from words to a given entity. +- [bradleyterry](https://github.com/seanhagen/bradleyterry) - Provides a Bradley-Terry Model for pairwise comparisons. +- [calendarheatmap](https://github.com/nikolaydubina/calendarheatmap) - Calendar heatmap in plain Go inspired by Github contribution activity. +- [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. +- [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Dataframes for machine-learning and statistics (similar to pandas). +- [decimal](https://github.com/db47h/decimal) - Package decimal implements arbitrary-precision decimal floating-point arithmetic. +- [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-estimate](https://github.com/milosgajdos/go-estimate) - State estimation and filtering algorithms in Go. +- [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. +- [godesim](https://github.com/soypat/godesim) - Extended/multivariable ODE solver framework for event-based simulations with simple API. +- [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures. +- [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. +- [gonum](https://github.com/gonum/gonum) - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. +- [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, algorithm visualization). +- [gosl](https://github.com/cpmech/gosl) - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. +- [GoStats](https://github.com/OGFris/GoStats) - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. +- [graph](https://github.com/yourbasic/graph) - Library of basic graph algorithms. +- [jsonl-graph](https://github.com/nikolaydubina/jsonl-graph) - Tool to manipulate JSONL graphs with graphviz support. +- [ode](https://github.com/ChristopherRabotin/ode) - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions. +- [orb](https://github.com/paulmach/orb) - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support. +- [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go. +- [piecewiselinear](https://github.com/sgreben/piecewiselinear) - Tiny linear interpolation library. +- [PiHex](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi. +- [rootfinding](https://github.com/khezen/rootfinding) - root-finding algorithms library for finding roots of quadratic functions. +- [sparse](https://github.com/james-bowman/sparse) - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. +- [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. +- [TextRank](https://github.com/DavidBelicza/TextRank) - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. +- [triangolatte](https://github.com/tchayen/triangolatte) - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. **[⬆ back to top](#contents)** ## 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. -* [acra](https://github.com/cossacklabs/acra) - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system. -* [age](https://github.com/FiloSottile/age) - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. -* [argon2-hashing](https://github.com/andskur/argon2-hashing) - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package. -* [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. -* [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. -* [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. -* [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. -* [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. -* [CertMagic](https://github.com/caddyserver/certmagic) - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal. -* [dongle](https://github.com/golang-module/dongle) - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption. -* [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. -* [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. -* [go-htpasswd](https://github.com/tg123/go-htpasswd) - Apache htpasswd Parser for Go. -* [go-password-validator](https://github.com/lane-c-wagner/go-password-validator) - Password validator based on raw cryptographic entropy values. -* [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)". -* [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. -* [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. -* [Interpol](https://bitbucket.org/vahidi/interpol) - Rule-based data generator for fuzzing and penetration testing. -* [lego](https://github.com/go-acme/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. -* [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. -* [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. -* [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. -* [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std* etc. -* [secure](https://github.com/unrolled/secure) - HTTP middleware for Go that facilitates some quick security wins. -* [secureio](https://github.com/xaionaro-go/secureio) - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519. -* [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. -* [sslmgr](https://github.com/adrianosela/sslmgr) - SSL certificates made easy with a high level wrapper around acme/autocert. -* [themis](https://github.com/cossacklabs/themis) - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps. - +_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. +- [acra](https://github.com/cossacklabs/acra) - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system. +- [age](https://github.com/FiloSottile/age) - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. +- [argon2-hashing](https://github.com/andskur/argon2-hashing) - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package. +- [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. +- [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. +- [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. +- [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. +- [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. +- [CertMagic](https://github.com/caddyserver/certmagic) - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal. +- [dongle](https://github.com/golang-module/dongle) - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption. +- [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. +- [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. +- [go-htpasswd](https://github.com/tg123/go-htpasswd) - Apache htpasswd Parser for Go. +- [go-password-validator](https://github.com/lane-c-wagner/go-password-validator) - Password validator based on raw cryptographic entropy values. +- [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)". +- [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. +- [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. +- [Interpol](https://bitbucket.org/vahidi/interpol) - Rule-based data generator for fuzzing and penetration testing. +- [lego](https://github.com/go-acme/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. +- [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. +- [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. +- [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. +- [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std* etc. +- [secure](https://github.com/unrolled/secure) - HTTP middleware for Go that facilitates some quick security wins. +- [secureio](https://github.com/xaionaro-go/secureio) - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519. +- [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. +- [sslmgr](https://github.com/adrianosela/sslmgr) - SSL certificates made easy with a high level wrapper around acme/autocert. +- [themis](https://github.com/cossacklabs/themis) - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps. **[⬆ back to top](#contents)** ## Serialization -*Libraries and tools for binary serialization.* - -* [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang. -* [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. -* [bel](https://github.com/32leaves/bel) - Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC. -* [binstruct](https://github.com/ghostiam/binstruct) - Golang binary decoder for mapping data into the structure. -* [cbor](https://github.com/fxamacker/cbor) - Small, safe, and easy CBOR encoding and decoding library. -* [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. -* [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. -* [elastic](https://github.com/epiclabs-io/elastic) - Convert slices, maps or any other unknown value across different types at run-time, no matter what. -* [fixedwidth](https://github.com/huydang284/fixedwidth) - Fixed-width text formatting (UTF-8 supported). -* [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. -* [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for 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. -* [go-lctree](https://github.com/sbourlon/go-lctree) - Provides a CLI and primitives to serialize and deserialize [LeetCode binary trees](https://support.leetcode.com/hc/en-us/articles/360011883654-What-does-1-null-2-3-mean-in-binary-tree-representation). -* [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". -* [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. -* [pletter](https://github.com/vimeda/pletter) - A standard way to wrap a proto message for message brokers. -* [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. -* [unitpacking](https://github.com/recolude/unitpacking) - Library to pack unit vectors into as fewest bytes as possible. +_Libraries and tools for binary serialization._ + +- [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang. +- [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. +- [bel](https://github.com/32leaves/bel) - Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC. +- [binstruct](https://github.com/ghostiam/binstruct) - Golang binary decoder for mapping data into the structure. +- [cbor](https://github.com/fxamacker/cbor) - Small, safe, and easy CBOR encoding and decoding library. +- [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. +- [csvutil](https://github.com/jszwec/csvutil) - High Performance, idiomatic CSV record encoding and decoding to native Go structures. +- [elastic](https://github.com/epiclabs-io/elastic) - Convert slices, maps or any other unknown value across different types at run-time, no matter what. +- [fixedwidth](https://github.com/huydang284/fixedwidth) - Fixed-width text formatting (UTF-8 supported). +- [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. +- [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for 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. +- [go-lctree](https://github.com/sbourlon/go-lctree) - Provides a CLI and primitives to serialize and deserialize [LeetCode binary trees](https://support.leetcode.com/hc/en-us/articles/360011883654-What-does-1-null-2-3-mean-in-binary-tree-representation). +- [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". +- [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. +- [pletter](https://github.com/vimeda/pletter) - A standard way to wrap a proto message for message brokers. +- [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. +- [unitpacking](https://github.com/recolude/unitpacking) - Library to pack unit vectors into as fewest bytes as possible. **[⬆ back to top](#contents)** ## Server Applications -* [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. -* [Caddy](https://github.com/caddyserver/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. -* [cortex-tenant](https://github.com/blind-oracle/cortex-tenant) - Prometheus remote write proxy that adds add Cortex tenant ID header based on metric labels. -* [devd](https://github.com/cortesi/devd) - Local webserver for developers. -* [discovery](https://github.com/Bilibili/discovery) - A registry for resilient mid-tier load balancing and failover. -* [dudeldu](https://github.com/krotik/dudeldu) - A simple SHOUTcast server. -* [Easegress](https://github.com/megaease/easegress) - A cloud native high availability/performance traffic orchestration system with observability and extensibility. -* [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. -* [Euterpe](https://github.com/ironsmile/euterpe) - Self-hosted music streaming server with built-in web UI and REST API. -* [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. -* [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. -* [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js -* [go-dummy](https://github.com/neotoolkit/dummy) - Run mock server based off an API contract with one command. -* [go-feature-flag](https://github.com/thomaspoignant/go-feature-flag) - A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. -* [go-proxy-cache](https://github.com/fabiocicerchia/go-proxy-cache) - Simple Reverse Proxy with Caching, written in Go, using Redis. -* [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. -* [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. -* [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. -* [Moxy](https://github.com/sinhashubham95/moxy) - Moxy is a simple mocker and proxy application server, you can create mock endpoints as well as proxy requests in case no mock exists for the endpoint. -* [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. -* [nsq](https://nsq.io/) - A realtime distributed messaging platform. -* [protoxy](https://github.com/camgraff/protoxy) - A proxy server that converts JSON request bodies to Protocol Buffers. -* [psql-streamer](https://github.com/blind-oracle/psql-streamer) - Stream database events from PostgreSQL to Kafka. -* [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. -* [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. -* [SFTPGo](https://github.com/drakkan/sftpgo) - Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support. It can serve local filesystem and Cloud Storage backends such as S3 and Google Cloud Storage. -* [simple-jwt-provider](https://github.com/leberKleber/simple-jwt-provider) - Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management. -* [Trickster](https://github.com/tricksterproxy/trickster) - HTTP reverse proxy cache and time series accelerator. - +- [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. +- [Caddy](https://github.com/caddyserver/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. +- [cortex-tenant](https://github.com/blind-oracle/cortex-tenant) - Prometheus remote write proxy that adds add Cortex tenant ID header based on metric labels. +- [devd](https://github.com/cortesi/devd) - Local webserver for developers. +- [discovery](https://github.com/Bilibili/discovery) - A registry for resilient mid-tier load balancing and failover. +- [dudeldu](https://github.com/krotik/dudeldu) - A simple SHOUTcast server. +- [Easegress](https://github.com/megaease/easegress) - A cloud native high availability/performance traffic orchestration system with observability and extensibility. +- [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. +- [Euterpe](https://github.com/ironsmile/euterpe) - Self-hosted music streaming server with built-in web UI and REST API. +- [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. +- [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. +- [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js +- [go-dummy](https://github.com/neotoolkit/dummy) - Run mock server based off an API contract with one command. +- [go-feature-flag](https://github.com/thomaspoignant/go-feature-flag) - A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. +- [go-proxy-cache](https://github.com/fabiocicerchia/go-proxy-cache) - Simple Reverse Proxy with Caching, written in Go, using Redis. +- [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. +- [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. +- [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. +- [Moxy](https://github.com/sinhashubham95/moxy) - Moxy is a simple mocker and proxy application server, you can create mock endpoints as well as proxy requests in case no mock exists for the endpoint. +- [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. +- [nsq](https://nsq.io/) - A realtime distributed messaging platform. +- [protoxy](https://github.com/camgraff/protoxy) - A proxy server that converts JSON request bodies to Protocol Buffers. +- [psql-streamer](https://github.com/blind-oracle/psql-streamer) - Stream database events from PostgreSQL to Kafka. +- [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. +- [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. +- [SFTPGo](https://github.com/drakkan/sftpgo) - Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support. It can serve local filesystem and Cloud Storage backends such as S3 and Google Cloud Storage. +- [simple-jwt-provider](https://github.com/leberKleber/simple-jwt-provider) - Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management. +- [Trickster](https://github.com/tricksterproxy/trickster) - HTTP reverse proxy cache and time series accelerator. **[⬆ back to top](#contents)** ## Stream Processing -*Libraries and tools for stream processing and reactive programming.* +_Libraries and tools for stream processing and reactive programming._ -* [go-streams](https://github.com/reugn/go-streams) - Go stream processing library. -* [machine](https://github.com/whitaker-io/machine) - Go library for writing and generating stream workers with built in metrics and traceability. -* [stream](https://github.com/youthlin/stream) - Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce... +- [go-streams](https://github.com/reugn/go-streams) - Go stream processing library. +- [machine](https://github.com/whitaker-io/machine) - Go library for writing and generating stream workers with built in metrics and traceability. +- [stream](https://github.com/youthlin/stream) - Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce... **[⬆ back to top](#contents)** ## Template Engines -*Libraries and tools for templating and lexing.* - -* [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. -* [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. -* [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. -* [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. -* [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. -* [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). -* [gofpdf](https://github.com/jung-kurt/gofpdf) - PDF document generator with high level support for text, drawing and images. -* [gospin](https://github.com/m1/gospin) - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations. -* [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. -* [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. -* [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. -* [maroto](https://github.com/johnfercher/maroto) - A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple. -* [mustache](https://github.com/hoisie/mustache) - Go implementation of the Mustache template language. -* [pongo2](https://github.com/flosch/pongo2) - Django-like template-engine for Go. -* [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/). -* [sprig](https://github.com/Masterminds/sprig) - Useful template functions for Go templates. -* [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata. -* [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go. +_Libraries and tools for templating and lexing._ + +- [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. +- [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. +- [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. +- [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. +- [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. +- [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). +- [gofpdf](https://github.com/jung-kurt/gofpdf) - PDF document generator with high level support for text, drawing and images. +- [gospin](https://github.com/m1/gospin) - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations. +- [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. +- [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. +- [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. +- [maroto](https://github.com/johnfercher/maroto) - A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple. +- [mustache](https://github.com/hoisie/mustache) - Go implementation of the Mustache template language. +- [pongo2](https://github.com/flosch/pongo2) - Django-like template-engine for Go. +- [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/). +- [sprig](https://github.com/Masterminds/sprig) - Useful template functions for Go templates. +- [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata. +- [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go. **[⬆ back to top](#contents)** ## Testing -*Libraries for testing codebases and generating test data.* - -* Testing Frameworks - * [apitest](https://apitest.dev) - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams. - * [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. - * [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. - * [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. - * [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. - * [covergates](https://github.com/covergates/covergates) - Self-hosted code coverage report review and management service. - * [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. - * [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. - * [endly](https://github.com/viant/endly) - Declarative end to end functional testing. - * [fixenv](https://github.com/rekby/fixenv) - Fixture manage engine, inspired by pytest fixtures. - * [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. - * [frisby](https://github.com/verdverm/frisby) - REST API testing framework. - * [ginkgo](https://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. - * [gnomock](https://github.com/orlangure/gnomock) - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks. - * [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal. - * [go-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests. - * [go-hit](https://github.com/Eun/go-hit) - Hit is an http integration test framework written in golang. - * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. - * [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. - * [go-testpredicate](https://github.com/maargenton/go-testpredicate) - Test predicate style assertions library with extensive diagnostics output. - * [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. - * [goc](https://github.com/qiniu/goc) - Goc is a comprehensive coverage testing system for The Go Programming Language. - * [gocheck](https://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. - * [gocrest](https://github.com/corbym/gocrest) - Composable hamcrest-like matchers for Go assertions. - * [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. - * [gogiven](https://github.com/corbym/gogiven) - YATSPEC-like BDD testing framework for Go. - * [gomatch](https://github.com/jfilipczyk/gomatch) - library created for testing JSON against patterns. - * [gomega](https://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. - * [gotest.tools](https://github.com/gotestyourself/gotest.tools) - A collection of packages to augment the go testing package and support common patterns. - * [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. - * [is](https://github.com/matryer/is) - Professional lightweight testing mini-framework for Go. - * [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. - * [omg.testingtools](https://github.com/dedalqq/omg.testingtools) - The simple library for change a values of private fields for testing. - * [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. - * [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. - * [stop-and-go](https://github.com/elgohr/stop-and-go) - Testing helper for concurrency. - * [testcase](https://github.com/adamluzsi/testcase) - Idiomatic testing framework for Behavior Driven Development. - * [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. - * [testmd](https://godoc.org/github.com/tvastar/test/cmd/testmd) - Convert markdown snippets into testable go code. - * [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. - * [testza](https://github.com/MarvinJWendt/testza) - Full-featured test framework with nice colorized output. - * [trial](https://github.com/jgroeneveld/trial) - Quick and easy extendable assertions without introducing much boilerplate. - * [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. - * [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. - * [genmock](https://gitlab.com/so_literate/genmock) - Go mocking system with code generator for building calls of the interface methods. - * [go-localstack](https://github.com/elgohr/go-localstack) - Tool for using localstack in AWS testing. - * [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. - * [hoverfly](https://github.com/SpectoLabs/hoverfly) - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI. - * [httpmock](https://github.com/jarcoal/httpmock) - Easy mocking of HTTP responses from external resources. - * [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. - * [mockery](https://github.com/vektra/mockery) - Tool to generate Go interfaces. - * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. - * [mockit](https://github.com/pasdam/mockit) - Allows functions and method easy mocking, without defining new types; it's similar to Mockito for Java. - * [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. - -* 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. - * [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. - * [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. - * [playwright-go](https://github.com/mxschmitt/playwright-go) - browser automation library to control Chromium, Firefox and WebKit with a single API. - * [rod](https://github.com/go-rod/rod) - A Devtools driver to make web automation and scraping easy. - * [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. - -* Fail injection - * [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](https://www.freebsd.org/cgi/man.cgi?query=fail) for Golang. +_Libraries for testing codebases and generating test data._ + +- Testing Frameworks + - [apitest](https://apitest.dev) - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams. + - [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. + - [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. + - [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. + - [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. + - [covergates](https://github.com/covergates/covergates) - Self-hosted code coverage report review and management service. + - [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. + - [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. + - [endly](https://github.com/viant/endly) - Declarative end to end functional testing. + - [fixenv](https://github.com/rekby/fixenv) - Fixture manage engine, inspired by pytest fixtures. + - [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. + - [frisby](https://github.com/verdverm/frisby) - REST API testing framework. + - [ginkgo](https://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. + - [gnomock](https://github.com/orlangure/gnomock) - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks. + - [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal. + - [go-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests. + - [go-hit](https://github.com/Eun/go-hit) - Hit is an http integration test framework written in golang. + - [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. + - [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. + - [go-testpredicate](https://github.com/maargenton/go-testpredicate) - Test predicate style assertions library with extensive diagnostics output. + - [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. + - [goc](https://github.com/qiniu/goc) - Goc is a comprehensive coverage testing system for The Go Programming Language. + - [gocheck](https://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. + - [gocrest](https://github.com/corbym/gocrest) - Composable hamcrest-like matchers for Go assertions. + - [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. + - [gogiven](https://github.com/corbym/gogiven) - YATSPEC-like BDD testing framework for Go. + - [gomatch](https://github.com/jfilipczyk/gomatch) - library created for testing JSON against patterns. + - [gomega](https://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. + - [gotest.tools](https://github.com/gotestyourself/gotest.tools) - A collection of packages to augment the go testing package and support common patterns. + - [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. + - [is](https://github.com/matryer/is) - Professional lightweight testing mini-framework for Go. + - [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. + - [omg.testingtools](https://github.com/dedalqq/omg.testingtools) - The simple library for change a values of private fields for testing. + - [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. + - [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. + - [stop-and-go](https://github.com/elgohr/stop-and-go) - Testing helper for concurrency. + - [testcase](https://github.com/adamluzsi/testcase) - Idiomatic testing framework for Behavior Driven Development. + - [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. + - [testmd](https://godoc.org/github.com/tvastar/test/cmd/testmd) - Convert markdown snippets into testable go code. + - [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. + - [testza](https://github.com/MarvinJWendt/testza) - Full-featured test framework with nice colorized output. + - [trial](https://github.com/jgroeneveld/trial) - Quick and easy extendable assertions without introducing much boilerplate. + - [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. + - [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. + - [genmock](https://gitlab.com/so_literate/genmock) - Go mocking system with code generator for building calls of the interface methods. + - [go-localstack](https://github.com/elgohr/go-localstack) - Tool for using localstack in AWS testing. + - [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. + - [hoverfly](https://github.com/SpectoLabs/hoverfly) - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI. + - [httpmock](https://github.com/jarcoal/httpmock) - Easy mocking of HTTP responses from external resources. + - [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. + - [mockery](https://github.com/vektra/mockery) - Tool to generate Go interfaces. + - [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. + - [mockit](https://github.com/pasdam/mockit) - Allows functions and method easy mocking, without defining new types; it's similar to Mockito for Java. + - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. + +- 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. + - [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. + - [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. + - [playwright-go](https://github.com/mxschmitt/playwright-go) - browser automation library to control Chromium, Firefox and WebKit with a single API. + - [rod](https://github.com/go-rod/rod) - A Devtools driver to make web automation and scraping easy. + - [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. + +- Fail injection + - [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](https://www.freebsd.org/cgi/man.cgi?query=fail) for Golang. **[⬆ back to top](#contents)** ## Text Processing -*Libraries for parsing and manipulating texts.* - -* Specific Formats - * [align](https://github.com/Guitarbum722/align) - A general purpose application that aligns text. - * [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. - * [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates. - * [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. - * [codetree](https://github.com/aerogo/codetree) - Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure. - * [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. - * [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go. - * [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. - * [did](https://github.com/ockam-network/did) - DID (Decentralized Identifiers) Parser and Stringer in Go. - * [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. - * [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](https://cihar.com/software/enca/). - * [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. - * [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-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). - * [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. - * [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-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. - * [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. - * [go-wildcard](https://github.com/IGLOU-EU/go-wildcard) - Simple and lightweight wildcard pattern matching. - * [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. - * [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. - * [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. - * [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) - * [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. - * [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. - * [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. - * [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. - * [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. - * [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. - * [normalize](https://github.com/avito-tech/normalize) - Sanitize, normalize and compare fuzzy text. - * [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. - * [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. - * [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang - * [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. - * [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. - * [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. - * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). -* Utility - * [gofuckyourself](https://github.com/JoshuaDoes/gofuckyourself) - A sanitization-based swear filter for Go. - * [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. - * [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. - * [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. - * [regroup](https://github.com/oriser/regroup) - Match regex expression named groups into go struct using struct tags and automatic parsing. - * [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. - * [textwrap](https://github.com/isbm/textwrap) - Implementation of `textwrap` module from Python. - * [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. - * [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. - * [xurls](https://github.com/mvdan/xurls) - Extract urls from text. +_Libraries for parsing and manipulating texts._ + +- Specific Formats + - [align](https://github.com/Guitarbum722/align) - A general purpose application that aligns text. + - [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. + - [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates. + - [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. + - [codetree](https://github.com/aerogo/codetree) - Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure. + - [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. + - [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go. + - [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. + - [did](https://github.com/ockam-network/did) - DID (Decentralized Identifiers) Parser and Stringer in Go. + - [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. + - [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](https://cihar.com/software/enca/). + - [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. + - [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-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). + - [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. + - [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-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. + - [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. + - [go-wildcard](https://github.com/IGLOU-EU/go-wildcard) - Simple and lightweight wildcard pattern matching. + - [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. + - [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. + - [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. + - [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) + - [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. + - [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. + - [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. + - [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. + - [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. + - [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. + - [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. + - [normalize](https://github.com/avito-tech/normalize) - Sanitize, normalize and compare fuzzy text. + - [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. + - [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. + - [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang + - [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. + - [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. + - [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. + - [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). +- Utility + - [gofuckyourself](https://github.com/JoshuaDoes/gofuckyourself) - A sanitization-based swear filter for Go. + - [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. + - [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. + - [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. + - [regroup](https://github.com/oriser/regroup) - Match regex expression named groups into go struct using struct tags and automatic parsing. + - [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. + - [textwrap](https://github.com/isbm/textwrap) - Implementation of `textwrap` module from Python. + - [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. + - [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. + - [xurls](https://github.com/mvdan/xurls) - Extract urls from text. **[⬆ back to top](#contents)** ## Third-party APIs -*Libraries for accessing third party APIs.* - -* [airtable](https://github.com/mehanizm/airtable) - Go client library for the [Airtable API](https://airtable.com/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. -* [appstore-sdk-go](https://github.com/Kachit/appstore-sdk-go) - Unofficial Golang SDK for AppStore Connect API. -* [aws-sdk-go](https://github.com/aws/aws-sdk-go) - The official AWS SDK for the Go programming language. -* [bqwriter](https://github.com/OTA-Insight/bqwriter) - High Level Go Library to write data into [Google BigQuery](https://cloud.google.com/bigquery) at a high throughout. -* [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. -* [clarifai](https://github.com/samuelcouch/clarifai) - Go client library for interfacing with the Clarifai API. -* [codeship-go](https://github.com/codeship/codeship-go) - Go client library for interacting with Codeship's API v2. -* [coinpaprika-go](https://github.com/coinpaprika/coinpaprika-api-go-client) - Go client library for interacting with Coinpaprika's API. -* [device-check-go](https://github.com/rinchsan/device-check-go) - Go client library for interacting with [iOS DeviceCheck API](https://developer.apple.com/documentation/devicecheck) v1. -* [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API. -* [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC 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. -* [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](https://open.mapquestapi.com/geocoding/), [Nominatim](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](https://opencagedata.com/api), [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. -* [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-atlassian](https://github.com/ctreminiom/go-atlassian) - Go library for accessing the [Atlassian Cloud](https://www.atlassian.com/enterprise/cloud) services (Jira, Jira Service Management, Jira Agile, Confluence, Admin Cloud) -* [go-aws-news](https://github.com/circa10a/go-aws-news) - Go application and library to fetch what's new from AWS. -* [go-chronos](https://github.com/axelspringer/go-chronos) - Go library for interacting with the [Chronos](https://mesos.github.io/chronos/) Job Scheduler -* [go-hacknews](https://github.com/PaulRosset/go-hacknews) - Tiny Go client for HackerNews API. -* [go-here](https://github.com/abdullahselek/go-here) - Go client library around the HERE location based APIs. -* [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-lark](https://github.com/go-lark/lark) - An easy-to-use unofficial SDK for [Feishu](https://open.feishu.cn/) and [Lark](https://open.larksuite.com/) Open Platform. -* [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](https://myanimelist.net/apiconfig/references/api/v2). -* [go-openproject](https://github.com/manuelbcd/go-openproject) - Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API. -* [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). -* [go-restcountries](https://github.com/chriscross0/go-restcountries) - Go library for the [REST Countries API](https://restcountries.eu/). -* [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. -* [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. -* [go-swagger-ui](https://github.com/esurdam/go-swagger-ui) - Go library containing precompiled [Swagger UI](https://swagger.io/tools/swagger-ui/) for serving swagger json. -* [go-telegraph](https://gitlab.com/toby3d/telegraph) - Telegraph publishing platform API client. -* [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. -* [go-twitch](https://github.com/knspriggs/go-twitch) - Go client for interacting with the Twitch v3 API. -* [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. -* [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. -* [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. -* [go-yapla](https://git.iglou.eu/Production/go-yapla) - Go client library for the Yapla v2.0 API. -* [gogtrends](https://github.com/groovili/gogtrends) - Google Trends Unofficial API. -* [golang-tmdb](https://github.com/cyruzin/golang-tmdb) - Golang wrapper for The Movie Database API v3. -* [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. -* [gomalshare](https://github.com/MonaxGT/gomalshare) - Go library MalShare API [malshare.com](https://www.malshare.com/) -* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - Go MusicBrainz WS2 client library. -* [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. -* [google-analytics](https://github.com/chonthu/go-google-analytics) - Simple wrapper for easy google analytics reporting. -* [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. -* [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). -* [google-play-scraper](https://github.com/n0madic/google-play-scraper) - Get data from Google Play Store. -* [gopaapi5](https://github.com/utekaravinash/gopaapi5) - Go Client Library for [Amazon Product Advertising API 5.0](https://webservices.amazon.com/paapi5/documentation/). -* [gosip](https://github.com/koltyakov/gosip) - Go client library SharePoint API. -* [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. -* [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. -* [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). -* [jokeapi-go](https://github.com/icelain/jokeapi) - Go client for [JokeAPI](https://sv443.net/jokeapi/v2/). -* [kanka](https://github.com/Henry-Sarabia/kanka) - Go client for the [Kanka API](https://kanka.io/en-US/docs/1.0). -* [lark](https://github.com/chyroc/lark) - [Feishu](https://open.feishu.cn/)/[Lark](https://open.larksuite.com/) Open API Go SDK, Support ALL Open API and Event Callback. -* [lastpass-go](https://github.com/ansd/lastpass-go) - Go client library for the [LastPass](https://www.lastpass.com/) API. -* [libgoffi](https://github.com/clevabit/libgoffi) - Library adapter toolbox for native [libffi](https://sourceware.org/libffi/) integration -* [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](https://mesos.apache.org/) cluster. -* [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/PayPal-Go-SDK) - 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. -* [rawg-sdk-go](https://github.com/dimuska139/rawg-sdk-go) - Go library for the [RAWG Video Games Database](https://rawg.io/) 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. -* [simples3](https://github.com/rhnvrm/simples3) - Simple no frills AWS S3 Library using REST with V4 Signing written in Go. -* [slack](https://github.com/slack-go/slack) - Slack API in Go. -* [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. -* [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API. -* [translate](https://github.com/poorny/translate) - Go online translation package. -* [Trello](https://github.com/adlio/trello) - Go wrapper for the Trello API. -* [TripAdvisor](https://github.com/mrbenosborne/tripadvisor-golang) - Go wrapper for the TripAdvisor API. -* [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. -* [twitter-scraper](https://github.com/n0madic/twitter-scraper) - Scrape the Twitter Frontend API without authentication and limits. -* [uptimerobot](https://github.com/bitfield/uptimerobot) - Go wrapper and command-line client for the Uptime Robot v2 API. -* [vl-go](https://github.com/verifid/vl-go) - Go client library around the VerifID identity verification layer API. -* [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. -* [wit-go](https://github.com/wit-ai/wit-go) - Go client for wit.ai HTTP API. -* [ynab](https://github.com/brunomvsouza/ynab.go) - Go wrapper for the YNAB API. -* [zooz](https://github.com/gojuno/go-zooz) - Go client for the Zooz API. +_Libraries for accessing third party APIs._ + +- [airtable](https://github.com/mehanizm/airtable) - Go client library for the [Airtable API](https://airtable.com/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. +- [appstore-sdk-go](https://github.com/Kachit/appstore-sdk-go) - Unofficial Golang SDK for AppStore Connect API. +- [aws-sdk-go](https://github.com/aws/aws-sdk-go) - The official AWS SDK for the Go programming language. +- [bqwriter](https://github.com/OTA-Insight/bqwriter) - High Level Go Library to write data into [Google BigQuery](https://cloud.google.com/bigquery) at a high throughout. +- [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. +- [clarifai](https://github.com/samuelcouch/clarifai) - Go client library for interfacing with the Clarifai API. +- [codeship-go](https://github.com/codeship/codeship-go) - Go client library for interacting with Codeship's API v2. +- [coinpaprika-go](https://github.com/coinpaprika/coinpaprika-api-go-client) - Go client library for interacting with Coinpaprika's API. +- [device-check-go](https://github.com/rinchsan/device-check-go) - Go client library for interacting with [iOS DeviceCheck API](https://developer.apple.com/documentation/devicecheck) v1. +- [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API. +- [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC 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. +- [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](https://open.mapquestapi.com/geocoding/), [Nominatim](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](https://opencagedata.com/api), [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. +- [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-atlassian](https://github.com/ctreminiom/go-atlassian) - Go library for accessing the [Atlassian Cloud](https://www.atlassian.com/enterprise/cloud) services (Jira, Jira Service Management, Jira Agile, Confluence, Admin Cloud) +- [go-aws-news](https://github.com/circa10a/go-aws-news) - Go application and library to fetch what's new from AWS. +- [go-chronos](https://github.com/axelspringer/go-chronos) - Go library for interacting with the [Chronos](https://mesos.github.io/chronos/) Job Scheduler +- [go-hacknews](https://github.com/PaulRosset/go-hacknews) - Tiny Go client for HackerNews API. +- [go-here](https://github.com/abdullahselek/go-here) - Go client library around the HERE location based APIs. +- [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-lark](https://github.com/go-lark/lark) - An easy-to-use unofficial SDK for [Feishu](https://open.feishu.cn/) and [Lark](https://open.larksuite.com/) Open Platform. +- [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](https://myanimelist.net/apiconfig/references/api/v2). +- [go-openproject](https://github.com/manuelbcd/go-openproject) - Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API. +- [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). +- [go-restcountries](https://github.com/chriscross0/go-restcountries) - Go library for the [REST Countries API](https://restcountries.eu/). +- [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. +- [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. +- [go-swagger-ui](https://github.com/esurdam/go-swagger-ui) - Go library containing precompiled [Swagger UI](https://swagger.io/tools/swagger-ui/) for serving swagger json. +- [go-telegraph](https://gitlab.com/toby3d/telegraph) - Telegraph publishing platform API client. +- [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. +- [go-twitch](https://github.com/knspriggs/go-twitch) - Go client for interacting with the Twitch v3 API. +- [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. +- [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. +- [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. +- [go-yapla](https://git.iglou.eu/Production/go-yapla) - Go client library for the Yapla v2.0 API. +- [gogtrends](https://github.com/groovili/gogtrends) - Google Trends Unofficial API. +- [golang-tmdb](https://github.com/cyruzin/golang-tmdb) - Golang wrapper for The Movie Database API v3. +- [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. +- [gomalshare](https://github.com/MonaxGT/gomalshare) - Go library MalShare API [malshare.com](https://www.malshare.com/) +- [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - Go MusicBrainz WS2 client library. +- [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go. +- [google-analytics](https://github.com/chonthu/go-google-analytics) - Simple wrapper for easy google analytics reporting. +- [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library. +- [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). +- [google-play-scraper](https://github.com/n0madic/google-play-scraper) - Get data from Google Play Store. +- [gopaapi5](https://github.com/utekaravinash/gopaapi5) - Go Client Library for [Amazon Product Advertising API 5.0](https://webservices.amazon.com/paapi5/documentation/). +- [gosip](https://github.com/koltyakov/gosip) - Go client library SharePoint API. +- [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. +- [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. +- [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). +- [jokeapi-go](https://github.com/icelain/jokeapi) - Go client for [JokeAPI](https://sv443.net/jokeapi/v2/). +- [kanka](https://github.com/Henry-Sarabia/kanka) - Go client for the [Kanka API](https://kanka.io/en-US/docs/1.0). +- [lark](https://github.com/chyroc/lark) - [Feishu](https://open.feishu.cn/)/[Lark](https://open.larksuite.com/) Open API Go SDK, Support ALL Open API and Event Callback. +- [lastpass-go](https://github.com/ansd/lastpass-go) - Go client library for the [LastPass](https://www.lastpass.com/) API. +- [libgoffi](https://github.com/clevabit/libgoffi) - Library adapter toolbox for native [libffi](https://sourceware.org/libffi/) integration +- [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](https://mesos.apache.org/) cluster. +- [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/PayPal-Go-SDK) - 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. +- [rawg-sdk-go](https://github.com/dimuska139/rawg-sdk-go) - Go library for the [RAWG Video Games Database](https://rawg.io/) 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. +- [simples3](https://github.com/rhnvrm/simples3) - Simple no frills AWS S3 Library using REST with V4 Signing written in Go. +- [slack](https://github.com/slack-go/slack) - Slack API in Go. +- [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. +- [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API. +- [translate](https://github.com/poorny/translate) - Go online translation package. +- [Trello](https://github.com/adlio/trello) - Go wrapper for the Trello API. +- [TripAdvisor](https://github.com/mrbenosborne/tripadvisor-golang) - Go wrapper for the TripAdvisor API. +- [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. +- [twitter-scraper](https://github.com/n0madic/twitter-scraper) - Scrape the Twitter Frontend API without authentication and limits. +- [uptimerobot](https://github.com/bitfield/uptimerobot) - Go wrapper and command-line client for the Uptime Robot v2 API. +- [vl-go](https://github.com/verifid/vl-go) - Go client library around the VerifID identity verification layer API. +- [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. +- [wit-go](https://github.com/wit-ai/wit-go) - Go client for wit.ai HTTP API. +- [ynab](https://github.com/brunomvsouza/ynab.go) - Go wrapper for the YNAB API. +- [zooz](https://github.com/gojuno/go-zooz) - Go client for the Zooz API. **[⬆ back to top](#contents)** ## Utilities -*General utilities and tools to make your life easier.* - -* [apm](https://github.com/topfreegames/apm) - Process manager for Golang applications with an HTTP API. -* [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. -* [beyond](https://github.com/wesovilabs/beyond) - The Go tool that will drive you to the AOP world! -* [blank](https://github.com/Henry-Sarabia/blank) - Verify or remove blanks and whitespace from strings. -* [bleep](https://github.com/sinhashubham95/bleep) - Perform any number of actions on any set of OS signals in Go. -* [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. -* [changie](https://github.com/miniscruff/changie) - Automated changelog tool for preparing releases with lots of customization options. -* [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. -* [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. -* [circuitbreaker](https://github.com/rubyist/circuitbreaker) - Circuit Breakers in Go. -* [clipboard](https://github.com/golang-design/clipboard) - 📋 cross-platform clipboard package in Go. -* [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. -* [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. -* [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. -* [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. -* [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. -* [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. -* [create-go-app](https://github.com/create-go-app/cli) - A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command. -* [cryptgo](https://github.com/Gituser143/cryptgo) - Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time! -* [ctop](https://github.com/bcicen/ctop) - [Top-like](https://ctop.sh) interface (e.g. htop) for container metrics. -* [ctxutil](https://github.com/posener/ctxutil) - A collection of utility functions for contexts. -* [cvt](https://github.com/shockerli/cvt) - Easy and safe convert any value to another type. -* [dbt](https://github.com/nikogura/dbt) - A framework for running self-updating signed binaries from a central, trusted repository. -* [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. -* [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. -* [delve](https://github.com/derekparker/delve) - Go debugger. -* [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. -* [equalizer](https://github.com/reugn/equalizer) - Quota manager and rate limiter collection for Go. -* [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. -* [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. -* [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. -* [filter](https://github.com/gookit/filter) - provide filtering, sanitizing, and conversion of Go data. -* [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. -* [ghokin](https://github.com/antham/ghokin) - Parallelized formatter with no external dependencies for gherkin (cucumber, behat...). -* [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git. -* [go-actuator](https://github.com/sinhashubham95/go-actuator) - Production ready features for Go based web frameworks. -* [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-bsdiff](https://github.com/gabstv/go-bsdiff) - Pure Go bsdiff and bspatch libraries and CLI tools. -* [go-clip](https://github.com/prashantgupta24/go-clip) - A minimalistic clipboard manager for Mac. -* [go-convert](https://github.com/Eun/go-convert) - Package go-convert enables you to convert a value into another type. -* [go-countries](https://github.com/mikekonan/go-countries) - Lightweight lookup over ISO-3166 codes. -* [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-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. -* [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. -* [go-lock](https://github.com/viney-shih/go-lock) - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation. -* [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. -* [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. -* [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. -* [go-safe](https://github.com/kenkyu392/go-safe) - Panic-safe sandbox. -* [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. -* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. -* [go-type](https://github.com/mikekonan/go-types) - Library providing Go types for store/validation and transfer of ISO-4217, ISO-3166, and other types. -* [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. -* [goctx](https://github.com/zerosnake0/goctx) - Get your context value with high performance. -* [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. -* [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. -* [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. -* [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. -* [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. -* [goreadability](https://github.com/philipjkim/goreadability) - Webpage summary extractor using Facebook Open Graph and arc90's readability. -* [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. -* [goseaweedfs](https://github.com/linxGnu/goseaweedfs) - SeaweedFS client library with almost full features. -* [gostrutils](https://github.com/ik5/gostrutils) - Collections of string manipulation and conversion functions. -* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. -* [goval](https://github.com/maja42/goval) - Evaluate arbitrary expressions in Go. -* [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. -* [grofer](https://github.com/pesos/grofer) - A system and resource monitoring tool written in Golang! -* [gubrak](https://github.com/novalagung/gubrak) - Golang utility library with syntactic sugar. It's like lodash, but for golang. -* [handy](https://github.com/miguelpragier/handy) - Many utilities and helpers like string handlers/formatters and validators. -* [hostctl](https://github.com/guumaster/hostctl) - A CLI tool to manage /etc/hosts with easy commands. -* [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. -* [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. -* [intrinsic](https://github.com/mengzhuo/intrinsic) - Use x86 SIMD without writing any assembly code. -* [jsend](https://github.com/clevergo/jsend) - JSend's implementation writen in Go. -* [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. -* [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. -* [lets-go](https://github.com/aplescia-chwy/lets-go) - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities. -* [limiters](https://github.com/mennanov/limiters) - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks. -* [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go. -* [mani](https://github.com/alajmo/mani) - CLI tool to help you manage multiple repositories. -* [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. -* [mimemagic](https://github.com/zRedShift/mimemagic) - Pure Go ultra performant MIME sniffing library/utility. -* [mimesniffer](https://github.com/aofei/mimesniffer) - A MIME type sniffer for Go. -* [mimetype](https://github.com/gabriel-vasile/mimetype) - Package for MIME type detection based on magic numbers. -* [minify](https://github.com/tdewolff/minify) - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats. -* [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). -* [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. -* [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels. -* [mongo-go-pagination](https://github.com/gobeam/mongo-go-pagination) - Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines. -* [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. -* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. -* [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. -* [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. -* [nfdump](https://github.com/chrispassas/nfdump) - Read nfdump netflow files. -* [nostromo](https://github.com/pokanop/nostromo) - CLI for building powerful aliases. -* [okrun](https://github.com/xta/okrun) - go run error steamroller. -* [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. -* [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. -* [pattern-match](https://github.com/alexpantyukhin/go-pattern-match) - Pattern matching libray. -* [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool. -* [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. -* [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. -* [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. -* [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. -* [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. -* [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. -* [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. -* [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. -* [rest-go](https://github.com/edermanoel94/rest-go) - A package that provide many helpful methods for working with rest api. -* [retry](https://github.com/kamilsk/retry) - The most advanced functional mechanism to perform actions repetitively until successful. -* [retry](https://github.com/percolate/retry) - A simple but highly configurable retry package for Go. -* [retry](https://github.com/thedevsaddam/retry) - Simple and easy retry mechanism package for Go. -* [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. -* [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. -* [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. -* [rospo](https://github.com/ferama/rospo) - Simple and reliable ssh tunnels with embedded ssh server in Golang. -* [scan](https://github.com/blockloop/scan) - Scan golang `sql.Rows` directly to structs, slices, or primitive types. -* [scany](https://github.com/georgysavva/scany) - Library for scanning data from a database into Go structs and more. -* [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. -* [set](https://github.com/nofeaturesonlybugs/set) - Performant and flexible struct mapping and loose type conversion. -* [shutdown](https://github.com/ztrue/shutdown) - App shutdown hooks for `os.Signal` handling. -* [silk](https://github.com/chrispassas/silk) - Read silk netflow files. -* [slice](https://github.com/psampaz/slice) - Type-safe functions for common Go slice operations. -* [sliceconv](https://github.com/Henry-Sarabia/sliceconv) - Slice conversion between primitive types. -* [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. -* [sorty](https://github.com/jfcg/sorty) - Fast Concurrent / Parallel Sorting. -* [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package. -* [sshman](https://github.com/shoobyban/sshman) - SSH Manager for authorized_keys files on multiple remote servers. -* [statiks](https://github.com/janiltonmaciel/statiks) - Fast, zero-configuration, static HTTP filer server. -* [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. -* [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. -* [throttle](https://github.com/yudppp/throttle) - Throttle is an object that will perform exactly one action per duration. -* [tik](https://github.com/andy2046/tik) - Simple and easy timing wheel package for Go. -* [tome](https://github.com/cyruzin/tome) - Tome was designed to paginate simple RESTful APIs. -* [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, ...). -* [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. +_General utilities and tools to make your life easier._ + +- [apm](https://github.com/topfreegames/apm) - Process manager for Golang applications with an HTTP API. +- [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. +- [beyond](https://github.com/wesovilabs/beyond) - The Go tool that will drive you to the AOP world! +- [blank](https://github.com/Henry-Sarabia/blank) - Verify or remove blanks and whitespace from strings. +- [bleep](https://github.com/sinhashubham95/bleep) - Perform any number of actions on any set of OS signals in Go. +- [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. +- [changie](https://github.com/miniscruff/changie) - Automated changelog tool for preparing releases with lots of customization options. +- [chyle](https://github.com/antham/chyle) - Changelog generator using a git repository with multiple configuration possibilities. +- [circuit](https://github.com/cep21/circuit) - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. +- [circuitbreaker](https://github.com/rubyist/circuitbreaker) - Circuit Breakers in Go. +- [clipboard](https://github.com/golang-design/clipboard) - 📋 cross-platform clipboard package in Go. +- [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. +- [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. +- [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. +- [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. +- [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. +- [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. +- [create-go-app](https://github.com/create-go-app/cli) - A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command. +- [cryptgo](https://github.com/Gituser143/cryptgo) - Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time! +- [ctop](https://github.com/bcicen/ctop) - [Top-like](https://ctop.sh) interface (e.g. htop) for container metrics. +- [ctxutil](https://github.com/posener/ctxutil) - A collection of utility functions for contexts. +- [cvt](https://github.com/shockerli/cvt) - Easy and safe convert any value to another type. +- [dbt](https://github.com/nikogura/dbt) - A framework for running self-updating signed binaries from a central, trusted repository. +- [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. +- [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. +- [delve](https://github.com/derekparker/delve) - Go debugger. +- [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. +- [equalizer](https://github.com/reugn/equalizer) - Quota manager and rate limiter collection for Go. +- [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. +- [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. +- [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. +- [filter](https://github.com/gookit/filter) - provide filtering, sanitizing, and conversion of Go data. +- [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. +- [ghokin](https://github.com/antham/ghokin) - Parallelized formatter with no external dependencies for gherkin (cucumber, behat...). +- [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git. +- [go-actuator](https://github.com/sinhashubham95/go-actuator) - Production ready features for Go based web frameworks. +- [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-bsdiff](https://github.com/gabstv/go-bsdiff) - Pure Go bsdiff and bspatch libraries and CLI tools. +- [go-clip](https://github.com/prashantgupta24/go-clip) - A minimalistic clipboard manager for Mac. +- [go-convert](https://github.com/Eun/go-convert) - Package go-convert enables you to convert a value into another type. +- [go-countries](https://github.com/mikekonan/go-countries) - Lightweight lookup over ISO-3166 codes. +- [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-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. +- [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. +- [go-lock](https://github.com/viney-shih/go-lock) - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation. +- [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. +- [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. +- [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. +- [go-safe](https://github.com/kenkyu392/go-safe) - Panic-safe sandbox. +- [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. +- [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. +- [go-type](https://github.com/mikekonan/go-types) - Library providing Go types for store/validation and transfer of ISO-4217, ISO-3166, and other types. +- [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. +- [goctx](https://github.com/zerosnake0/goctx) - Get your context value with high performance. +- [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. +- [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. +- [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. +- [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. +- [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. +- [goreadability](https://github.com/philipjkim/goreadability) - Webpage summary extractor using Facebook Open Graph and arc90's readability. +- [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. +- [goseaweedfs](https://github.com/linxGnu/goseaweedfs) - SeaweedFS client library with almost full features. +- [gostrutils](https://github.com/ik5/gostrutils) - Collections of string manipulation and conversion functions. +- [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. +- [goval](https://github.com/maja42/goval) - Evaluate arbitrary expressions in Go. +- [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. +- [grofer](https://github.com/pesos/grofer) - A system and resource monitoring tool written in Golang! +- [gubrak](https://github.com/novalagung/gubrak) - Golang utility library with syntactic sugar. It's like lodash, but for golang. +- [handy](https://github.com/miguelpragier/handy) - Many utilities and helpers like string handlers/formatters and validators. +- [hostctl](https://github.com/guumaster/hostctl) - A CLI tool to manage /etc/hosts with easy commands. +- [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. +- [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. +- [intrinsic](https://github.com/mengzhuo/intrinsic) - Use x86 SIMD without writing any assembly code. +- [jsend](https://github.com/clevergo/jsend) - JSend's implementation writen in Go. +- [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. +- [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. +- [lets-go](https://github.com/aplescia-chwy/lets-go) - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities. +- [limiters](https://github.com/mennanov/limiters) - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks. +- [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go. +- [mani](https://github.com/alajmo/mani) - CLI tool to help you manage multiple repositories. +- [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. +- [mimemagic](https://github.com/zRedShift/mimemagic) - Pure Go ultra performant MIME sniffing library/utility. +- [mimesniffer](https://github.com/aofei/mimesniffer) - A MIME type sniffer for Go. +- [mimetype](https://github.com/gabriel-vasile/mimetype) - Package for MIME type detection based on magic numbers. +- [minify](https://github.com/tdewolff/minify) - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats. +- [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). +- [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. +- [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels. +- [mongo-go-pagination](https://github.com/gobeam/mongo-go-pagination) - Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines. +- [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. +- [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. +- [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. +- [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. +- [nfdump](https://github.com/chrispassas/nfdump) - Read nfdump netflow files. +- [nostromo](https://github.com/pokanop/nostromo) - CLI for building powerful aliases. +- [okrun](https://github.com/xta/okrun) - go run error steamroller. +- [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. +- [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. +- [pattern-match](https://github.com/alexpantyukhin/go-pattern-match) - Pattern matching libray. +- [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool. +- [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. +- [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. +- [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. +- [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. +- [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. +- [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. +- [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. +- [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. +- [rest-go](https://github.com/edermanoel94/rest-go) - A package that provide many helpful methods for working with rest api. +- [retry](https://github.com/kamilsk/retry) - The most advanced functional mechanism to perform actions repetitively until successful. +- [retry](https://github.com/percolate/retry) - A simple but highly configurable retry package for Go. +- [retry](https://github.com/thedevsaddam/retry) - Simple and easy retry mechanism package for Go. +- [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. +- [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. +- [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. +- [rospo](https://github.com/ferama/rospo) - Simple and reliable ssh tunnels with embedded ssh server in Golang. +- [scan](https://github.com/blockloop/scan) - Scan golang `sql.Rows` directly to structs, slices, or primitive types. +- [scany](https://github.com/georgysavva/scany) - Library for scanning data from a database into Go structs and more. +- [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. +- [set](https://github.com/nofeaturesonlybugs/set) - Performant and flexible struct mapping and loose type conversion. +- [shutdown](https://github.com/ztrue/shutdown) - App shutdown hooks for `os.Signal` handling. +- [silk](https://github.com/chrispassas/silk) - Read silk netflow files. +- [slice](https://github.com/psampaz/slice) - Type-safe functions for common Go slice operations. +- [sliceconv](https://github.com/Henry-Sarabia/sliceconv) - Slice conversion between primitive types. +- [slicer](https://github.com/leaanthony/slicer) - Makes working with slices easier. +- [sorty](https://github.com/jfcg/sorty) - Fast Concurrent / Parallel Sorting. +- [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package. +- [sshman](https://github.com/shoobyban/sshman) - SSH Manager for authorized_keys files on multiple remote servers. +- [statiks](https://github.com/janiltonmaciel/statiks) - Fast, zero-configuration, static HTTP filer server. +- [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. +- [structs](https://github.com/PumpkinSeed/structs) - Implement simple functions to manipulate structs. +- [throttle](https://github.com/yudppp/throttle) - Throttle is an object that will perform exactly one action per duration. +- [tik](https://github.com/andy2046/tik) - Simple and easy timing wheel package for Go. +- [tome](https://github.com/cyruzin/tome) - Tome was designed to paginate simple RESTful APIs. +- [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, ...). +- [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. **[⬆ back to top](#contents)** ## UUID -*Libraries for working with UUIDs.* +_Libraries for working with UUIDs._ -* [goflake](https://github.com/hart87/GoFlake) - A small, scalable, & serverless unique ID generator for use in distributed systems. Inspired by Twitters Snowflake. -* [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. -* [gouid](https://github.com/twharmon/gouid) - Generate cryptographically secure random string IDs with just one allocation. -* [nanoid](https://github.com/aidarkhanov/nanoid) - A tiny and efficient Go unique string ID generator. -* [sno](https://github.com/muyo/sno) - Compact, sortable and fast unique IDs with embedded metadata. -* [ulid](https://github.com/oklog/ulid) - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier). -* [uniq](https://gitlab.com/skilstak/code/go/uniq) - No hassle safe, fast unique identifiers with commands. -* [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. -* [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. -* [uuid](https://github.com/google/uuid) - Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. -* [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. -* [xid](https://github.com/rs/xid) - Xid is a globally unique id generator library, ready to be safely used directly in your server code. +- [goflake](https://github.com/hart87/GoFlake) - A small, scalable, & serverless unique ID generator for use in distributed systems. Inspired by Twitters Snowflake. +- [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. +- [gouid](https://github.com/twharmon/gouid) - Generate cryptographically secure random string IDs with just one allocation. +- [nanoid](https://github.com/aidarkhanov/nanoid) - A tiny and efficient Go unique string ID generator. +- [sno](https://github.com/muyo/sno) - Compact, sortable and fast unique IDs with embedded metadata. +- [ulid](https://github.com/oklog/ulid) - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier). +- [uniq](https://gitlab.com/skilstak/code/go/uniq) - No hassle safe, fast unique identifiers with commands. +- [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. +- [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. +- [uuid](https://github.com/google/uuid) - Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. +- [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. +- [xid](https://github.com/rs/xid) - Xid is a globally unique id generator library, ready to be safely used directly in your server code. **[⬆ back to top](#contents)** ## Validation -*Libraries for validation.* +_Libraries for validation._ -* [checkdigit](https://github.com/osamingo/checkdigit) - Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators (ISBN, EAN, JAN, UPC, etc.). -* [gody](https://github.com/guiferpa/gody) - :balloon: A lightweight struct validator for Go. -* [govalid](https://github.com/twharmon/govalid) - Fast, tag-based validation for structs. -* [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. -* [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. -* [jio](https://github.com/faceair/jio) - jio is a json schema validator similar to [joi](https://github.com/hapijs/joi). -* [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. -* [terraform-validator](https://github.com/thazelart/terraform-validator) - A norms and conventions validator for Terraform. -* [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. -* [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications. -* [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. +- [checkdigit](https://github.com/osamingo/checkdigit) - Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators (ISBN, EAN, JAN, UPC, etc.). +- [gody](https://github.com/guiferpa/gody) - :balloon: A lightweight struct validator for Go. +- [govalid](https://github.com/twharmon/govalid) - Fast, tag-based validation for structs. +- [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. +- [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. +- [jio](https://github.com/faceair/jio) - jio is a json schema validator similar to [joi](https://github.com/hapijs/joi). +- [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. +- [terraform-validator](https://github.com/thazelart/terraform-validator) - A norms and conventions validator for Terraform. +- [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. +- [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications. +- [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. **[⬆ back to top](#contents)** ## Version Control -*Libraries for version control.* +_Libraries for version control._ -* [froggit-go](https://github.com/jfrog/froggit-go) - Froggit-Go is a Go library, allowing to perform actions on VCS providers. -* [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. -* [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. -* [githooks](https://github.com/gabyx/githooks) - Per-repo and shared Git hooks with version control and auto update. -* [glab](https://github.com/profclems/glab) - An open-source GitLab command line tool bringing GitLab's cool features to your command line. -* [go-git](https://github.com/go-git/go-git) - highly extensible Git implementation in pure Go. -* [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. -* [hercules](https://github.com/src-d/hercules) - gaining advanced insights from Git repository history. -* [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. +- [froggit-go](https://github.com/jfrog/froggit-go) - Froggit-Go is a Go library, allowing to perform actions on VCS providers. +- [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. +- [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. +- [githooks](https://github.com/gabyx/githooks) - Per-repo and shared Git hooks with version control and auto update. +- [glab](https://github.com/profclems/glab) - An open-source GitLab command line tool bringing GitLab's cool features to your command line. +- [go-git](https://github.com/go-git/go-git) - highly extensible Git implementation in pure Go. +- [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. +- [hercules](https://github.com/src-d/hercules) - gaining advanced insights from Git repository history. +- [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. **[⬆ back to top](#contents)** ## Video -*Libraries for manipulating video.* +_Libraries for manipulating video._ -* [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. -* [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). -* [go-astits](https://github.com/asticode/go-astits) - Parse and demux MPEG Transport Streams (.ts) natively in GO. -* [go-m3u8](https://github.com/quangngotan95/go-m3u8) - Parser and generator library for Apple m3u8 playlists. -* [go-mpd](https://github.com/unki2aut/go-mpd) - Parser and generator library for MPEG-DASH manifest files. -* [goav](https://github.com/giorgisio/goav) - Comprehensive Go bindings for FFmpeg. -* [gortsplib](https://github.com/aler9/gortsplib) - Pure Go RTSP server and client library. -* [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. -* [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. -* [libvlc-go](https://github.com/adrg/libvlc-go) - Go bindings for libvlc 2.X/3.X/4.X (used by the VLC media player). -* [m3u8](https://github.com/grafov/m3u8) - Parser and generator library of M3U8 playlists for Apple HLS. -* [v4l](https://github.com/korandiz/v4l) - Video capture library for Linux, written in Go. +- [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. +- [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). +- [go-astits](https://github.com/asticode/go-astits) - Parse and demux MPEG Transport Streams (.ts) natively in GO. +- [go-m3u8](https://github.com/quangngotan95/go-m3u8) - Parser and generator library for Apple m3u8 playlists. +- [go-mpd](https://github.com/unki2aut/go-mpd) - Parser and generator library for MPEG-DASH manifest files. +- [goav](https://github.com/giorgisio/goav) - Comprehensive Go bindings for FFmpeg. +- [gortsplib](https://github.com/aler9/gortsplib) - Pure Go RTSP server and client library. +- [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. +- [libgosubs](https://github.com/wargarblgarbl/libgosubs) - Subtitle format support for go. Supports .srt, .ttml, and .ass. +- [libvlc-go](https://github.com/adrg/libvlc-go) - Go bindings for libvlc 2.X/3.X/4.X (used by the VLC media player). +- [m3u8](https://github.com/grafov/m3u8) - Parser and generator library of M3U8 playlists for Apple HLS. +- [v4l](https://github.com/korandiz/v4l) - Video capture library for Linux, written in Go. **[⬆ back to top](#contents)** ## Web Frameworks -*Full stack web frameworks.* - -* [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go. -* [Aero](https://github.com/aerogo/aero) - High-performance web framework for Go, reaches top scores in Lighthouse. -* [Air](https://github.com/aofei/air) - An ideally refined web framework for Go. -* [appy](https://github.com/appist/appy) - An opinionated productive web framework that helps scaling business easier. -* [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. -* [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. -* [Buffalo](https://gobuffalo.io) - Bringing the productivity of Rails to Go! -* [Confetti Framework](https://www.confetti-framework.com) - Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go. -* [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. -* [Fiber](https://github.com/gofiber/fiber) - An Express.js inspired web framework build on Fasthttp. -* [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. -* [Flamingo](https://github.com/i-love-flamingo/flamingo) - Framework for pluggable web projects. Including a concept for modules and offering features for DI, Configareas, i18n, template engines, graphql, observability, security, events, routing & reverse routing etc. -* [Flamingo Commerce](https://github.com/i-love-flamingo/flamingo-commerce) - Providing e-commerce features using clean architecture like DDD and ports and adapters, that you can use to build flexible e-commerce applications. -* [Gearbox](https://github.com/abahmed/gearbox) - A web framework written in Go with a focus on high performance and memory optimization. -* [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. -* [Ginrpc](https://github.com/xxjwxc/ginrpc) - Gin parameter automatic binding tool,gin rpc tools. -* [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. -* [go-json-rest](https://github.com/ant0ine/go-json-rest) - Quick and easy way to setup a RESTful JSON API. -* [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. -* [Goa](https://github.com/goadesign/goa) - Goa provides a holistic approach for developing remote APIs and microservices in Go. -* [goa](https://github.com/goa-go/goa) - goa is just like koajs for golang, it is a flexible, light, high-performance and extensible web framework based on middleware. -* [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. -* [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. -* [GoTuna](https://github.com/gotuna/gotuna) - Minimalistic web framework for Go with mux router, middlewares, sessions, templates, embedded views and static files. -* [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. -* [Goyave](https://github.com/go-goyave/goyave) - Feature-complete REST API framework aimed at clean code and fast development, with powerful built-in functionalities. -* [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. -* [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. -* [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. -* [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. -* [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. -* [REST Layer](https://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. -* [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. -* [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. -* [rk-boot](https://github.com/rookie-ninja/rk-boot) - A bootstrapper library for building enterprise go microservice with Gin and gRPC quickly and easily. -* [rux](https://github.com/gookit/rux) - Simple and fast web framework for build golang HTTP 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. -* [uAdmin](https://github.com/uadmin/uadmin) - Fully featured web framework for Golang, inspired by Django. -* [utron](https://github.com/gernest/utron) - Lightweight MVC framework for Go(Golang). -* [vox](https://github.com/aisk/vox) - A golang web framework for humans, inspired by Koa heavily. -* [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc). -* [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. +_Full stack web frameworks._ + +- [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go. +- [Aero](https://github.com/aerogo/aero) - High-performance web framework for Go, reaches top scores in Lighthouse. +- [Air](https://github.com/aofei/air) - An ideally refined web framework for Go. +- [appy](https://github.com/appist/appy) - An opinionated productive web framework that helps scaling business easier. +- [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. +- [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. +- [Buffalo](https://gobuffalo.io) - Bringing the productivity of Rails to Go! +- [Confetti Framework](https://www.confetti-framework.com) - Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go. +- [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. +- [Fiber](https://github.com/gofiber/fiber) - An Express.js inspired web framework build on Fasthttp. +- [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. +- [Flamingo](https://github.com/i-love-flamingo/flamingo) - Framework for pluggable web projects. Including a concept for modules and offering features for DI, Configareas, i18n, template engines, graphql, observability, security, events, routing & reverse routing etc. +- [Flamingo Commerce](https://github.com/i-love-flamingo/flamingo-commerce) - Providing e-commerce features using clean architecture like DDD and ports and adapters, that you can use to build flexible e-commerce applications. +- [Gearbox](https://github.com/abahmed/gearbox) - A web framework written in Go with a focus on high performance and memory optimization. +- [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. +- [Ginrpc](https://github.com/xxjwxc/ginrpc) - Gin parameter automatic binding tool,gin rpc tools. +- [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. +- [go-json-rest](https://github.com/ant0ine/go-json-rest) - Quick and easy way to setup a RESTful JSON API. +- [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. +- [Goa](https://github.com/goadesign/goa) - Goa provides a holistic approach for developing remote APIs and microservices in Go. +- [goa](https://github.com/goa-go/goa) - goa is just like koajs for golang, it is a flexible, light, high-performance and extensible web framework based on middleware. +- [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. +- [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. +- [GoTuna](https://github.com/gotuna/gotuna) - Minimalistic web framework for Go with mux router, middlewares, sessions, templates, embedded views and static files. +- [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. +- [Goyave](https://github.com/go-goyave/goyave) - Feature-complete REST API framework aimed at clean code and fast development, with powerful built-in functionalities. +- [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. +- [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. +- [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. +- [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. +- [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. +- [REST Layer](https://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. +- [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. +- [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. +- [rk-boot](https://github.com/rookie-ninja/rk-boot) - A bootstrapper library for building enterprise go microservice with Gin and gRPC quickly and easily. +- [rux](https://github.com/gookit/rux) - Simple and fast web framework for build golang HTTP 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. +- [uAdmin](https://github.com/uadmin/uadmin) - Fully featured web framework for Golang, inspired by Django. +- [utron](https://github.com/gernest/utron) - Lightweight MVC framework for Go(Golang). +- [vox](https://github.com/aisk/vox) - A golang web framework for humans, inspired by Koa heavily. +- [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc). +- [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. **[⬆ back to top](#contents)** @@ -2573,396 +2571,390 @@ _**Unofficial** set of patterns for structuring projects._ #### Actual middlewares -* [client-timing](https://github.com/posener/client-timing) - An HTTP client for Server-Timing header. -* [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API. -* [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. -* [go-fault](https://github.com/github/go-fault) - Fault injection middleware for Go. -* [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. -* [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. -* [ln-paywall](https://github.com/philippgille/ln-paywall) - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin). -* [mid](https://github.com/bobg/mid) - Miscellaneous HTTP middleware features: idiomatic error return from handlers; receive/respond with JSON data; request tracing; and more. -* [rk-gin](https://github.com/rookie-ninja/rk-gin) - Middleware for Gin framework with logging, metrics, auth, tracing etc. -* [rk-grpc](https://github.com/rookie-ninja/rk-grpc) - Middleware for gRPC with logging, metrics, auth, tracing etc. -* [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. -* [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. +- [client-timing](https://github.com/posener/client-timing) - An HTTP client for Server-Timing header. +- [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API. +- [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. +- [go-fault](https://github.com/github/go-fault) - Fault injection middleware for Go. +- [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. +- [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go. +- [ln-paywall](https://github.com/philippgille/ln-paywall) - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin). +- [mid](https://github.com/bobg/mid) - Miscellaneous HTTP middleware features: idiomatic error return from handlers; receive/respond with JSON data; request tracing; and more. +- [rk-gin](https://github.com/rookie-ninja/rk-gin) - Middleware for Gin framework with logging, metrics, auth, tracing etc. +- [rk-grpc](https://github.com/rookie-ninja/rk-grpc) - Middleware for gRPC with logging, metrics, auth, tracing etc. +- [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. +- [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. #### Libraries for creating HTTP middlewares -* [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. -* [catena](https://github.com/codemodus/catena) - http.Handler wrapper catenation (same API as "chain"). -* [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). -* [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. -* [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs. -* [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang. -* [mediary](https://github.com/HereMobilityDevelopers/mediary) - add interceptors to `http.Client` to allow dumping/shaping/tracing/... of requests/responses. -* [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. -* [renderer](https://github.com/thedevsaddam/renderer) - Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go. -* [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. +- [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. +- [catena](https://github.com/codemodus/catena) - http.Handler wrapper catenation (same API as "chain"). +- [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). +- [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. +- [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs. +- [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang. +- [mediary](https://github.com/HereMobilityDevelopers/mediary) - add interceptors to `http.Client` to allow dumping/shaping/tracing/... of requests/responses. +- [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. +- [renderer](https://github.com/thedevsaddam/renderer) - Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go. +- [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. **[⬆ back to top](#contents)** ### Routers -* [alien](https://github.com/gernest/alien) - Lightweight and fast http router from outer space. -* [bellt](https://github.com/GuilhermeCaruso/bellt) - A simple Go HTTP router. -* [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. -* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - High performance router forked from `httprouter`. The first router fit for `fasthttp`. -* [FastRouter](https://github.com/razonyang/fastrouter) - a fast, flexible HTTP router written in Go. -* [gocraft/web](https://github.com/gocraft/web) - Mux and middleware package in Go. -* [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. -* [goroute](https://github.com/goroute/route) - Simple yet powerful HTTP request multiplexer. -* [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. -* [gowww/router](https://github.com/gowww/router) - Lightning fast HTTP router fully compatible with the net/http.Handler interface. -* [httprouter](https://github.com/julienschmidt/httprouter) - High performance router. Use this and the standard http handlers to form a very high performance web framework. -* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. -* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. -* [mux](https://github.com/gorilla/mux) - Powerful URL router and dispatcher for golang. -* [ngamux](https://github.com/ngamux/ngamux) - Simple HTTP router for Go. -* [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. -* [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. -* [violetear](https://github.com/nbari/violetear) - Go HTTP router. -* [xmux](https://github.com/rs/xmux) - High performance muxer based on `httprouter` with `net/context` support. -* [xujiajun/gorouter](https://github.com/xujiajun/gorouter) - A simple and fast HTTP router for Go. +- [alien](https://github.com/gernest/alien) - Lightweight and fast http router from outer space. +- [bellt](https://github.com/GuilhermeCaruso/bellt) - A simple Go HTTP router. +- [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. +- [fasthttprouter](https://github.com/buaazp/fasthttprouter) - High performance router forked from `httprouter`. The first router fit for `fasthttp`. +- [FastRouter](https://github.com/razonyang/fastrouter) - a fast, flexible HTTP router written in Go. +- [gocraft/web](https://github.com/gocraft/web) - Mux and middleware package in Go. +- [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. +- [goroute](https://github.com/goroute/route) - Simple yet powerful HTTP request multiplexer. +- [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. +- [gowww/router](https://github.com/gowww/router) - Lightning fast HTTP router fully compatible with the net/http.Handler interface. +- [httprouter](https://github.com/julienschmidt/httprouter) - High performance router. Use this and the standard http handlers to form a very high performance web framework. +- [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. +- [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. +- [mux](https://github.com/gorilla/mux) - Powerful URL router and dispatcher for golang. +- [ngamux](https://github.com/ngamux/ngamux) - Simple HTTP router for Go. +- [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. +- [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. +- [violetear](https://github.com/nbari/violetear) - Go HTTP router. +- [xmux](https://github.com/rs/xmux) - High performance muxer based on `httprouter` with `net/context` support. +- [xujiajun/gorouter](https://github.com/xujiajun/gorouter) - A simple and fast HTTP router for Go. **[⬆ back to top](#contents)** ## WebAssembly -* [dom](https://github.com/dennwc/dom) - DOM library. -* [go-canvas](https://github.com/markfarnan/go-canvas) - Library to use HTML5 Canvas, with all drawing within go code. -* [tinygo](https://github.com/tinygo-org/tinygo) - Go compiler for small places. Microcontrollers, WebAssembly, and command-line tools. Based on LLVM. -* [vert](https://github.com/norunners/vert) - Interop between Go and JS values. -* [wasmbrowsertest](https://github.com/agnivade/wasmbrowsertest) - Run Go WASM tests in your browser. -* [webapi](https://github.com/gowebapi/webapi) - Bindings for DOM and HTML generated from WebIDL. +- [dom](https://github.com/dennwc/dom) - DOM library. +- [go-canvas](https://github.com/markfarnan/go-canvas) - Library to use HTML5 Canvas, with all drawing within go code. +- [tinygo](https://github.com/tinygo-org/tinygo) - Go compiler for small places. Microcontrollers, WebAssembly, and command-line tools. Based on LLVM. +- [vert](https://github.com/norunners/vert) - Interop between Go and JS values. +- [wasmbrowsertest](https://github.com/agnivade/wasmbrowsertest) - Run Go WASM tests in your browser. +- [webapi](https://github.com/gowebapi/webapi) - Bindings for DOM and HTML generated from WebIDL. **[⬆ back to top](#contents)** ## Windows -* [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9. -* [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. -* [gosddl](https://github.com/MonaxGT/gosddl) - Converter from SDDL-string to user-friendly JSON. SDDL consist of four part: Owner, Primary Group, DACL, SACL. +- [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9. +- [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. +- [gosddl](https://github.com/MonaxGT/gosddl) - Converter from SDDL-string to user-friendly JSON. SDDL consist of four part: Owner, Primary Group, DACL, SACL. **[⬆ back to top](#contents)** ## XML -*Libraries and tools for manipulating XML.* +_Libraries and tools for manipulating XML._ -* [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. -* [xml2map](https://github.com/sbabiv/xml2map) - XML to MAP converter written Golang. -* [xmlwriter](https://github.com/shabbyrobe/xmlwriter) - Procedural XML generation API based on libxml2's xmlwriter module. -* [xpath](https://github.com/antchfx/xpath) - XPath package for Go. -* [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. -* [zek](https://github.com/miku/zek) - Generate a Go struct from XML. +- [XML-Comp](https://github.com/xml-comp/xml-comp) - Simple command line XML comparer that generates diffs of folders, files and tags. +- [xml2map](https://github.com/sbabiv/xml2map) - XML to MAP converter written Golang. +- [xmlwriter](https://github.com/shabbyrobe/xmlwriter) - Procedural XML generation API based on libxml2's xmlwriter module. +- [xpath](https://github.com/antchfx/xpath) - XPath package for Go. +- [xquery](https://github.com/antchfx/xquery) - XQuery lets you extract data from HTML/XML documents using XPath expression. +- [zek](https://github.com/miku/zek) - Generate a Go struct from XML. ## Zero Trust -*Libraries and tools to implement Zero Trust architectures.* - -* [Cosign](https://github.com/sigstore/cosign) - Container Signing, Verification and Storage in an OCI registry. -* [in-toto](https://github.com/in-toto/in-toto-golang) - Go implementation of the in-toto (provides a framework to protect the integrity of the software supply chain) python reference implementation. -* [Spiffe-Vault](https://github.com/philips-labs/spiffe-vault) - Utilizes Spiffe JWT authentication with Hashicorp Vault for secretless authentication. -* [Spire](https://github.com/spiffe/spire) - SPIRE (the SPIFFE Runtime Environment) is a toolchain of APIs for establishing trust between software systems across a wide variety of hosting platforms. - -# Tools +_Libraries and tools to implement Zero Trust architectures._ -*Go software and plugins.* - -**[⬆ back to top](#contents)** +- [Cosign](https://github.com/sigstore/cosign) - Container Signing, Verification and Storage in an OCI registry. +- [in-toto](https://github.com/in-toto/in-toto-golang) - Go implementation of the in-toto (provides a framework to protect the integrity of the software supply chain) python reference implementation. +- [Spiffe-Vault](https://github.com/philips-labs/spiffe-vault) - Utilizes Spiffe JWT authentication with Hashicorp Vault for secretless authentication. +- [Spire](https://github.com/spiffe/spire) - SPIRE (the SPIFFE Runtime Environment) is a toolchain of APIs for establishing trust between software systems across a wide variety of hosting platforms. ## Code Analysis -* [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. -* [ChainJacking](https://github.com/Checkmarx/chainjacking) - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack. -* [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. -* [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. -* [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. -* [go-checkstyle](https://github.com/qiniu/checkstyle) - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style referred to some points in Go Code Review Comments. -* [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects. -* [go-critic](https://github.com/go-critic/go-critic) - source code linter that brings checks that are currently not implemented in other linters. -* [go-mod-outdated](https://github.com/psampaz/go-mod-outdated) - An easy way to find outdated dependencies of your Go projects. -* [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. -* [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. -* [GoCover.io](https://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. -* [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. -* [golang-ifood-sdk](https://github.com/arxdsilva/golang-ifood-sdk) - iFood API SDK. -* [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. -* [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. -* [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. -* [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. -* [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. -* [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. -* [lint](https://github.com/surullabs/lint) - Run linters as part of go test. -* [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. -* [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#. -* [tarp](https://github.com/verygoodsoftwarenotvirus/tarp) - tarp finds functions and methods without direct unit tests in Go source code. -* [tickgit](https://github.com/augmentable-dev/tickgit) - CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`to identify the author. -* [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. -* [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. -* [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. +- [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. +- [ChainJacking](https://github.com/Checkmarx/chainjacking) - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack. +- [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. +- [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. +- [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. +- [go-checkstyle](https://github.com/qiniu/checkstyle) - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style referred to some points in Go Code Review Comments. +- [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects. +- [go-critic](https://github.com/go-critic/go-critic) - source code linter that brings checks that are currently not implemented in other linters. +- [go-mod-outdated](https://github.com/psampaz/go-mod-outdated) - An easy way to find outdated dependencies of your Go projects. +- [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. +- [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. +- [GoCover.io](https://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. +- [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. +- [golang-ifood-sdk](https://github.com/arxdsilva/golang-ifood-sdk) - iFood API SDK. +- [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. +- [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. +- [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. +- [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. +- [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. +- [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. +- [lint](https://github.com/surullabs/lint) - Run linters as part of go test. +- [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. +- [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#. +- [tarp](https://github.com/verygoodsoftwarenotvirus/tarp) - tarp finds functions and methods without direct unit tests in Go source code. +- [tickgit](https://github.com/augmentable-dev/tickgit) - CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`to identify the author. +- [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. +- [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. +- [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. **[⬆ back to top](#contents)** ## Editor Plugins -* [coc-go language server extension for Vim/Neovim](https://github.com/josa42/coc-go) - This plugin adds [gopls](https://github.com/golang/tools/blob/master/gopls/README.md) features to Vim/Neovim. -* [Go Doc](https://github.com/msyrus/vscode-go-doc) - A Visual Studio Code extension for showing definition in output and generating go doc. -* [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs. -* [go-language-server](https://github.com/theia-ide/go-language-server) - A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol. -* [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. -* [gocode](https://github.com/nsf/gocode) - Autocompletion daemon for the Go programming language. -* [goimports-reviser](https://github.com/incu6us/goimports-reviser) - Formatting tool for imports. -* [goprofiling](https://marketplace.visualstudio.com/items?itemName=MaxMedia.go-prof) - This extension adds benchmark profiling support for the Go language to VS Code. -* [GoSublime](https://github.com/DisposaBoy/GoSublime) - Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features. -* [gounit-vim](https://github.com/hexdigest/gounit-vim) - Vim plugin for generating Go tests based on the function's or method's signature. -* [theia-go-extension](https://github.com/theia-ide/theia-go-extension) - Go language support for the Theia IDE. -* [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - Vim plugin to highlight syntax errors on save. -* [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. -* [vscode-go](https://github.com/golang/vscode-go) - Extension for Visual Studio Code (VS Code) which provides support for the Go language. -* [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. +- [coc-go language server extension for Vim/Neovim](https://github.com/josa42/coc-go) - This plugin adds [gopls](https://github.com/golang/tools/blob/master/gopls/README.md) features to Vim/Neovim. +- [Go Doc](https://github.com/msyrus/vscode-go-doc) - A Visual Studio Code extension for showing definition in output and generating go doc. +- [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs. +- [go-language-server](https://github.com/theia-ide/go-language-server) - A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol. +- [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. +- [gocode](https://github.com/nsf/gocode) - Autocompletion daemon for the Go programming language. +- [goimports-reviser](https://github.com/incu6us/goimports-reviser) - Formatting tool for imports. +- [goprofiling](https://marketplace.visualstudio.com/items?itemName=MaxMedia.go-prof) - This extension adds benchmark profiling support for the Go language to VS Code. +- [GoSublime](https://github.com/DisposaBoy/GoSublime) - Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features. +- [gounit-vim](https://github.com/hexdigest/gounit-vim) - Vim plugin for generating Go tests based on the function's or method's signature. +- [theia-go-extension](https://github.com/theia-ide/theia-go-extension) - Go language support for the Theia IDE. +- [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - Vim plugin to highlight syntax errors on save. +- [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. +- [vscode-go](https://github.com/golang/vscode-go) - Extension for Visual Studio Code (VS Code) which provides support for the Go language. +- [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. **[⬆ back to top](#contents)** ## Go Generate Tools -* [generic](https://github.com/usk81/generic) - flexible data type for Go. -* [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. -* [gocontracts](https://github.com/Parquery/gocontracts) - brings design-by-contract to Go by synchronizing the code with the documentation. -* [godal](https://github.com/mafulong/godal) - Generate orm models corresponding to golang by specifying sql ddl file, which can be used by gorm. -* [gonerics](https://github.com/bouk/gonerics) - Idiomatic Generics in Go. -* [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. -* [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. -* [hasgo](https://github.com/DylanMeeus/hasgo) - Generate Haskell inspired functions for your slices. -* [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. -* [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly. -* [xgen](https://github.com/xuri/xgen) - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator. +- [generic](https://github.com/usk81/generic) - flexible data type for Go. +- [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. +- [gocontracts](https://github.com/Parquery/gocontracts) - brings design-by-contract to Go by synchronizing the code with the documentation. +- [godal](https://github.com/mafulong/godal) - Generate orm models corresponding to golang by specifying sql ddl file, which can be used by gorm. +- [gonerics](https://github.com/bouk/gonerics) - Idiomatic Generics in Go. +- [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. +- [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. +- [hasgo](https://github.com/DylanMeeus/hasgo) - Generate Haskell inspired functions for your slices. +- [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. +- [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly. +- [xgen](https://github.com/xuri/xgen) - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator. **[⬆ back to top](#contents)** ## Go Tools -* [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. -* [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. -* [docs](https://github.com/go-oas/docs) - Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard. -* [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](https://yeoman.io) generator to get new Go projects started. -* [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. -* [go-james](https://github.com/pieterclaerhout/go-james) - Go project skeleton creator, builds and tests your projects without the manual setup. -* [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. -* [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. -* [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. -* [gomodrun](https://github.com/dustinblackman/gomodrun/) - Go tool that executes and caches binaries included in go.mod files. -* [gothanks](https://github.com/psampaz/gothanks) - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. -* [igo](https://github.com/rocketlaunchr/igo) - An igo to go transpiler (new language features for Go language!) -* [modver](https://github.com/bobg/modver) - Compare two versions of a Go module to check the version-number change required (major, minor, or patchlevel), according to [semver](https://semver.org/) rules. -* [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. -* [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. -* [roumon](https://github.com/becheran/roumon) - Monitor current state of all active goroutines via a command line interface. -* [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. -* [typex](https://github.com/dtgorski/typex) - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration. +- [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. +- [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. +- [docs](https://github.com/go-oas/docs) - Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard. +- [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](https://yeoman.io) generator to get new Go projects started. +- [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. +- [go-james](https://github.com/pieterclaerhout/go-james) - Go project skeleton creator, builds and tests your projects without the manual setup. +- [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. +- [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. +- [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. +- [gomodrun](https://github.com/dustinblackman/gomodrun/) - Go tool that executes and caches binaries included in go.mod files. +- [gothanks](https://github.com/psampaz/gothanks) - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. +- [igo](https://github.com/rocketlaunchr/igo) - An igo to go transpiler (new language features for Go language!) +- [modver](https://github.com/bobg/modver) - Compare two versions of a Go module to check the version-number change required (major, minor, or patchlevel), according to [semver](https://semver.org/) rules. +- [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. +- [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. +- [roumon](https://github.com/becheran/roumon) - Monitor current state of all active goroutines via a command line interface. +- [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. +- [typex](https://github.com/dtgorski/typex) - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration. **[⬆ back to top](#contents)** ## Software Packages -*Software written in Go.* +_Software written in Go._ **[⬆ back to top](#contents)** ### DevOps Tools -* [abbreviate](https://github.com/dnnrly/abbreviate) - abbreviate is a tool turning long strings in to shorter ones with configurable seperaters, for example to embed branch names in to deployment stack IDs. -* [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. -* [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. -* [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. -* [Balerter](https://github.com/balerter/balerter) - A self-hosted script-based alerting manager. -* [Blast](https://github.com/dave/blast) - A simple tool for API load testing and batch jobs. -* [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. -* [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. -* [cassowary](https://github.com/rogerwelin/cassowary) - Modern cross-platform HTTP load-testing tool written in Go. -* [Ddosify](https://github.com/ddosify/ddosify) - High-performance load testing tool, written in Golang. -* [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. -* [docker-go-mingw](https://github.com/x1unix/docker-go-mingw) - Docker image for building Go binaries for Windows with MinGW toolchain. -* [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. -* [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). -* [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. -* [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. -* [Dropship](https://github.com/chrismckenzie/dropship) - Tool for deploying code via cdn. -* [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. -* [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts. -* [gaia](https://github.com/gaia-pipeline/gaia) - Build powerful pipelines in any programming language. -* [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Gitea, and Bitbucket. -* [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. -* [gitea-github-migrator](https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator) - Migrate all your GitHub repositories, issues, milestones and labels to your Gitea instance. -* [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. -* [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. -* [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. -* [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. -* [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. -* [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. -* [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application. -* [httpref](https://github.com/dnnrly/httpref) - httpref is a handy CLI reference for HTTP methods, status codes, headers, and TCP and UDP ports. -* [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. -* [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. -* [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. -* [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way. -* [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. -* [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly. -* [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. -* [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. -* [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. -* [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. -* [Pewpew](https://github.com/bengadbois/pewpew) - Flexible HTTP command line stress tester. -* [Pomerium](https://github.com/pomerium/pomerium) - Pomerium is an identity-aware access proxy. -* [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. -* [s3-proxy](https://github.com/oxyno-zeta/s3-proxy) - S3 Proxy with GET, PUT and DELETE methods and authentication (OpenID Connect and Basic Auth). -* [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. -* [s5cmd](https://github.com/peak/s5cmd) - Blazing fast S3 and local filesystem execution tool. -* [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). -* [script](https://github.com/bitfield/script) - Making it easy to write shell-like scripts in Go for DevOps and system administration tasks. -* [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the response code and data between each call for specific server stress based on its previous response. -* [skm](https://github.com/TimothyYe/skm) - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! -* [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. -* [terraform-provider-openapi](https://github.com/dikhan/terraform-provider-openapi) - Terraform provider plugin that dynamically configures itself at runtime based on an OpenAPI document (formerly known as swagger file) containing the definitions of the APIs exposed. -* [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. -* [trubka](https://github.com/xitonix/trubka) - A CLI tool to manage and troubleshoot Apache Kafka clusters with the ability of generically publishing/consuming protocol buffer and plain text events to/from Kafka. -* [uTask](https://github.com/ovh/utask) - Automation engine that models and executes business processes declared in yaml. -* [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. +- [abbreviate](https://github.com/dnnrly/abbreviate) - abbreviate is a tool turning long strings in to shorter ones with configurable seperaters, for example to embed branch names in to deployment stack IDs. +- [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. +- [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. +- [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. +- [Balerter](https://github.com/balerter/balerter) - A self-hosted script-based alerting manager. +- [Blast](https://github.com/dave/blast) - A simple tool for API load testing and batch jobs. +- [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool. +- [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. +- [cassowary](https://github.com/rogerwelin/cassowary) - Modern cross-platform HTTP load-testing tool written in Go. +- [Ddosify](https://github.com/ddosify/ddosify) - High-performance load testing tool, written in Golang. +- [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. +- [docker-go-mingw](https://github.com/x1unix/docker-go-mingw) - Docker image for building Go binaries for Windows with MinGW toolchain. +- [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. +- [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). +- [drone-jenkins](https://github.com/appleboy/drone-jenkins) - Trigger downstream Jenkins jobs using a binary, docker or Drone CI. +- [drone-scp](https://github.com/appleboy/drone-scp) - Copy files and artifacts via SSH using a binary, docker or Drone CI. +- [Dropship](https://github.com/chrismckenzie/dropship) - Tool for deploying code via cdn. +- [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. +- [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts. +- [gaia](https://github.com/gaia-pipeline/gaia) - Build powerful pipelines in any programming language. +- [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Gitea, and Bitbucket. +- [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. +- [gitea-github-migrator](https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator) - Migrate all your GitHub repositories, issues, milestones and labels to your Gitea instance. +- [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. +- [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. +- [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. +- [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. +- [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. +- [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. +- [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application. +- [httpref](https://github.com/dnnrly/httpref) - httpref is a handy CLI reference for HTTP methods, status codes, headers, and TCP and UDP ports. +- [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. +- [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. +- [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. +- [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way. +- [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. +- [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly. +- [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. +- [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. +- [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. +- [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. +- [Pewpew](https://github.com/bengadbois/pewpew) - Flexible HTTP command line stress tester. +- [Pomerium](https://github.com/pomerium/pomerium) - Pomerium is an identity-aware access proxy. +- [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. +- [s3-proxy](https://github.com/oxyno-zeta/s3-proxy) - S3 Proxy with GET, PUT and DELETE methods and authentication (OpenID Connect and Basic Auth). +- [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. +- [s5cmd](https://github.com/peak/s5cmd) - Blazing fast S3 and local filesystem execution tool. +- [Scaleway-cli](https://github.com/scaleway/scaleway-cli) - Manage BareMetal Servers from Command Line (as easily as with Docker). +- [script](https://github.com/bitfield/script) - Making it easy to write shell-like scripts in Go for DevOps and system administration tasks. +- [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the response code and data between each call for specific server stress based on its previous response. +- [skm](https://github.com/TimothyYe/skm) - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! +- [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. +- [terraform-provider-openapi](https://github.com/dikhan/terraform-provider-openapi) - Terraform provider plugin that dynamically configures itself at runtime based on an OpenAPI document (formerly known as swagger file) containing the definitions of the APIs exposed. +- [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. +- [trubka](https://github.com/xitonix/trubka) - A CLI tool to manage and troubleshoot Apache Kafka clusters with the ability of generically publishing/consuming protocol buffer and plain text events to/from Kafka. +- [uTask](https://github.com/ovh/utask) - Automation engine that models and executes business processes declared in yaml. +- [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. **[⬆ back to top](#contents)** ### Other Software -* [Better Go Playground](https://goplay.tools) - Go playground with syntax highlight, code completion and other features. -* [blocky](https://github.com/0xERR0R/blocky) - Fast and lightweight DNS proxy as ad-blocker for local network with many features. -* [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. -* [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. -* [crawley](https://github.com/s0rg/crawley) - Web scraper/crawler for cli. -* [croc](https://github.com/schollz/croc) - Easily and securely send files or folders from one computer to another. -* [Docker](https://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. -* [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. -* [dp](https://github.com/scryinfo/dp) - Through SDK for data exchange with blockchain, developers can get easy access to DAPP development. -* [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. -* [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. -* [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. -* [gfile](https://github.com/Antonito/gfile) - Securely transfer files between two computers, without any third party, over WebRTC. -* [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. -* [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. -* [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. -* [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. -* [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. -* [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. -* [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. -* [Guora](https://github.com/meloalright/guora) - A self-hosted Quora like web application written in Go. -* [hoofli](https://github.com/dnnrly/hoofli) - Generate PlantUML diagrams from Chrome or Firefox network inspections. -* [hugo](https://gohugo.io/) - Fast and Modern Static Website Engine. -* [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. -* [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. -* [joincap](https://github.com/assafmo/joincap) - Command-line utility for merging multiple pcap files together. -* [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. -* [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms. -* [lgo](https://github.com/yunabe/lgo) - Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility. -* [limetext](https://limetext.github.io) - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. -* [LiteIDE](https://github.com/visualfc/liteide) - LiteIDE is a simple, open source, cross-platform Go IDE. -* [mockingjay](https://github.com/quii/mockingjay-server) - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. -* [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. -* [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go. -* [Neo-cowsay](https://github.com/Code-Hex/Neo-cowsay) - 🐮 cowsay is reborn. for a New Era. -* [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. -* [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. -* [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. -* [Plik](https://github.com/root-gg/plik) - Plik is a temporary file upload system (Wetransfer like) in Go. -* [protoncheck](https://github.com/servusdei2018/protoncheck) - ProtonMail module for waybar/polybar/yabar/i3blocks. -* [restic](https://github.com/restic/restic) - De-duplicating backup program. -* [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. -* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. -* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). -* [snap](https://github.com/intelsdi-x/snap) - Powerful telemetry framework. -* [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. -* [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. -* [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. -* [tcpdog](https://github.com/mehrdadrad/tcpdog) - eBPF based TCP observability. -* [tcpprobe](https://github.com/mehrdadrad/tcpprobe) - TCP tool for network performance and path monitoring, including socket statistics. -* [term-quiz](https://github.com/crazcalm/term-quiz) - Quizzes for your terminal. -* [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. -* [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. -* [vaku](https://github.com/lingrino/vaku) - CLI & API for folder-based functions in Vault like copy, move, and search. -* [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. -* [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). -* [woke](https://github.com/get-woke/woke) - Detect non-inclusive language in your source code. +- [Better Go Playground](https://goplay.tools) - Go playground with syntax highlight, code completion and other features. +- [blocky](https://github.com/0xERR0R/blocky) - Fast and lightweight DNS proxy as ad-blocker for local network with many features. +- [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. +- [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. +- [crawley](https://github.com/s0rg/crawley) - Web scraper/crawler for cli. +- [croc](https://github.com/schollz/croc) - Easily and securely send files or folders from one computer to another. +- [Docker](https://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. +- [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. +- [dp](https://github.com/scryinfo/dp) - Through SDK for data exchange with blockchain, developers can get easy access to DAPP development. +- [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. +- [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. +- [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. +- [gfile](https://github.com/Antonito/gfile) - Securely transfer files between two computers, without any third party, over WebRTC. +- [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. +- [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. +- [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. +- [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. +- [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. +- [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. +- [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. +- [Guora](https://github.com/meloalright/guora) - A self-hosted Quora like web application written in Go. +- [hoofli](https://github.com/dnnrly/hoofli) - Generate PlantUML diagrams from Chrome or Firefox network inspections. +- [hugo](https://gohugo.io/) - Fast and Modern Static Website Engine. +- [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. +- [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. +- [joincap](https://github.com/assafmo/joincap) - Command-line utility for merging multiple pcap files together. +- [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. +- [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms. +- [lgo](https://github.com/yunabe/lgo) - Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility. +- [limetext](https://limetext.github.io) - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text. +- [LiteIDE](https://github.com/visualfc/liteide) - LiteIDE is a simple, open source, cross-platform Go IDE. +- [mockingjay](https://github.com/quii/mockingjay-server) - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. +- [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go. +- [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go. +- [Neo-cowsay](https://github.com/Code-Hex/Neo-cowsay) - 🐮 cowsay is reborn. for a New Era. +- [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go. +- [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. +- [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. +- [Plik](https://github.com/root-gg/plik) - Plik is a temporary file upload system (Wetransfer like) in Go. +- [protoncheck](https://github.com/servusdei2018/protoncheck) - ProtonMail module for waybar/polybar/yabar/i3blocks. +- [restic](https://github.com/restic/restic) - De-duplicating backup program. +- [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. +- [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. +- [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). +- [snap](https://github.com/intelsdi-x/snap) - Powerful telemetry framework. +- [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. +- [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. +- [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. +- [tcpdog](https://github.com/mehrdadrad/tcpdog) - eBPF based TCP observability. +- [tcpprobe](https://github.com/mehrdadrad/tcpprobe) - TCP tool for network performance and path monitoring, including socket statistics. +- [term-quiz](https://github.com/crazcalm/term-quiz) - Quizzes for your terminal. +- [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. +- [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. +- [vaku](https://github.com/lingrino/vaku) - CLI & API for folder-based functions in Vault like copy, move, and search. +- [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. +- [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). +- [woke](https://github.com/get-woke/woke) - Detect non-inclusive language in your source code. **[⬆ back to top](#contents)** # Resources -*Where to discover new Go libraries.* +_Where to discover new Go libraries._ **[⬆ back to top](#contents)** ## Benchmarks -* [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. -* [go-benchmark-app](https://github.com/mrLSD/go-benchmark-app) - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results. -* [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. -* [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. -* [go-json-benchmark](https://github.com/zerosnake0/go-json-benchmark) - Go JSON benchmark. -* [go-ml-benchmarks](https://github.com/nikolaydubina/go-ml-benchmarks) - benchmarks for machine learning inference in Go. -* [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. -* [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. -* [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. -* [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - Collection of benchmarks for popular Go database/SQL utilities. -* [gospeed](https://github.com/feyeleanor/GoSpeed) - Go micro-benchmarks for calculating the speed of language constructs. -* [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. -* [skynet](https://github.com/atemerev/skynet) - Skynet 1M threads microbenchmark. -* [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. +- [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. +- [go-benchmark-app](https://github.com/mrLSD/go-benchmark-app) - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results. +- [go-benchmarks](https://github.com/tylertreat/go-benchmarks) - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. +- [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. +- [go-json-benchmark](https://github.com/zerosnake0/go-json-benchmark) - Go JSON benchmark. +- [go-ml-benchmarks](https://github.com/nikolaydubina/go-ml-benchmarks) - benchmarks for machine learning inference in Go. +- [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. +- [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. +- [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. +- [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - Collection of benchmarks for popular Go database/SQL utilities. +- [gospeed](https://github.com/feyeleanor/GoSpeed) - Go micro-benchmarks for calculating the speed of language constructs. +- [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. +- [skynet](https://github.com/atemerev/skynet) - Skynet 1M threads microbenchmark. +- [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. **[⬆ back to top](#contents)** ## Conferences -* [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA. -* [dotGo](https://www.dotgo.eu) - Paris, France. -* [GoCon](https://gocon.connpass.com/) - Tokyo, Japan. -* [GoDays](https://www.godays.io/) - Berlin, Germany. -* [GoLab](https://golab.io/) - Florence, Italy. -* [GopherChina](https://gopherchina.org) - Shanghai, China. -* [GopherCon](https://www.gophercon.com/) - Denver, USA. -* [GopherCon Australia](https://gophercon.com.au/) - Sydney, Australia. -* [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, Brazil. -* [GopherCon Europe](https://gophercon.is/) - Berlin, Germany. -* [GopherCon India](https://www.gophercon.in/) - Pune, India. -* [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel. -* [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia. -* [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore. -* [GopherCon UK](https://www.gophercon.co.uk/) - London, UK. -* [GopherCon Vietnam](https://gophercon.vn/) - Ho Chi Minh City, Vietnam. -* [GoWayFest](https://goway.io/) - Minsk, Belarus. -* [GoWest Conference](https://www.gowestconf.com/) - Lehi, USA. +- [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA. +- [dotGo](https://www.dotgo.eu) - Paris, France. +- [GoCon](https://gocon.connpass.com/) - Tokyo, Japan. +- [GoDays](https://www.godays.io/) - Berlin, Germany. +- [GoLab](https://golab.io/) - Florence, Italy. +- [GopherChina](https://gopherchina.org) - Shanghai, China. +- [GopherCon](https://www.gophercon.com/) - Denver, USA. +- [GopherCon Australia](https://gophercon.com.au/) - Sydney, Australia. +- [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, Brazil. +- [GopherCon Europe](https://gophercon.is/) - Berlin, Germany. +- [GopherCon India](https://www.gophercon.in/) - Pune, India. +- [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel. +- [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia. +- [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore. +- [GopherCon UK](https://www.gophercon.co.uk/) - London, UK. +- [GopherCon Vietnam](https://gophercon.vn/) - Ho Chi Minh City, Vietnam. +- [GoWayFest](https://goway.io/) - Minsk, Belarus. +- [GoWest Conference](https://www.gowestconf.com/) - Lehi, USA. **[⬆ back to top](#contents)** @@ -2970,116 +2962,116 @@ _**Unofficial** set of patterns for structuring projects._ ### E-books for purchase -* [100 Go Mistakes: How to Avoid Them](https://www.manning.com/books/100-go-mistakes-how-to-avoid-them) -* [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) -* [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. -* [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. -* [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) - A guide to writing command-line tools in Go. -* [Writing A Compiler In Go](https://compilerbook.com) -* [Writing An Interpreter In Go](https://interpreterbook.com) - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. +- [100 Go Mistakes: How to Avoid Them](https://www.manning.com/books/100-go-mistakes-how-to-avoid-them) +- [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) +- [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. +- [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. +- [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) - A guide to writing command-line tools in Go. +- [Writing A Compiler In Go](https://compilerbook.com) +- [Writing An Interpreter In Go](https://interpreterbook.com) - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. ### Free e-books -* [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) -* [An Introduction to Programming in Go](http://www.golang-book.com/) -* [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) -* [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) -* [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. -* [Go Bootcamp](http://golangbootcamp.com) -* [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. -* [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. -* [How To Code in Go eBook](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) - A 600 page introduction to Go aimed at first time developers. -* [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) -* [Network Programming With Go](https://jan.newmarch.name/go/) -* [Practical Go Lessons](https://www.practical-go-lessons.com/) -* [Spaceship Go A Journey to the Standard Library](https://blasrodri.github.io/spaceship-go-gh-pages/) -* [The Go Programming Language](https://www.gopl.io/) -* [The Golang Standard Library by Example (Chinese)](https://github.com/polaris1119/The-Golang-Standard-Library-by-Example) -* [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) +- [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) +- [An Introduction to Programming in Go](http://www.golang-book.com/) +- [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) +- [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) +- [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. +- [Go Bootcamp](http://golangbootcamp.com) +- [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. +- [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. +- [How To Code in Go eBook](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) - A 600 page introduction to Go aimed at first time developers. +- [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) +- [Network Programming With Go](https://jan.newmarch.name/go/) +- [Practical Go Lessons](https://www.practical-go-lessons.com/) +- [Spaceship Go A Journey to the Standard Library](https://blasrodri.github.io/spaceship-go-gh-pages/) +- [The Go Programming Language](https://www.gopl.io/) +- [The Golang Standard Library by Example (Chinese)](https://github.com/polaris1119/The-Golang-Standard-Library-by-Example) +- [Web Application with Go the Anti-Textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) **[⬆ back to top](#contents)** ## Gophers -* [Free Gophers Pack](https://github.com/MariaLetta/free-gophers-pack) - Gopher graphics pack by Maria Letta with illustrations and emotional characters in vector and raster. -* [Go-gopher-Vector](https://github.com/keygx/Go-gopher-Vector) - Go gopher Vector Data [.ai, .svg]. -* [gopher-logos](https://github.com/GolangUA/gopher-logos) - adorable gopher logos. -* [gopher-stickers](https://github.com/tenntenn/gopher-stickers) -* [gophericons](https://github.com/shalakhin/gophericons) -* [gopherize.me](https://github.com/matryer/gopherize.me) - Gopherize yourself. -* [gophers](https://github.com/ashleymcnamara/gophers) - Gopher artworks by Ashley McNamara. -* [gophers](https://github.com/egonelbre/gophers) - Free gophers. -* [gophers](https://github.com/rogeralsing/gophers) - random gopher graphics. -* [gophers](https://github.com/sillecelik/go-gopher) - Gopher amigurumi toy pattern. -* [gophers](https://github.com/scraly/gophers) - Gophers by Aurélie Vache. +- [Free Gophers Pack](https://github.com/MariaLetta/free-gophers-pack) - Gopher graphics pack by Maria Letta with illustrations and emotional characters in vector and raster. +- [Go-gopher-Vector](https://github.com/keygx/Go-gopher-Vector) - Go gopher Vector Data [.ai, .svg]. +- [gopher-logos](https://github.com/GolangUA/gopher-logos) - adorable gopher logos. +- [gopher-stickers](https://github.com/tenntenn/gopher-stickers) +- [gophericons](https://github.com/shalakhin/gophericons) +- [gopherize.me](https://github.com/matryer/gopherize.me) - Gopherize yourself. +- [gophers](https://github.com/ashleymcnamara/gophers) - Gopher artworks by Ashley McNamara. +- [gophers](https://github.com/egonelbre/gophers) - Free gophers. +- [gophers](https://github.com/rogeralsing/gophers) - random gopher graphics. +- [gophers](https://github.com/sillecelik/go-gopher) - Gopher amigurumi toy pattern. +- [gophers](https://github.com/scraly/gophers) - Gophers by Aurélie Vache. **[⬆ back to top](#contents)** ## Meetups -* [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) -* [Belfast Gophers](https://www.meetup.com/Belfast-Gophers/) -* [Belgrade Golang Meetup](https://www.meetup.com/golang-serbia/) -* [Berlin Golang](https://www.meetup.com/golang-users-berlin/) -* [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) -* [Canberra Gophers](https://www.meetup.com/Canberra-Gophers/) -* [Go Language NYC](https://www.meetup.com/golanguagenewyork/) -* [Go London User Group](https://www.meetup.com/Go-London-User-Group/) -* [Go Remote Meetup](https://www.meetup.com/Go-Remote-Meetup/) -* [Go Toronto](https://www.meetup.com/go-toronto/) -* [Go User Group Atlanta](https://www.meetup.com/Go-Users-Group-Atlanta/) -* [GoBandung](https://www.meetup.com/GoBandung/) -* [GoBridge, San Francisco, CA](https://www.meetup.com/gobridge/) -* [GoCracow - Krakow, Poland](https://www.meetup.com/GoCracow/) -* [GoJakarta](https://www.meetup.com/GoJakarta/) -* [Golang Amsterdam](https://www.meetup.com/golang-amsterdam/) -* [Golang Argentina](https://www.meetup.com/Golang-Argentina/) -* [Golang Athens](https://www.meetup.com/Athens-Gophers/) -* [Golang Baltimore, MD](https://www.meetup.com/BaltimoreGolang/) -* [Golang Bangalore](https://www.meetup.com/Golang-Bangalore/) -* [Golang Belo Horizonte - Brazil](https://www.meetup.com/go-belo-horizonte/) -* [Golang Boston](https://www.meetup.com/bostongo/) -* [Golang Bulgaria](https://www.meetup.com/Golang-Bulgaria/) -* [Golang Cardiff, UK](https://www.meetup.com/Cardiff-Go-Meetup/) -* [Golang Copenhagen](https://www.meetup.com/Go-Cph/) -* [Golang Curitiba - Brazil](https://www.meetup.com/GolangCWB/) -* [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) -* [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) -* [Golang Estonia](https://www.meetup.com/Golang-Estonia/) -* [Golang Gurgaon, India](https://www.meetup.com/Gurgaon-Go-Meetup/) -* [Golang Hamburg - Germany](https://www.meetup.com/Go-User-Group-Hamburg/) -* [Golang Israel](https://www.meetup.com/Go-Israel/) -* [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) -* [Golang Kathmandu](https://www.meetup.com/Golang-Kathmandu/) -* [Golang Korea](https://www.meetup.com/GDG-Golang-Korea/) -* [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) -* [Golang Lyon](https://www.meetup.com/Golang-Lyon/) -* [Golang Marseille](https://www.meetup.com/fr-FR/Golang-Marseille/) -* [Golang Melbourne](https://www.meetup.com/golang-mel/) -* [Golang Mountain View](https://www.meetup.com/Golang-Mountain-View/) -* [Golang New York](https://www.meetup.com/nycgolang/) -* [Golang North East](https://www.meetup.com/en-AU/Golang-North-East/) -* [Golang Paris](https://www.meetup.com/Golang-Paris/) -* [Golang Poland](https://www.meetup.com/Golang-Poland/) -* [Golang Pune](https://www.meetup.com/Golang-Pune/) -* [Golang Singapore](https://www.meetup.com/golangsg/) -* [Golang Stockholm](https://www.meetup.com/Go-Stockholm/) -* [Golang Sydney, AU](https://www.meetup.com/golang-syd/) -* [Golang São Paulo - Brazil](https://www.meetup.com/golangbr/) -* [Golang Taipei](https://www.meetup.com/golang-taipei-meetup/) -* [Golang Thessaloniki](https://www.meetup.com/thessaloniki-golang-meetup/) -* [Golang Turkey](https://kommunity.com/goturkiye) -* [Golang Vancouver, BC](https://www.meetup.com/golangvan/) -* [Golang Vienna, Austria](https://www.meetup.com/viennago/) -* [Golang Казань](https://www.meetup.com/GolangKazan/) -* [Golang Москва](https://www.meetup.com/Golang-Moscow/) -* [Golang Питер](https://www.meetup.com/Golang-Peter/) -* [GoSF - San Francisco, CA](https://www.meetup.com/golangsf) -* [Istanbul Golang](https://www.meetup.com/Istanbul-Golang/) -* [Seattle Go Programmers](https://www.meetup.com/golang/) -* [Ukrainian Golang User Groups](https://www.meetup.com/uagolang/) -* [Utah Go User Group](https://www.meetup.com/utahgophers/) -* [Women Who Go - San Francisco, CA](https://www.meetup.com/Women-Who-Go/) +- [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) +- [Belfast Gophers](https://www.meetup.com/Belfast-Gophers/) +- [Belgrade Golang Meetup](https://www.meetup.com/golang-serbia/) +- [Berlin Golang](https://www.meetup.com/golang-users-berlin/) +- [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) +- [Canberra Gophers](https://www.meetup.com/Canberra-Gophers/) +- [Go Language NYC](https://www.meetup.com/golanguagenewyork/) +- [Go London User Group](https://www.meetup.com/Go-London-User-Group/) +- [Go Remote Meetup](https://www.meetup.com/Go-Remote-Meetup/) +- [Go Toronto](https://www.meetup.com/go-toronto/) +- [Go User Group Atlanta](https://www.meetup.com/Go-Users-Group-Atlanta/) +- [GoBandung](https://www.meetup.com/GoBandung/) +- [GoBridge, San Francisco, CA](https://www.meetup.com/gobridge/) +- [GoCracow - Krakow, Poland](https://www.meetup.com/GoCracow/) +- [GoJakarta](https://www.meetup.com/GoJakarta/) +- [Golang Amsterdam](https://www.meetup.com/golang-amsterdam/) +- [Golang Argentina](https://www.meetup.com/Golang-Argentina/) +- [Golang Athens](https://www.meetup.com/Athens-Gophers/) +- [Golang Baltimore, MD](https://www.meetup.com/BaltimoreGolang/) +- [Golang Bangalore](https://www.meetup.com/Golang-Bangalore/) +- [Golang Belo Horizonte - Brazil](https://www.meetup.com/go-belo-horizonte/) +- [Golang Boston](https://www.meetup.com/bostongo/) +- [Golang Bulgaria](https://www.meetup.com/Golang-Bulgaria/) +- [Golang Cardiff, UK](https://www.meetup.com/Cardiff-Go-Meetup/) +- [Golang Copenhagen](https://www.meetup.com/Go-Cph/) +- [Golang Curitiba - Brazil](https://www.meetup.com/GolangCWB/) +- [Golang DC, Arlington, VA](https://www.meetup.com/Golang-DC/) +- [Golang Dorset, UK](https://www.meetup.com/golang-dorset/) +- [Golang Estonia](https://www.meetup.com/Golang-Estonia/) +- [Golang Gurgaon, India](https://www.meetup.com/Gurgaon-Go-Meetup/) +- [Golang Hamburg - Germany](https://www.meetup.com/Go-User-Group-Hamburg/) +- [Golang Israel](https://www.meetup.com/Go-Israel/) +- [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) +- [Golang Kathmandu](https://www.meetup.com/Golang-Kathmandu/) +- [Golang Korea](https://www.meetup.com/GDG-Golang-Korea/) +- [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) +- [Golang Lyon](https://www.meetup.com/Golang-Lyon/) +- [Golang Marseille](https://www.meetup.com/fr-FR/Golang-Marseille/) +- [Golang Melbourne](https://www.meetup.com/golang-mel/) +- [Golang Mountain View](https://www.meetup.com/Golang-Mountain-View/) +- [Golang New York](https://www.meetup.com/nycgolang/) +- [Golang North East](https://www.meetup.com/en-AU/Golang-North-East/) +- [Golang Paris](https://www.meetup.com/Golang-Paris/) +- [Golang Poland](https://www.meetup.com/Golang-Poland/) +- [Golang Pune](https://www.meetup.com/Golang-Pune/) +- [Golang Singapore](https://www.meetup.com/golangsg/) +- [Golang Stockholm](https://www.meetup.com/Go-Stockholm/) +- [Golang Sydney, AU](https://www.meetup.com/golang-syd/) +- [Golang São Paulo - Brazil](https://www.meetup.com/golangbr/) +- [Golang Taipei](https://www.meetup.com/golang-taipei-meetup/) +- [Golang Thessaloniki](https://www.meetup.com/thessaloniki-golang-meetup/) +- [Golang Turkey](https://kommunity.com/goturkiye) +- [Golang Vancouver, BC](https://www.meetup.com/golangvan/) +- [Golang Vienna, Austria](https://www.meetup.com/viennago/) +- [Golang Казань](https://www.meetup.com/GolangKazan/) +- [Golang Москва](https://www.meetup.com/Golang-Moscow/) +- [Golang Питер](https://www.meetup.com/Golang-Peter/) +- [GoSF - San Francisco, CA](https://www.meetup.com/golangsf) +- [Istanbul Golang](https://www.meetup.com/Istanbul-Golang/) +- [Seattle Go Programmers](https://www.meetup.com/golang/) +- [Ukrainian Golang User Groups](https://www.meetup.com/uagolang/) +- [Utah Go User Group](https://www.meetup.com/utahgophers/) +- [Women Who Go - San Francisco, CA](https://www.meetup.com/Women-Who-Go/) *Add the group of your city/country here (send **PR**)* @@ -3087,119 +3079,121 @@ _**Unofficial** set of patterns for structuring projects._ ## Style Guides -* [bahlo/go-styleguide](https://github.com/bahlo/go-styleguide) -* [CockroachDB](https://github.com/cockroachdb/cockroach/blob/master/docs/style.md) -* [GitLab](https://docs.gitlab.com/ee/development/go_guide/) -* [Hyperledger](https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/style-guides/go-style.rst) -* [Magnetico](https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification) -* [Sourcegraph](https://about.sourcegraph.com/handbook/engineering/go_style_guide) -* [Thanos](https://thanos.io/tip/contributing/coding-style-guide.md/) -* [Trybe](https://github.com/betrybe/playbook-go/blob/main/README_EN.md) -* [Uber](https://github.com/uber-go/guide/blob/master/style.md) +- [bahlo/go-styleguide](https://github.com/bahlo/go-styleguide) +- [CockroachDB](https://github.com/cockroachdb/cockroach/blob/master/docs/style.md) +- [GitLab](https://docs.gitlab.com/ee/development/go_guide/) +- [Hyperledger](https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/style-guides/go-style.rst) +- [Magnetico](https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification) +- [Sourcegraph](https://about.sourcegraph.com/handbook/engineering/go_style_guide) +- [Thanos](https://thanos.io/tip/contributing/coding-style-guide.md/) +- [Trybe](https://github.com/betrybe/playbook-go/blob/main/README_EN.md) +- [Uber](https://github.com/uber-go/guide/blob/master/style.md) **[⬆ back to top](#contents)** ## Social Media + ### Twitter -* [@golang](https://twitter.com/golang) -* [@golang_news](https://twitter.com/golang_news) -* [@golangch](https://twitter.com/golangch) -* [@golangflow](https://twitter.com/golangflow) -* [@golangweekly](https://twitter.com/golangweekly) +- [@golang](https://twitter.com/golang) +- [@golang_news](https://twitter.com/golang_news) +- [@golangch](https://twitter.com/golangch) +- [@golangflow](https://twitter.com/golangflow) +- [@golangweekly](https://twitter.com/golangweekly) **[⬆ back to top](#contents)** ### Reddit - * [r/golang](https://www.reddit.com/r/golang/) + +- [r/golang](https://www.reddit.com/r/golang/) **[⬆ back to top](#contents)** ## Websites -* [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. -* [Awesome Golang Workshops](https://github.com/amit-davidson/awesome-golang-workshops) - A curated list of awesome golang workshops. -* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. -* [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. -* [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. -* [Coding Mystery](https://codingmystery.com) - Solve exciting escape-room-inspired programming challenges using Go. -* [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. -* [Go Blog](https://blog.golang.org) - The official Go blog. -* [Go Code Club](https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3) - A group of Gophers read and discuss a different Go project every week. -* [Go Community on Hashnode](https://hashnode.com/n/go) - Community of Gophers on Hashnode. -* [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. -* [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. -* [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. -* [Go Proverbs](https://go-proverbs.github.io/) - Go Proverbs by Rob Pike. -* [Go Report Card](https://goreportcard.com) - A report card for your Go package. -* [go.dev](https://go.dev/) - A hub for Go developers. -* [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. -* [godoc.org](https://godoc.org/) - Documentation for open source Go packages. -* [Golang Developer Jobs](https://golangjob.xyz) - Developer Jobs exclusivly for Golang related Roles. -* [Golang Flow](https://golangflow.io) - Post Updates, News, Packages and more. -* [Golang News](https://golangnews.com) - Links and news about Go programming. -* [Golang Resources](https://golangresources.com) - A curation of the best articles, exercises, talks and videos to learn Go. -* [golang-graphics](https://github.com/mholt/golang-graphics) - Collection of Go images, graphics, and art. -* [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. -* [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. -* [Gopher Community Chat](https://invite.slack.golangbridge.org) - Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)). -* [Gophercises](https://gophercises.com/) - Free coding exercises for budding gophers. -* [gowalker.org](https://gowalker.org) - Go Project API documentation. -* [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. -* [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). -* [Learn Go Programming](https://blog.learngoprogramming.com) - Learn Go concepts with illustrations. -* [Lille Gophers](https://lille-gophers.loscrackitos.codes/) - Golang talks community in Lille, France ([@LilleGophers](https://twitter.com/LilleGophers)). -* [Made with Golang](https://madewithgolang.com/?ref=awesome-go) -* [r/Golang](https://www.reddit.com/r/golang) - News about Go. -* [studygolang](https://studygolang.com) - The community of studygolang in China. -* [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. -* [TutorialEdge - Golang](https://tutorialedge.net/course/golang/) +- [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox. +- [Awesome Golang Workshops](https://github.com/amit-davidson/awesome-golang-workshops) - A curated list of awesome golang workshops. +- [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. +- [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. +- [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. +- [Coding Mystery](https://codingmystery.com) - Solve exciting escape-room-inspired programming challenges using Go. +- [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. +- [Go Blog](https://blog.golang.org) - The official Go blog. +- [Go Code Club](https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3) - A group of Gophers read and discuss a different Go project every week. +- [Go Community on Hashnode](https://hashnode.com/n/go) - Community of Gophers on Hashnode. +- [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. +- [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. +- [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. +- [Go Proverbs](https://go-proverbs.github.io/) - Go Proverbs by Rob Pike. +- [Go Report Card](https://goreportcard.com) - A report card for your Go package. +- [go.dev](https://go.dev/) - A hub for Go developers. +- [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. +- [godoc.org](https://godoc.org/) - Documentation for open source Go packages. +- [Golang Developer Jobs](https://golangjob.xyz) - Developer Jobs exclusivly for Golang related Roles. +- [Golang Flow](https://golangflow.io) - Post Updates, News, Packages and more. +- [Golang News](https://golangnews.com) - Links and news about Go programming. +- [Golang Resources](https://golangresources.com) - A curation of the best articles, exercises, talks and videos to learn Go. +- [golang-graphics](https://github.com/mholt/golang-graphics) - Collection of Go images, graphics, and art. +- [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. +- [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. +- [Gopher Community Chat](https://invite.slack.golangbridge.org) - Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)). +- [Gophercises](https://gophercises.com/) - Free coding exercises for budding gophers. +- [gowalker.org](https://gowalker.org) - Go Project API documentation. +- [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. +- [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). +- [Learn Go Programming](https://blog.learngoprogramming.com) - Learn Go concepts with illustrations. +- [Lille Gophers](https://lille-gophers.loscrackitos.codes/) - Golang talks community in Lille, France ([@LilleGophers](https://twitter.com/LilleGophers)). +- [Made with Golang](https://madewithgolang.com/?ref=awesome-go) +- [r/Golang](https://www.reddit.com/r/golang) - News about Go. +- [studygolang](https://studygolang.com) - The community of studygolang in China. +- [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. +- [TutorialEdge - Golang](https://tutorialedge.net/course/golang/) **[⬆ back to top](#contents)** ### Tutorials -* [50 Shades of Go](https://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs. -* [A Guide to Golang E-Commerce](https://snipcart.com/blog/golang-ecommerce-ponzu-cms-demo?utm_term=golang-ecommerce-ponzu-cms-demo) - Building a Golang site for e-commerce (demo included). -* [A Tour of Go](https://tour.golang.org/) - Interactive tour of Go. -* [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. -* [Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL](https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql) - We’ll write an API with the help of the powerful Gorilla Mux. -* [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. -* [Caching Slow Database Queries](https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9) - How to cache slow database queries. -* [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. -* [Debugged.it Go patterns](https://github.com/haveyoudebuggedit/go-patterns) - Advanced Go patterns with ready-to-run examples. -* [Design Patterns in Go](https://github.com/shubhamzanwar/design-patterns) - Collection of programming design patterns implemented in Go. -* [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. -* [Games With Go](https://gameswithgo.org/) - A video series teaching programming and game development. -* [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. -* [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. -* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. -* [Go Language Tutorial](https://www.javatpoint.com/go-tutorial) - Learn Go language Tutorial. -* [Go Playground for iOS](https://codeplayground.app) - Interactively edit & play Go snippets on your mobile device. -* [Go Tutorial](https://www.tutorialspoint.com/go/index.htm) - Learn Go programming. -* [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) -* [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services. -* [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. -* [goapp](https://github.com/bnkamalesh/goapp) - An opinionated guideline to structure & develop a Go web application/service. -* [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. -* [Golang Tutorial Guide](https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/) - A List of Free Courses to Learn the Go Programming Language. -* [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. -* [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. -* [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. -* [Gosamples](https://gosamples.dev/) - Collection of code snippets that let you solve everyday code problems. -* [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. -* [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM. -* [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. -* [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. -* [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes. -* [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. -* [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example. -* [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. -* [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. -* [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. -* [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs. -* [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) -* [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. -* [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. +- [50 Shades of Go](https://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs. +- [A Guide to Golang E-Commerce](https://snipcart.com/blog/golang-ecommerce-ponzu-cms-demo?utm_term=golang-ecommerce-ponzu-cms-demo) - Building a Golang site for e-commerce (demo included). +- [A Tour of Go](https://tour.golang.org/) - Interactive tour of Go. +- [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. +- [Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL](https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql) - We’ll write an API with the help of the powerful Gorilla Mux. +- [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. +- [Caching Slow Database Queries](https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9) - How to cache slow database queries. +- [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. +- [Debugged.it Go patterns](https://github.com/haveyoudebuggedit/go-patterns) - Advanced Go patterns with ready-to-run examples. +- [Design Patterns in Go](https://github.com/shubhamzanwar/design-patterns) - Collection of programming design patterns implemented in Go. +- [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. +- [Games With Go](https://gameswithgo.org/) - A video series teaching programming and game development. +- [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. +- [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. +- [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +- [Go Language Tutorial](https://www.javatpoint.com/go-tutorial) - Learn Go language Tutorial. +- [Go Playground for iOS](https://codeplayground.app) - Interactively edit & play Go snippets on your mobile device. +- [Go Tutorial](https://www.tutorialspoint.com/go/index.htm) - Learn Go programming. +- [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) +- [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services. +- [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. +- [goapp](https://github.com/bnkamalesh/goapp) - An opinionated guideline to structure & develop a Go web application/service. +- [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. +- [Golang Tutorial Guide](https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/) - A List of Free Courses to Learn the Go Programming Language. +- [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. +- [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. +- [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. +- [Gosamples](https://gosamples.dev/) - Collection of code snippets that let you solve everyday code problems. +- [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. +- [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM. +- [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. +- [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. +- [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes. +- [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. +- [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example. +- [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. +- [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. +- [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. +- [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs. +- [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) +- [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. +- [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. **[⬆ back to top](#contents)** diff --git a/repo_test.go b/repo_test.go index 858d35617b1..39717369fec 100644 --- a/repo_test.go +++ b/repo_test.go @@ -10,40 +10,42 @@ import ( "github.com/PuerkitoBio/goquery" ) +var ( + reContainsLink = regexp.MustCompile(`\* \[.*\]\(.*\)`) + reOnlyLink = regexp.MustCompile(`\* \[.*\]\([^()]*\)$`) + reLinkWithDescription = regexp.MustCompile(`\* \[.*\]\(.*\) - \S.*[\.\!]`) +) + func TestAlpha(t *testing.T) { query := startQuery() - - query.Find("body > ul").Each(func(_ int, s *goquery.Selection) { - testList(t, s) + query.Find("body > ul").Each(func(i int, s *goquery.Selection) { + if i != 0 { + // skip content menu + // TODO: the sub items (with 3 hash marks `###`) are staying in + // the main list, not respecting the hierarchy and making it + // impossible to test the alphabetical order + testList(t, s) + } }) } func TestDuplicatedLinks(t *testing.T) { query := startQuery() links := make(map[string]bool, 0) - query.Find("body li > a:first-child").Each(func(_ int, s *goquery.Selection) { t.Run(s.Text(), func(t *testing.T) { href, ok := s.Attr("href") if !ok { t.Error("expected to have href") } - if links[href] { t.Fatalf("duplicated link '%s'", href) } - links[href] = true }) }) } -var ( - reContainsLink = regexp.MustCompile(`\* \[.*\]\(.*\)`) - reOnlyLink = regexp.MustCompile(`\* \[.*\]\([^()]*\)$`) - reLinkWithDescription = regexp.MustCompile(`\* \[.*\]\(.*\) - \S.*[\.\!]`) -) - // Test if an entry has description, it must be separated from link with ` - ` func TestSeparator(t *testing.T) { var matched, containsLink, noDescription bool @@ -60,7 +62,6 @@ func TestSeparator(t *testing.T) { if noDescription { continue } - matched = reLinkWithDescription.MatchString(line) if !matched { t.Errorf("expected entry to be in form of `* [link] - description.`, got '%s'", line) @@ -80,10 +81,7 @@ func testList(t *testing.T, list *goquery.Selection) { testList(t, items) items.RemoveFiltered("ul") }) - - category := list.Prev().Text() - - t.Run(category, func(t *testing.T) { + t.Run(list.Prev().Text(), func(t *testing.T) { checkAlphabeticOrder(t, list) }) } @@ -92,11 +90,9 @@ func checkAlphabeticOrder(t *testing.T, s *goquery.Selection) { items := s.Find("li > a:first-child").Map(func(_ int, li *goquery.Selection) string { return strings.ToLower(li.Text()) }) - sorted := make([]string, len(items)) copy(sorted, items) sort.Strings(sorted) - for k, item := range items { if item != sorted[k] { t.Errorf("expected '%s' but actual is '%s'", sorted[k], item) From 84ffe01abbeeccb4608d54922c2e228b844ab4bf Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Feb 2022 11:34:07 -0300 Subject: [PATCH 2602/3440] Code Analysis: description Signed-off-by: Avelino --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c47b1dc9935..621b4f8715e 100644 --- a/README.md +++ b/README.md @@ -2672,6 +2672,8 @@ _Libraries and tools to implement Zero Trust architectures._ ## Code Analysis +_Source code analysis tools, also known as Static Application Security Testing (SAST) Tools._ + - [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. - [ChainJacking](https://github.com/Checkmarx/chainjacking) - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack. - [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. From 96484d084f6bf644989f56ab1a609863310daf74 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Feb 2022 11:34:30 -0300 Subject: [PATCH 2603/3440] editor plugin: description Signed-off-by: Avelino --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 621b4f8715e..eea13df3b64 100644 --- a/README.md +++ b/README.md @@ -2709,6 +2709,8 @@ _Source code analysis tools, also known as Static Application Security Testing ( ## Editor Plugins +_Plugin for text editors and IDEs._ + - [coc-go language server extension for Vim/Neovim](https://github.com/josa42/coc-go) - This plugin adds [gopls](https://github.com/golang/tools/blob/master/gopls/README.md) features to Vim/Neovim. - [Go Doc](https://github.com/msyrus/vscode-go-doc) - A Visual Studio Code extension for showing definition in output and generating go doc. - [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs. From 3160ac805513df9a6eb5f11137d1b2f160b0701e Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Feb 2022 16:03:40 -0300 Subject: [PATCH 2604/3440] use html table on sponsor space Signed-off-by: Avelino --- README.md | 79 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index eea13df3b64..ac3d86664f7 100644 --- a/README.md +++ b/README.md @@ -12,43 +12,58 @@ **Sponsorships:** -Special thanks to:

+_Special thanks to_ +
+ + + + + + + + + + + + + +
-
- Doppler -
- Quit struggling with scattered API keys and access controls. -
- Keep your secrets in sync across environments, servers, and teams with Doppler. -
-

- +
+Doppler +
+Quit struggling with scattered API keys and access controls. +
+Keep your secrets in sync across environments, servers, and teams with Doppler. +
+ +
-
- WorkOS -
- Your app, enterprise-ready. -
- Start selling to enterprise customers with just a few lines of code. -
- Add Single Sign-On (and more) in minutes instead of months. -
-

- +
+WorkOS +
+Your app, enterprise-ready. +
+Start selling to enterprise customers with just a few lines of code. +
+Add Single Sign-On (and more) in minutes instead of months. +
+ +
-
- keygen -
- A dead-simple software licensing and distribution API built for developers -
- Securely license and distribute Go applications with a single API. -
- Add auto updates with only a few lines of code. -
-

- +
+keygen +
+A dead-simple software licensing and distribution API built for developers +
+Securely license and distribute Go applications with a single API.
+Add auto updates with only a few lines of code. +
+ +
[![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) +
**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community._ From 88c4dea3947dbe38b5b6005ff270a394a31e7eb0 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Feb 2022 16:46:00 -0300 Subject: [PATCH 2605/3440] DO image/links to html tags Signed-off-by: Avelino --- README.md | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index ac3d86664f7..3a6057bb580 100644 --- a/README.md +++ b/README.md @@ -15,51 +15,40 @@ _Special thanks to_
- +
From fc36791221dc6a120f942ccb6ffc98813f4feefa Mon Sep 17 00:00:00 2001 From: rsteube Date: Sat, 5 Feb 2022 06:09:28 +0100 Subject: [PATCH 2606/3440] added carapace and carapace-bin (#4028) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3a6057bb580..661ee9f6f2a 100644 --- a/README.md +++ b/README.md @@ -334,6 +334,8 @@ _Libraries for building standard or basic Command Line applications._ - [acmd](https://github.com/cristalhq/acmd) - Simple, useful and opinionated CLI package in Go. - [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. - [argv](https://github.com/cosiner/argv) - Go library to split command line string as arguments array using the bash syntax. +- [carapace](https://github.com/rsteube/carapace) - Command argument completion generator for spf13/cobra. +- [carapace-bin](https://github.com/rsteube/carapace-bin) - Multi-shell multi-command argument completer. - [cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang struct tags. - [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. - [climax](https://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. From 2b29d29d894d210576442900920c2febb913f329 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Sat, 5 Feb 2022 17:16:39 +0300 Subject: [PATCH 2607/3440] docs(README): add openapi --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 661ee9f6f2a..86694c24afb 100644 --- a/README.md +++ b/README.md @@ -1558,6 +1558,7 @@ _These libraries were placed here because none of the other categories seemed to - [metrics](https://github.com/pascaldekloe/metrics) - Library for metrics instrumentation and Prometheus exposition. - [morse](https://github.com/alwindoss/morse) - Library to convert to and from morse code. - [numa](https://github.com/lrita/numa) - NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code. +- [openapi](https://github.com/neotoolkit/openapi) - OpenAPI 3.x parser. - [pdfgen](https://github.com/hyperboloide/pdfgen) - HTTP service to generate PDF from Json requests. - [persian](https://github.com/mavihq/persian) - Some utilities for Persian language in go. - [sandid](https://github.com/aofei/sandid) - Every grain of sand on earth has its own ID. From 233692cc544302aba298c013c5db29570a70d33e Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Sat, 5 Feb 2022 18:50:09 +0300 Subject: [PATCH 2608/3440] docs(README): rename dummy (#4031) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 86694c24afb..a8fce897f47 100644 --- a/README.md +++ b/README.md @@ -1951,13 +1951,13 @@ _Libraries and tools for binary serialization._ - [devd](https://github.com/cortesi/devd) - Local webserver for developers. - [discovery](https://github.com/Bilibili/discovery) - A registry for resilient mid-tier load balancing and failover. - [dudeldu](https://github.com/krotik/dudeldu) - A simple SHOUTcast server. +- [dummy](https://github.com/neotoolkit/dummy) - Run mock server based off an API contract with one command. - [Easegress](https://github.com/megaease/easegress) - A cloud native high availability/performance traffic orchestration system with observability and extensibility. - [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. - [Euterpe](https://github.com/ironsmile/euterpe) - Self-hosted music streaming server with built-in web UI and REST API. - [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. - [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. - [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js -- [go-dummy](https://github.com/neotoolkit/dummy) - Run mock server based off an API contract with one command. - [go-feature-flag](https://github.com/thomaspoignant/go-feature-flag) - A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. - [go-proxy-cache](https://github.com/fabiocicerchia/go-proxy-cache) - Simple Reverse Proxy with Caching, written in Go, using Redis. - [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. From f32a140d3134749dc22fef205a982ef5d809d5d6 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 8 Feb 2022 11:42:51 -0300 Subject: [PATCH 2609/3440] seo: golang indexing improvement Signed-off-by: Avelino --- tmpl/cat-tmpl.html | 6 +++--- tmpl/tmpl.html | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index 20081bf1a3c..6c5fd585b6a 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -6,9 +6,9 @@ - {{.Title}} - Awesome Go - - + {{.Title}} - Awesome Go / Golang + + diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index 0331b00fc6e..e11622df94c 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -6,8 +6,8 @@ - A curated list of awesome Go frameworks, libraries and software - Awesome Go - + A curated list of awesome Go frameworks, libraries and software - Awesome Go / Golang + From b90e2c618d682ecde7fb2a1f5d9a37143c8e417f Mon Sep 17 00:00:00 2001 From: Reindert <16726304+reindert-vetter@users.noreply.github.com> Date: Wed, 9 Feb 2022 23:29:45 +0100 Subject: [PATCH 2610/3440] Update Confetti Framework URL The framework has been moved to GitHub pages without its own domain name. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a8fce897f47..c9294e7eae7 100644 --- a/README.md +++ b/README.md @@ -2531,7 +2531,7 @@ _Full stack web frameworks._ - [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. - [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. - [Buffalo](https://gobuffalo.io) - Bringing the productivity of Rails to Go! -- [Confetti Framework](https://www.confetti-framework.com) - Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go. +- [Confetti Framework](https://confetti-framework.github.io/docs/) - Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go. - [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. - [Fiber](https://github.com/gofiber/fiber) - An Express.js inspired web framework build on Fasthttp. - [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. From 9f1663f043440c65bd149bbf33b1c8c0488212ca Mon Sep 17 00:00:00 2001 From: Timofey Koolin Date: Tue, 8 Feb 2022 18:04:18 +0300 Subject: [PATCH 2611/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c9294e7eae7..78f6d81bb97 100644 --- a/README.md +++ b/README.md @@ -2398,6 +2398,7 @@ _General utilities and tools to make your life easier._ - [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. - [nfdump](https://github.com/chrispassas/nfdump) - Read nfdump netflow files. - [nostromo](https://github.com/pokanop/nostromo) - CLI for building powerful aliases. +- [objwalker](https://github.com/rekby/objwalker) - Walk by go objects with reflection. - [okrun](https://github.com/xta/okrun) - go run error steamroller. - [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. - [onecache](https://github.com/adelowo/onecache) - Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc). From 0011181f78e46dc2870116fab7d0a8a1db3fa0ee Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 10 Feb 2022 02:29:10 -0800 Subject: [PATCH 2612/3440] Adding GoT (#4039) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 78f6d81bb97..f1caf995ede 100644 --- a/README.md +++ b/README.md @@ -1998,6 +1998,7 @@ _Libraries and tools for templating and lexing._ - [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). - [gofpdf](https://github.com/jung-kurt/gofpdf) - PDF document generator with high level support for text, drawing and images. - [gospin](https://github.com/m1/gospin) - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations. +- [got](https://github.com/goradd/got) - A Go code generator inspired by Hero and Fasttemplate. Has include files, custom tag definitions, injected Go code, language translation, and more. - [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. - [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. From 8bac76882f5b40e2c213cb9789d0c2cc0297b3e9 Mon Sep 17 00:00:00 2001 From: mikestefanello Date: Wed, 9 Feb 2022 19:44:44 -0500 Subject: [PATCH 2613/3440] Add Pagoda to the README. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f1caf995ede..4cf74a68ae2 100644 --- a/README.md +++ b/README.md @@ -1495,6 +1495,7 @@ _**Unofficial** set of patterns for structuring projects._ - [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. - [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. - [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. +- [pagoda](https://github.com/mikestefanello/pagoda) - Rapid, easy full-stack web development starter kit built in Go. - [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. - [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout. From 96ef35b1fbd2f1edbfff338b5e0251bb14ad6ff2 Mon Sep 17 00:00:00 2001 From: Marwan Hawari <59078997+marwanhawari@users.noreply.github.com> Date: Mon, 14 Feb 2022 22:44:35 -0800 Subject: [PATCH 2614/3440] add stew (#4040) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4cf74a68ae2..2cdd9785b71 100644 --- a/README.md +++ b/README.md @@ -2911,6 +2911,7 @@ _Software written in Go._ - [snap](https://github.com/intelsdi-x/snap) - Powerful telemetry framework. - [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. - [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. +- [stew](https://github.com/marwanhawari/stew) - An independent package manager for compiled binaries. - [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. - [tcpdog](https://github.com/mehrdadrad/tcpdog) - eBPF based TCP observability. - [tcpprobe](https://github.com/mehrdadrad/tcpprobe) - TCP tool for network performance and path monitoring, including socket statistics. From fcfb68335b1edacc1422da763c869095786c458e Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 15 Feb 2022 12:34:44 +0530 Subject: [PATCH 2615/3440] add mizu (#4048) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2cdd9785b71..a77b740e349 100644 --- a/README.md +++ b/README.md @@ -2832,6 +2832,7 @@ _Software written in Go._ - [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. - [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. - [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. +- [Mizu](https://github.com/up9inc/mizu) - API traffic viewer for Kubernetes enabling you to view all API communication between microservices, multiprotocol support: HTTP1.1, HTTP/2, AMQP, Kafka, Redis. - [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. From 3fe5ee8a42137edf02c21f0938f389661662b4fb Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 15 Feb 2022 13:43:37 +0530 Subject: [PATCH 2616/3440] add @phanirithvij to maintainers --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index 632b7fd62d5..da378bdaf3d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10,3 +10,4 @@ Cássio Botaro (@cassiobotaro) Jessica Temporal (@jtemporal) Ceriath (@ceriath) Andy Pan (@panjf2000) +Phani Rithvij (@phanirithvij) From 3d1e9bdf3effe1c2e14b216a9e73946647c3aaad Mon Sep 17 00:00:00 2001 From: Igor Mikushkin Date: Wed, 16 Feb 2022 11:12:33 +0400 Subject: [PATCH 2617/3440] add treemap (#4052) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a77b740e349..493c956514c 100644 --- a/README.md +++ b/README.md @@ -533,6 +533,7 @@ _Generic datastructures and algorithms in Go._ - [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. - [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. - [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. +- [treemap](https://github.com/igrmk/treemap) - Generic key-sorted map using a red-black tree under the hood. - [trie](https://github.com/derekparker/trie) - Trie implementation in Go. - [ttlcache](https://github.com/ReneKroon/ttlcache) - In-memory string-interface{} cache with various time-based expiration options and callbacks. - [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. From 5662af37530aa2ff125deac13b311cc78b88b64d Mon Sep 17 00:00:00 2001 From: valord577 <30427460+valord577@users.noreply.github.com> Date: Wed, 16 Feb 2022 20:42:42 +0800 Subject: [PATCH 2618/3440] add mailx (#3995) * add mailx library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 493c956514c..472b6180e3d 100644 --- a/README.md +++ b/README.md @@ -844,6 +844,7 @@ _Libraries and tools that implement email creation and sending._ - [mailchain](https://github.com/mailchain/mailchain) - Send encrypted emails to blockchain addresses written in Go. - [mailgun-go](https://github.com/mailgun/mailgun-go) - Go library for sending mail with the Mailgun API. - [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface. +- [mailx](https://github.com/valord577/mailx) - Mailx is a library that makes it easier to send email via SMTP. It is an enhancement of the golang standard library `net/smtp`. - [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. - [smtpmock](https://github.com/mocktools/go-smtp-mock) - Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP behaviour for your test environment. From b53cad2bce1fe5878334a756a75686062069732d Mon Sep 17 00:00:00 2001 From: Stefano Date: Mon, 14 Feb 2022 21:44:09 +0100 Subject: [PATCH 2619/3440] Add clover to "Database" Section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 472b6180e3d..5e20ebc45d0 100644 --- a/README.md +++ b/README.md @@ -553,6 +553,7 @@ _Databases implemented in Go._ - [buntdb](https://github.com/tidwall/buntdb) - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. - [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. - [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. +- [clover](https://github.com/ostafen/clover) - A lightweight document-oriented NoSQL database written in pure Golang. - [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. - [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore. - [Coffer](https://github.com/claygod/coffer) - Simple ACID key-value database that supports transactions. From 4d98e8e7cbf2feeb691bff9a79bc916a2ba3184d Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Sun, 20 Feb 2022 21:22:16 +0530 Subject: [PATCH 2620/3440] add xz (#4057) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5e20ebc45d0..ea0af64857e 100644 --- a/README.md +++ b/README.md @@ -1577,6 +1577,7 @@ _These libraries were placed here because none of the other categories seemed to - [varint](https://github.com/chmike/varint) - A faster varying length integer encoder/decoder than the one provided in the standard library. - [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go. - [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber. +- [xz](https://github.com/ulikunitz/xz) - Pure golang package for reading and writing xz-compressed files. **[⬆ back to top](#contents)** From 843c7aa1311b3305ba8c6a969093716a0a605e34 Mon Sep 17 00:00:00 2001 From: Ryan Field Date: Sun, 20 Feb 2022 18:31:41 +0100 Subject: [PATCH 2621/3440] Add Goflow (#4058) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ea0af64857e..1857426c1bd 100644 --- a/README.md +++ b/README.md @@ -1233,6 +1233,7 @@ _Libraries for scheduling jobs._ - [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. - [gocron](https://github.com/go-co-op/gocron) - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). +- [goflow](https://github.com/fieldryand/goflow) - A workflow orchestrator and scheduler for rapid prototyping of ETL/ML/AI pipelines. - [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. - [gronx](https://github.com/adhocore/gronx) - Cron expression parser, task runner and daemon consuming crontab like task list. - [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. From 2c77f5f236446cb0c902a9d2a43423184690aa43 Mon Sep 17 00:00:00 2001 From: roc Date: Wed, 16 Feb 2022 13:41:27 +0800 Subject: [PATCH 2622/3440] add req --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1857426c1bd..0dddb8e1e73 100644 --- a/README.md +++ b/README.md @@ -1716,6 +1716,7 @@ _Libraries for making HTTP requests._ - [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. - [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. - [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. +- [req](https://github.com/imroc/req) - Simple Go HTTP client with Black Magic (Less code and More efficiency). - [request](https://github.com/monaco-io/request) - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency. - [requests](https://github.com/carlmjohnson/requests) - HTTP requests for Gophers. Uses context.Context and doesn't hide the underlying net/http.Client, making it compatible with standard Go APIs. Also includes testing tools. - [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client. From 9b3b3259570c990afcc0bf24d7f7454590544252 Mon Sep 17 00:00:00 2001 From: Ggicci Date: Mon, 21 Feb 2022 19:01:10 +0800 Subject: [PATCH 2623/3440] add httpin (#4059) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0dddb8e1e73..b72ede66c45 100644 --- a/README.md +++ b/README.md @@ -966,6 +966,7 @@ _Libraries for working with forms._ - [formam](https://github.com/monoculum/formam) - decode form's values into a struct. - [forms](https://github.com/albrow/forms) - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. - [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. +- [httpin](https://github.com/ggicci/httpin) - Decode an HTTP request into a custom struct, including querystring, forms, HTTP headers, etc. - [nosurf](https://github.com/justinas/nosurf) - CSRF protection middleware for Go. - [qs](https://github.com/sonh/qs) - Go module for encoding structs into URL query parameters. - [queryparam](https://github.com/tomwright/queryparam) - Decode `url.Values` into usable struct values of standard or custom types. From fba0cd3e07120a4594101f96fb7405a95c2bf799 Mon Sep 17 00:00:00 2001 From: Jakub Warczarek Date: Sun, 27 Feb 2022 05:38:43 +0100 Subject: [PATCH 2624/3440] add go-cleanhttp (#4061) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b72ede66c45..2112d983155 100644 --- a/README.md +++ b/README.md @@ -1709,6 +1709,7 @@ _Libraries for working with various layers of the network._ _Libraries for making HTTP requests._ - [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. +- [go-cleanhttp](https://github.com/hashicorp/go-cleanhttp) - Get easily stdlib HTTP client, which does not share any state with other clients. - [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. - [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. - [go-retryablehttp](https://github.com/hashicorp/go-retryablehttp) - Retryable HTTP client in Go. From 452060977421539d97062b3f84dcb23982a18545 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Sun, 27 Feb 2022 02:01:22 -0300 Subject: [PATCH 2625/3440] adds charmbracelet/wish (#4062) Signed-off-by: Carlos A Becker --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2112d983155..4c2a8cd0876 100644 --- a/README.md +++ b/README.md @@ -1982,6 +1982,7 @@ _Libraries and tools for binary serialization._ - [SFTPGo](https://github.com/drakkan/sftpgo) - Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support. It can serve local filesystem and Cloud Storage backends such as S3 and Google Cloud Storage. - [simple-jwt-provider](https://github.com/leberKleber/simple-jwt-provider) - Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management. - [Trickster](https://github.com/tricksterproxy/trickster) - HTTP reverse proxy cache and time series accelerator. +- [Wish](https://github.com/charmbracelet/wish) - Make SSH apps, just like that! **[⬆ back to top](#contents)** From 297f055c823295eb18d3b2b304f7dfadca4f7316 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sun, 27 Feb 2022 07:28:54 -0300 Subject: [PATCH 2626/3440] project support link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c2a8cd0876..7bc722dac88 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ _Special thanks to_
-
-Doppler -
-Quit struggling with scattered API keys and access controls. -
+Doppler
+Quit struggling with scattered API keys and access controls.
Keep your secrets in sync across environments, servers, and teams with Doppler. -
-
-WorkOS -
-Your app, enterprise-ready. -
-Start selling to enterprise customers with just a few lines of code. -
+WorkOS
+Your app, enterprise-ready.
+Start selling to enterprise customers with just a few lines of code.
Add Single Sign-On (and more) in minutes instead of months. -
-
-keygen -
-A dead-simple software licensing and distribution API built for developers -
+keygen
+A dead-simple software licensing and distribution API built for developers
Securely license and distribute Go applications with a single API.
Add auto updates with only a few lines of code. -
-[![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go) + +Digital Ocean +
-**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community._ +**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community. Want to be a supporter of the project click [here](mailto:mailto:avelinorunoss@gmail.com?subject=awesome-go%3A%20project%20support)._ > A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 93930027fc162757b9d424aa8efbb6bbf01d8ecd Mon Sep 17 00:00:00 2001 From: Avelino Date: Sun, 27 Feb 2022 07:29:30 -0300 Subject: [PATCH 2627/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7bc722dac88..bf439b97d2c 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ _Special thanks to_
-**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community. Want to be a supporter of the project click [here](mailto:mailto:avelinorunoss@gmail.com?subject=awesome-go%3A%20project%20support)._ +**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community. Want to be a supporter of the project click [here](mailto:mailto:avelinorun+oss@gmail.com?subject=awesome-go%3A%20project%20support)._ > A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From c54665b8fbc7bfa8b32f4eda897addb00f4b510a Mon Sep 17 00:00:00 2001 From: biubiue Date: Tue, 1 Mar 2022 16:00:51 +0800 Subject: [PATCH 2628/3440] fix: readme.md Beego link (#4069) --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index bf439b97d2c..6b063fc2162 100644 --- a/README.md +++ b/README.md @@ -1744,7 +1744,6 @@ _Libraries for using OpenGL in Go._ _Libraries that implement Object-Relational Mapping or datamapping techniques._ -- [beego orm](https://github.com/beego/beego) - Powerful orm framework for go. Support: pq/mysql/sqlite3. - [cacheme](https://github.com/Yiling-J/cacheme-go) - Schema based, typed Redis caching/memoize framework for Go. - [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. - [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. @@ -2541,7 +2540,7 @@ _Full stack web frameworks._ - [Air](https://github.com/aofei/air) - An ideally refined web framework for Go. - [appy](https://github.com/appist/appy) - An opinionated productive web framework that helps scaling business easier. - [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. -- [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. +- [Beego](https://github.com/beego/beego) - beego is an open-source, high-performance web framework for the Go programming language. - [Buffalo](https://gobuffalo.io) - Bringing the productivity of Rails to Go! - [Confetti Framework](https://confetti-framework.github.io/docs/) - Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go. - [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. From 5187d9dcfbaa3c8e05a7cccb0a494c229c730588 Mon Sep 17 00:00:00 2001 From: Vladislav Trotsenko Date: Tue, 1 Mar 2022 19:01:12 +0200 Subject: [PATCH 2629/3440] add: truemail (#4071) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6b063fc2162..92133d2bac7 100644 --- a/README.md +++ b/README.md @@ -849,6 +849,7 @@ _Libraries and tools that implement email creation and sending._ - [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. - [smtpmock](https://github.com/mocktools/go-smtp-mock) - Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP behaviour for your test environment. +- [truemail-go](https://github.com/truemail-rb/truemail-go) - Configurable Golang email validator/verifier. Verify email via Regex, DNS, SMTP and even more. **[⬆ back to top](#contents)** From 10be31541e5015fc0ff18a457dcea11d73dec008 Mon Sep 17 00:00:00 2001 From: mstmdev Date: Fri, 25 Feb 2022 15:53:53 +0800 Subject: [PATCH 2630/3440] Add gofs to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92133d2bac7..35510fa88d3 100644 --- a/README.md +++ b/README.md @@ -915,6 +915,7 @@ _Libraries for handling files and file systems._ - [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. - [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). - [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. +- [gofs](https://github.com/no-src/gofs) - A file synchronization tool out of the box. - [gut/yos](https://github.com/1set/gut) - Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links. - [higgs](https://github.com/dastoori/higgs) - A tiny cross-platform Go library to hide/unhide files and directories. - [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. From 967b0355e7c523f7bd43d150d54f951d1d7edbb3 Mon Sep 17 00:00:00 2001 From: Rafael Espinoza Date: Sun, 27 Feb 2022 18:10:10 -0800 Subject: [PATCH 2631/3440] Add godfish to database schema migration section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 35510fa88d3..c7b1ee1b335 100644 --- a/README.md +++ b/README.md @@ -606,6 +606,7 @@ _Database schema migration._ - [go-pg-migrate](https://github.com/lawzava/go-pg-migrate) - CLI-friendly package for go-pg migrations management. - [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. - [goavro](https://github.com/linkedin/goavro) - A Go package that encodes and decodes Avro data. +- [godfish](https://github.com/rafaelespinoza/godfish) - Database migration manager, works with native query language. Support for cassandra, mysql, postgres, sqlite3. - [goose](https://github.com/pressly/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/golang-migrate/migrate) - Database migrations. CLI and Golang library. From 409ac88fdf8a175f89fd55bffdec753fb606074e Mon Sep 17 00:00:00 2001 From: spekary Date: Tue, 15 Feb 2022 09:54:36 -0800 Subject: [PATCH 2632/3440] Updating contribution guidelines: Adding missing requirements for current Go versions Adding missing information for the submittal process Adding submission process directions --- CONTRIBUTING.md | 91 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 77 insertions(+), 14 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 192e0d899e3..ca251d8d769 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,39 +1,65 @@ -This resource was made by the Go community and wouldn't be possible without you! We appreciate and recognize [all contributors](https://github.com/avelino/awesome-go/graphs/contributors). +This resource was made by the Go community and wouldn't be possible without you! +We appreciate and recognize [all contributors](https://github.com/avelino/awesome-go/graphs/contributors). # Contribution Guidelines -> Please be aware that we want to accept your contribution, but we have **some rules to keep the minimum quality** of the packages listed here. All reviews are **not personal feedback**, even if you are a _developer reviewing your contribution_. **Sorry if we can't meet your expectations, we do our best**. +> Please be aware that we want to accept your contribution, but we have **some rules to keep the minimum quality** +of the packages listed here. All reviews are **not personal feedback**, +even if you are a _developer reviewing your contribution_. **Sorry if we can't meet your expectations, we do our best**. - **To add, remove, or change things on the list:** Submit a pull request -To set this list apart from and complement the excellent [Go wiki Projects page](https://golang.org/wiki/Projects), awesome-go is a specially curated list for high-quality, actively maintained Go packages and resources. +To set this list apart from and complement the excellent [Go wiki Projects page](https://golang.org/wiki/Projects), +and other lists, awesome-go is a specially curated list for high-quality, actively maintained Go packages and resources. -- List items should be sorted *alphabetically*; -- 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 and end with a punctuation mark; - At least 3 items are needed to create a new category; - The package or project had to be maintained under **open source license** ( *we make a brief review of the code before the link enters the list* ), [see list of allowed licenses](https://opensource.org/licenses/alphabetical); -- Remember to put a period `.` at end of the project description. Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. If you removed our PR template you can find it [here](https://github.com/avelino/awesome-go/blob/main/.github/PULL_REQUEST_TEMPLATE.md). -## Quality standards +## General quality standards -To be on the list, project repositories should adhere to these quality standards (https://goreportcard.com/report/github.com/ **github_user** / **github_repo**): +To be on the list, project repositories should adhere to these quality standards +(https://goreportcard.com/report/github.com/ **github_user** / **github_repo**): -- Code functions as documented and expected -- Generally useful to the wider community of Go programmers +- Code functions as documented and expected; +- Generally useful to the wider community of Go programmer - Actively maintained - Regular, recent commits - - Or, for finished projects, issues and pull requests are responded to + - Or, for finished projects, issues and pull requests are responded to generally within 2 weeks - Stable or progressing toward stable - Thoroughly documented (README, pkg.go.dev doc comments, etc.) in english language, so everyone is able to understand the project's intention and how it works - Tests, where practical. If the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. **Notice**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results. +- The project has a Go Report Card value of A. +- The project must have at least one official version-numbered release that allows go.mod files + to list the file by version number. It should be of the form vX.X.X. + + +## Preparing for review + +To make it easy to review, we ask that you do the following to the README file in your proect: +- Add a badge that points to the matching pkg.go.dev link. You can use https://pkg.go.dev/badge/ to create the badge; +- Add a badge that points to the matching Go Report Card report. To generate the report, go to https://goreportcard.com/. Click on the report badge in the upper right corner to see details on how to add the badge to your Readme. The report card must correspond to the latest official release of the project or the current development tip; +- Add a badge that points to a matching coverage report. There are many free ones you can choose from, including codecov, coveralls, and gocover. Also acceptable is generating your own badge as part of a continuous integration process. The report card must correspond to the latest official release of the project or the current development tip; + +You will be asked to provide these links when submitting. + +## How to add an item to the list + +Open a pull request against the README.md document that adds the repository to the list. + +- The pull request should add one and only one item to the list; +- The added item should be in alphabetical order within its category; +- 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 and end with a punctuation mark; +- Remember to put a period `.` at end of the project description; +- Links to projects that are version 2 or higher should end in /vX/, where X is the major version number; + +Then fill out the template in your PR with the links asked for in your README file. ## Congrats, your project got accepted - what now? You are an awesome project now! Feel encouraged to tell others about it by adding one of these badges: @@ -44,7 +70,36 @@ You are an awesome project now! Feel encouraged to tell others about it by addin [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go) [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go) ``` +## Maintenance expectations for projects listed here + +To prevent removal from go-awesome, your project must maintain the following quality standards: +- On-going development while maintaining code quality. Official release should be at least once a year if the project is ongoing. OR, +- If development has halted because the project is mature and stable, that can be demonstrated by having no bug reports in the Issues list that are older than 6 months. +- All badges should link to reports showing the most recent official release or current ongoing development. Badges should continue to show the same quality standards as the acceptance criteria above. + +Highly recommended but not required: +- A continuous integration process be part of the ongoing development process +- That the project uses a pull-request process and the owners do not commit directly to the repository +- That the pull-request process requires the continuous-integration tests pass before a pull request can be merged + +## How to remove an item from the list + +- Open a pull request that deletes the line of the project in question. +- Delete the submission template and substitute a description of which criteria the project is not meeting. It should be a combination of: + - The project has not made an official release within the last year and it has open issues. + - The project is not responding to bug reports issued within 6 months of submission. + - The project is not meeting quality standards as indicated by the Go Report Card or Code Coverage tests. + - The quality standards badges have been removed from the README file. + - The project is no longer open-sourced. + - The project is not compatible with any Go version issued within the last year (there is hopefully an open PR about this at the project) +After submitting the PR, create an issue at the project in question linking to the PR and stating the following: + +>It appears that this project is not maintaining the quality standards required to continue to be listed at the Go-Awesome project. +This project is schedule to be removed within 2 weeks of this posting. To continue to be listed at Go-Awesome, please respond at: + -- link to above PR -- + +Then, comment on your PR at Go-Awesome with a link to the removal issue at the project. ## Maintainers @@ -62,3 +117,11 @@ Please open an issue if you would like to discuss anything that could be improve Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition but are otherwise worthy of being on the list. Thanks everyone! + +## How decision are made + +The official group of maintainers have the final decision on what PRs are accepted. Discussions are made openly in issues. Where there appear to be conflicts, decisions are made by a majority vote where 2/3s of the maintainers are considered a quorum. + +Official maintainers must commit to responding to at least one PR per month. + +Maintainers are added to or removed by the maintainer group by majority vote where 2/3s of the maintainers are considered a quorum. \ No newline at end of file From c6cceff8f7bea52781696b092c31e9bd672e596c Mon Sep 17 00:00:00 2001 From: spekary Date: Sat, 26 Feb 2022 07:40:36 -0800 Subject: [PATCH 2633/3440] Modifications based on feedback --- CONTRIBUTING.md | 100 +++++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 48 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ca251d8d769..39eb7cbd177 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,54 +12,56 @@ even if you are a _developer reviewing your contribution_. **Sorry if we can't m To set this list apart from and complement the excellent [Go wiki Projects page](https://golang.org/wiki/Projects), and other lists, awesome-go is a specially curated list for high-quality, actively maintained Go packages and resources. -- At least 3 items are needed to create a new category; -- The package or project had to be maintained under **open source license** ( *we make a brief review of the code before the link enters the list* ), [see list of allowed licenses](https://opensource.org/licenses/alphabetical); - Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. -If you removed our PR template you can find it [here](https://github.com/avelino/awesome-go/blob/main/.github/PULL_REQUEST_TEMPLATE.md). - - -## General quality standards +## Quality standards -To be on the list, project repositories should adhere to these quality standards +To be on the list, project repositories should adhere to the following quality standards (https://goreportcard.com/report/github.com/ **github_user** / **github_repo**): -- Code functions as documented and expected; -- Generally useful to the wider community of Go programmer -- Actively maintained - - Regular, recent commits - - Or, for finished projects, issues and pull requests are responded to generally within 2 weeks -- Stable or progressing toward stable -- Thoroughly documented (README, pkg.go.dev doc comments, etc.) in english language, so everyone is able to understand the project's intention and how it works -- Tests, where practical. If the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. **Notice**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results. -- The project has a Go Report Card value of A. -- The project must have at least one official version-numbered release that allows go.mod files - to list the file by version number. It should be of the form vX.X.X. +- have an **open source license**, [see list of allowed licenses](https://opensource.org/licenses/alphabetical); +- function as documented and expected; +- be generally useful to the wider community of Go programmers; +- be actively maintained with: + - Regular, recent commits; + - Or, for finished projects, issues and pull requests are responded to generally within 2 weeks; +- be stable or progressing toward stable; +- be thoroughly documented (README, pkg.go.dev doc comments, etc.) in the english language, so everyone is able to understand the project's intention and how it works; +- if the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. (**Note**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results); +- have at least one official version-numbered release that allows go.mod files to list the file by version number, of the form vX.X.X. +Categories must have at least 3 items. ## Preparing for review -To make it easy to review, we ask that you do the following to the README file in your proect: -- Add a badge that points to the matching pkg.go.dev link. You can use https://pkg.go.dev/badge/ to create the badge; -- Add a badge that points to the matching Go Report Card report. To generate the report, go to https://goreportcard.com/. Click on the report badge in the upper right corner to see details on how to add the badge to your Readme. The report card must correspond to the latest official release of the project or the current development tip; -- Add a badge that points to a matching coverage report. There are many free ones you can choose from, including codecov, coveralls, and gocover. Also acceptable is generating your own badge as part of a continuous integration process. The report card must correspond to the latest official release of the project or the current development tip; +Projects listed must have the following in their documentation. When submitting, you will be asked +to provide them. -You will be asked to provide these links when submitting. +- A link to the project's pkg.go.dev page +- A link to the project's Go Report Card report +- A link to a code coverage report + +One way to accomplish the above is to add badges to your project's README file. +- Use https://pkg.go.dev/badge/ to create the pkg.go.dev link. +- Go to https://goreportcard.com/ to generate a Go Report Card report, then click on the report badge in the upper right corner to see details on how to add the badge to your README. +- Codecov, coveralls, and gocover all offer ways to create badges for code coverage reports. Another option is to generate a badge as part of a continuous integration process. ## How to add an item to the list Open a pull request against the README.md document that adds the repository to the list. -- The pull request should add one and only one item to the list; -- The added item should be in alphabetical order within its category; -- 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 and end with a punctuation mark; -- Remember to put a period `.` at end of the project description; -- Links to projects that are version 2 or higher should end in /vX/, where X is the major version number; +- The pull request should add one and only one item to the list. +- The added item should be in alphabetical order within its category. +- 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 and end with a punctuation mark. +- Remember to put a period `.` at end of the project description. + +If you are creating a new category, move the projects that apply to the new category, ensuring +that the resulting list has at least 3 projects in every category and that the categories are alphabetized. + +Fill out the template in your PR with the links asked for. If you accidentally remove the PR template from the submission, you can find it [here](https://github.com/avelino/awesome-go/blob/main/.github/PULL_REQUEST_TEMPLATE.md). -Then fill out the template in your PR with the links asked for in your README file. ## Congrats, your project got accepted - what now? You are an awesome project now! Feel encouraged to tell others about it by adding one of these badges: @@ -72,10 +74,10 @@ You are an awesome project now! Feel encouraged to tell others about it by addin ``` ## Maintenance expectations for projects listed here -To prevent removal from go-awesome, your project must maintain the following quality standards: -- On-going development while maintaining code quality. Official release should be at least once a year if the project is ongoing. OR, -- If development has halted because the project is mature and stable, that can be demonstrated by having no bug reports in the Issues list that are older than 6 months. -- All badges should link to reports showing the most recent official release or current ongoing development. Badges should continue to show the same quality standards as the acceptance criteria above. +To prevent removal from awesome-go, your project must maintain the following quality standards. +- Development should be on-going and maintain code quality. Official releases should be at least once a year if the project is ongoing. +- Or, if development has halted because the project is mature and stable, that can be demonstrated by having no bug reports in the Issues list that are older than 6 months. +- All links to quality reports should be to the most recent official release or current ongoing development. Highly recommended but not required: - A continuous integration process be part of the ongoing development process @@ -85,21 +87,27 @@ Highly recommended but not required: ## How to remove an item from the list - Open a pull request that deletes the line of the project in question. -- Delete the submission template and substitute a description of which criteria the project is not meeting. It should be a combination of: +- Delete the submission template and substitute a description of which criteria the project is not meeting. It should be a combination of the following. - The project has not made an official release within the last year and it has open issues. - The project is not responding to bug reports issued within 6 months of submission. - The project is not meeting quality standards as indicated by the Go Report Card or Code Coverage tests. - - The quality standards badges have been removed from the README file. + - The quality standard links have been removed from the documentation. - The project is no longer open-sourced. - - The project is not compatible with any Go version issued within the last year (there is hopefully an open PR about this at the project) + - The project is not compatible with any Go version issued within the last year (there is hopefully an open PR about this at the project). + +If the project is hosted on Github, include a link to the project's submitter and/or author so +that they will be notified of the desire to remove the project and have an opportunity to respond. +The link should be of the form @githubID. -After submitting the PR, create an issue at the project in question linking to the PR and stating the following: +If the project is not hosted on Github, open an issue at the project in question's repository linking to the PR +and stating the following: ->It appears that this project is not maintaining the quality standards required to continue to be listed at the Go-Awesome project. -This project is schedule to be removed within 2 weeks of this posting. To continue to be listed at Go-Awesome, please respond at: +>This project is currently listed at awesome-go at https://github.com/avelino/awesome-go. +However, it appears that the project is not maintaining the quality standards required to continue to be listed at the awesome-go project. +This project is schedule to be removed within 2 weeks of this posting. To continue to be listed at awesome-go, please respond at: -- link to above PR -- -Then, comment on your PR at Go-Awesome with a link to the removal issue at the project. +Then, comment on your PR at awesome-go with a link to the removal issue at the project. ## Maintainers @@ -120,8 +128,4 @@ Thanks everyone! ## How decision are made -The official group of maintainers have the final decision on what PRs are accepted. Discussions are made openly in issues. Where there appear to be conflicts, decisions are made by a majority vote where 2/3s of the maintainers are considered a quorum. - -Official maintainers must commit to responding to at least one PR per month. - -Maintainers are added to or removed by the maintainer group by majority vote where 2/3s of the maintainers are considered a quorum. \ No newline at end of file +The official group of maintainers has the final decision on what PRs are accepted. Discussions are made openly in issues. Decisions are made by consensus. From 32896a7b75490563589c0d2483b9463326369e14 Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 2 Mar 2022 09:32:58 -0800 Subject: [PATCH 2634/3440] Updating PR template to reflect new contribution guidelines --- .github/PULL_REQUEST_TEMPLATE.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 2fb9de39a2c..4c313f1faf5 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -9,15 +9,18 @@ **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:** -_not every repository (project) will fit into every option, but most projects should_ +**Make sure that you've checked the boxes below that apply before you submit PR.** +_Not every repository (project) will require every option, but most projects should. Check the Contribution Guidelines for detials._ -- [ ] 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 pkg.go.dev 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/main/CONTRIBUTING.md#contribution-guidelines), [maintainers note](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#maintainers) and [Quality standard](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards). +- [ ] The package has been added to the list in alphabetical order. +- [ ] The package has an appropriate description with correct grammar. +- [ ] As far as I know, the package has not been listed here before. +- [ ] The repo documentation has a pkg.go.dev link. +- [ ] The repo documentation has a coverage service link. +- [ ] The repo documenation has a goreportcard link. +- [ ] The repo has a version-numbered release and a go.mod file. +- [ ] I have read the [Contribution Guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#contribution-guidelines), [Maintainers Note](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#maintainers) and [Quality Standards](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards). +- [ ] The repo has a continuous integration process that automatically runs tests that must pass before new pull requests are merged. +- [ ] The authors of the project do not commit directly to the repo, but rather use pull-requests that run the continuous-integration process. Thanks for your PR, you're awesome! :+1: From 83c1776ba7c4ddef5c400fba529a72d13521ae75 Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Thu, 3 Mar 2022 14:16:04 +0100 Subject: [PATCH 2635/3440] adding github.com/samber/lo (#4073) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c7b1ee1b335..6f05eac5b65 100644 --- a/README.md +++ b/README.md @@ -2393,6 +2393,7 @@ _General utilities and tools to make your life easier._ - [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. - [lets-go](https://github.com/aplescia-chwy/lets-go) - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities. - [limiters](https://github.com/mennanov/limiters) - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks. +- [lo](https://github.com/samber/lo) - A Lodash like Go library based on Go 1.18+ Generics (map, filter, contains, find...) - [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go. - [mani](https://github.com/alajmo/mani) - CLI tool to help you manage multiple repositories. - [mc](https://github.com/minio/mc) - Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems. From 1f18844fd192ebaa23ab8f0dda96fb9291544ed8 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 3 Mar 2022 13:57:27 -0300 Subject: [PATCH 2636/3440] slack form invite --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6f05eac5b65..d664e11399b 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) [![Track Awesome List](https://www.trackawesomelist.com/badge.svg)](https://www.trackawesomelist.com/avelino/awesome-go/) +We use the _[Golang Bridge](https://github.com/gobridge/about-us/blob/master/README.md)_ community slack for instant communication, follow the [form here to join](https://invite.slack.golangbridge.org/). + awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt **Sponsorships:** From 34b5389831c9565cdd43abb5aa4372e8f850ec70 Mon Sep 17 00:00:00 2001 From: "Daniel G. Taylor" Date: Sat, 5 Mar 2022 12:55:26 -0800 Subject: [PATCH 2637/3440] feat: add Huma to Web Frameworks section. (#4075) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d664e11399b..34048dd6baf 100644 --- a/README.md +++ b/README.md @@ -2570,6 +2570,7 @@ _Full stack web frameworks._ - [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. - [Goyave](https://github.com/go-goyave/goyave) - Feature-complete REST API framework aimed at clean code and fast development, with powerful built-in functionalities. - [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. +- [Huma](https://github.com/danielgtaylor/huma/) - Framework for modern REST/GraphQL APIs with built-in OpenAPI 3, generated documentation, and a CLI. - [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. From 749679ff26ff2e157ab9f4dd9c968592dc7032d6 Mon Sep 17 00:00:00 2001 From: spekary Date: Mon, 7 Mar 2022 19:18:03 -0800 Subject: [PATCH 2638/3440] Removing Damsel. Damsel appears to be abandoned. The most recent commit was 6 years ago. While it appears stable, it does not correspond to current awesome-go standards. In particular, it does not have a go.mod file nor any published releases, no report card and no code coverage report. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 34048dd6baf..17f91df7f8b 100644 --- a/README.md +++ b/README.md @@ -2006,7 +2006,6 @@ _Libraries and tools for templating and lexing._ - [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. - [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. -- [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. - [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. - [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. - [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). From a5b3bd735c0c55fde3f6c508fb3d4f7371d196cb Mon Sep 17 00:00:00 2001 From: spekary Date: Mon, 7 Mar 2022 20:12:19 -0800 Subject: [PATCH 2639/3440] Removing Velvet Velvet appears to be abandoned. - Most recent commit was 5 years ago. - It does not meet current awesome-go quality standards. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 17f91df7f8b..6c5ea71e8ff 100644 --- a/README.md +++ b/README.md @@ -2026,7 +2026,6 @@ _Libraries and tools for templating and lexing._ - [Soy](https://github.com/robfig/soy) - Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/). - [sprig](https://github.com/Masterminds/sprig) - Useful template functions for Go templates. - [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata. -- [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go. **[⬆ back to top](#contents)** From d175a4deb8879229f1067e64928e481f71ef55af Mon Sep 17 00:00:00 2001 From: spekary Date: Mon, 7 Mar 2022 19:56:44 -0800 Subject: [PATCH 2640/3440] Removing Mustache Mustache appears to be abandoned. - Most recent commit was 6 years ago. - It does not have a go.mod file - It does not conform to current awesome-go quality standards --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6c5ea71e8ff..406d897cf53 100644 --- a/README.md +++ b/README.md @@ -2018,7 +2018,6 @@ _Libraries and tools for templating and lexing._ - [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. - [maroto](https://github.com/johnfercher/maroto) - A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple. -- [mustache](https://github.com/hoisie/mustache) - Go implementation of the Mustache template language. - [pongo2](https://github.com/flosch/pongo2) - Django-like template-engine for Go. - [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. From f397540565f1e98d676de81ab3a80d0dd0b155d4 Mon Sep 17 00:00:00 2001 From: spekary Date: Mon, 7 Mar 2022 19:52:08 -0800 Subject: [PATCH 2641/3440] Removing Kasia Kasia appears to be abandoned. - The most recent commit was 7 years ago. - It does not have a go.mod file - It does not conform to current awesome-go standards --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 406d897cf53..f080ce2203d 100644 --- a/README.md +++ b/README.md @@ -2015,7 +2015,6 @@ _Libraries and tools for templating and lexing._ - [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. - [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. -- [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. - [maroto](https://github.com/johnfercher/maroto) - A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple. - [pongo2](https://github.com/flosch/pongo2) - Django-like template-engine for Go. From eaac587d1fa6033df22ead7db0885ed6d8f240f4 Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 9 Mar 2022 08:47:54 -0800 Subject: [PATCH 2642/3440] Example github workflow with code coverage badge production. --- CONTRIBUTING.md | 2 +- COVERAGE.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 COVERAGE.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 39eb7cbd177..1225013eb00 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,7 +44,7 @@ to provide them. One way to accomplish the above is to add badges to your project's README file. - Use https://pkg.go.dev/badge/ to create the pkg.go.dev link. - Go to https://goreportcard.com/ to generate a Go Report Card report, then click on the report badge in the upper right corner to see details on how to add the badge to your README. -- Codecov, coveralls, and gocover all offer ways to create badges for code coverage reports. Another option is to generate a badge as part of a continuous integration process. +- Codecov, coveralls, and gocover all offer ways to create badges for code coverage reports. Another option is to generate a badge as part of a continuous integration process. See [Code Coverage](COVERAGE.md) for an example. ## How to add an item to the list diff --git a/COVERAGE.md b/COVERAGE.md new file mode 100644 index 00000000000..4bd6e7fc066 --- /dev/null +++ b/COVERAGE.md @@ -0,0 +1,71 @@ +# Code Coverage + +While we recommend using one of the free websites available for monitoring code coverage +during your continuous integration process, below is an example of how you can incorporate +code coverage during the continuous integration process provided by github actions and +generate a code coverage report without one of those services. + +This yaml file will run tests on multiple system configurations, but will produce +a code coverage report on only one of those. It will then create a code coverage badge +and add it to the Readme file. + +This file should be put in the .github/workflows directory of your repo. + +```yaml +name: Go # The name of the workflow that will appear on Github + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest] + go: [1.16, 1.17] + steps: + - uses: actions/checkout@v2 + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go }} + + - name: Build + run: go install + + - name: Test + run: | + go test -v -cover ./... -coverprofile coverage.out -coverpkg ./... + go tool cover -func coverage.out -o coverage.out # Replaces coverage.out with the analysis of coverage.out + + - name: Go Coverage Badge + uses: tj-actions/coverage-badge-go@v1 + if: ${{ runner.os == 'Linux' && matrix.go == '1.17' }} # Runs this on only one of the ci builds. + with: + green: 80 + filename: coverage.out + + - uses: stefanzweifel/git-auto-commit-action@v4 + id: auto-commit-action + with: + commit_message: Apply Code Coverage Badge + skip_fetch: true + skip_checkout: true + file_pattern: ./README.md + + - name: Push Changes + if: steps.auto-commit-action.outputs.changes_detected == 'true' + uses: ad-m/github-push-action@master + with: + github_token: ${{ github.token }} + branch: ${{ github.ref }} + +``` \ No newline at end of file From a1015828d15ab3893f814225f274b7b177aa77fc Mon Sep 17 00:00:00 2001 From: John Arundel Date: Wed, 9 Mar 2022 18:57:10 +0000 Subject: [PATCH 2643/3440] Add gotestdox (#4087) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f080ce2203d..2cfe0fe2fa7 100644 --- a/README.md +++ b/README.md @@ -2779,6 +2779,7 @@ _Plugin for text editors and IDEs._ - [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. - [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. - [gomodrun](https://github.com/dustinblackman/gomodrun/) - Go tool that executes and caches binaries included in go.mod files. +- [gotestdox](https://github.com/bitfield/gotestdox) - Show Go test results as readable sentences. - [gothanks](https://github.com/psampaz/gothanks) - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. - [igo](https://github.com/rocketlaunchr/igo) - An igo to go transpiler (new language features for Go language!) - [modver](https://github.com/bobg/modver) - Compare two versions of a Go module to check the version-number change required (major, minor, or patchlevel), according to [semver](https://semver.org/) rules. From af0225de5191764f43665cc630646a8ac9665f53 Mon Sep 17 00:00:00 2001 From: Doni Rubiagatra Date: Thu, 10 Mar 2022 18:24:24 +0800 Subject: [PATCH 2644/3440] fix: make contents as heading (#4092) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2cfe0fe2fa7..6c79f113eb4 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a > _If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!_ -**Contents:** +## Contents - [Awesome Go](#awesome-go) - [Audio and Music](#audio-and-music) From ad6cf0bd28b3f38e61b4369365ed8a878498b928 Mon Sep 17 00:00:00 2001 From: Kenta Takeuchi Date: Sat, 12 Mar 2022 10:48:41 +0900 Subject: [PATCH 2645/3440] add: goblin to Router section (#4094) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6c79f113eb4..b9e1375f1ae 100644 --- a/README.md +++ b/README.md @@ -2632,6 +2632,7 @@ _Full stack web frameworks._ - [chi](https://github.com/go-chi/chi) - Small, fast and expressive HTTP router built on net/context. - [fasthttprouter](https://github.com/buaazp/fasthttprouter) - High performance router forked from `httprouter`. The first router fit for `fasthttp`. - [FastRouter](https://github.com/razonyang/fastrouter) - a fast, flexible HTTP router written in Go. +- [goblin](https://github.com/bmf-san/goblin) - A golang http router based on trie tree. - [gocraft/web](https://github.com/gocraft/web) - Mux and middleware package in Go. - [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. - [goroute](https://github.com/goroute/route) - Simple yet powerful HTTP request multiplexer. From 0afc930d119ef68080e6f495ab018916596b84ec Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 9 Mar 2022 10:42:13 -0800 Subject: [PATCH 2646/3440] Reorganizing text processors --- README.md | 106 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 60 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index b9e1375f1ae..2817abeb15a 100644 --- a/README.md +++ b/README.md @@ -2128,73 +2128,87 @@ _Libraries for testing codebases and generating test data._ _Libraries for parsing and manipulating texts._ -- Specific Formats +- Formatters - [align](https://github.com/Guitarbum722/align) - A general purpose application that aligns text. - - [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. + - [go-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). + - [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. + - [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. + +- Natural Language/Translation + - [bytes](https://github.com/labstack/gommon/tree/master/bytes) - Formats and parses numeric byte values (10K, 2M, 3G, etc.). + - [enca](https://github.com/endeveit/enca) - Minimal cgo bindings for [libenca](https://cihar.com/software/enca/). + - [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. + - [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. + - [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. + - [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. + - [normalize](https://github.com/avito-tech/normalize) - Sanitize, normalize and compare fuzzy text. + - [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. + - [textwrap](https://github.com/isbm/textwrap) - Implementation of `textwrap` module from Python. + - [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. + +- Markup Languages - [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates. - [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. + - [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. + - [go-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. + - [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. + - [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. + - [goq](https://github.com/andrewstuart/goq) - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery). + - [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. + - [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). + +- Parsers/Encoders/Decoders + - [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. - [codetree](https://github.com/aerogo/codetree) - Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure. - - [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. - [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go. - - [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. - [did](https://github.com/ockam-network/did) - DID (Decentralized Identifiers) Parser and Stringer in Go. - [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. - [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](https://cihar.com/software/enca/). - [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. - - [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-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). - - [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. - - [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-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. - - [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. - - [go-wildcard](https://github.com/IGLOU-EU/go-wildcard) - Simple and lightweight wildcard pattern matching. - - [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. - [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. - - [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. - - [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) - - [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - - [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. - - [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. - - [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. - - [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. + - [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. + - [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. - [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. - - [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. - - [normalize](https://github.com/avito-tech/normalize) - Sanitize, normalize and compare fuzzy text. - [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. - - [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. - - [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang - - [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. - - [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. - - [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. - - [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). -- Utility - - [gofuckyourself](https://github.com/JoshuaDoes/gofuckyourself) - A sanitization-based swear filter for Go. - - [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. - [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. - - [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. + - [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. + - [sh](https://github.com/mvdan/sh) - Shell parser and formatter. + - [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. + +- Regular Expressions + - [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings. + - [go-wildcard](https://github.com/IGLOU-EU/go-wildcard) - Simple and lightweight wildcard pattern matching. + - [goregen](https://github.com/zach-klippenstein/goregen) - Library for generating random strings from regular expressions. - [regroup](https://github.com/oriser/regroup) - Match regex expression named groups into go struct using struct tags and automatic parsing. + +- Sanitation + - [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer. + - [gofuckyourself](https://github.com/JoshuaDoes/gofuckyourself) - A sanitization-based swear filter for Go. + +- Scrapers + - [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. + - [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. + - [GoQuery](https://github.com/PuerkitoBio/goquery) - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. + - [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) + - [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. - [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. - - [textwrap](https://github.com/isbm/textwrap) - Implementation of `textwrap` module from Python. - - [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. - - [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. - [xurls](https://github.com/mvdan/xurls) - Extract urls from text. +- RSS + - [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang + - [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. + +- Utility + - [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. + - [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. + **[⬆ back to top](#contents)** ## Third-party APIs From 74158bc3abe204daffe8e2256788fb6361c36fdb Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 9 Mar 2022 10:49:55 -0800 Subject: [PATCH 2647/3440] Fixing sort errors --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2817abeb15a..eb8072b46db 100644 --- a/README.md +++ b/README.md @@ -2155,9 +2155,9 @@ _Libraries for parsing and manipulating texts._ - [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. - [go-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. + - [goq](https://github.com/andrewstuart/goq) - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery). - [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. - [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. - - [goq](https://github.com/andrewstuart/goq) - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery). - [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. - [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). @@ -2169,11 +2169,11 @@ _Libraries for parsing and manipulating texts._ - [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. - [editorconfig-core-go](https://github.com/editorconfig/editorconfig-core-go) - Editorconfig file parser and manipulator for Go. - [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. + - [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. + - [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. - [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts. - - [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. - - [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. - [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. - [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. - [parseargs-go](https://github.com/nproc/parseargs-go) - string argument parser that understands quotes and backslashes. From 058288fa84d1f5636750d1791bc20eb4692a2750 Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 9 Mar 2022 12:00:45 -0800 Subject: [PATCH 2648/3440] Reorganizing Natural Language Processing Adding cross links to Text Processing, since they are related Removed https://github.com/nuance/go-nlp since it is officially archived by the author and no longer supported. --- README.md | 212 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 112 insertions(+), 100 deletions(-) diff --git a/README.md b/README.md index eb8072b46db..1f0410ad531 100644 --- a/README.md +++ b/README.md @@ -1592,48 +1592,64 @@ _These libraries were placed here because none of the other categories seemed to _Libraries for working with human languages._ -- [address](https://github.com/bojanz/address) - Handles address representation, validation and formatting. +See also [Text Processing](#text-processing). + +### Case Converters +- [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. +- [go-slugify](https://github.com/mozillazg/go-slugify) - Make pretty slug with multiple languages support. +- [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. + +### Language Detection - [detectlanguage](https://github.com/detectlanguage/detectlanguage-go) - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection. - [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. -- [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. -- [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. -- [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. -- [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. -- [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. +- [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode 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). + +### Morphological Analyzers - [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. -- [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. - [gosentiwordnet](https://github.com/dinopuguh/gosentiwordnet) - Sentiment analyzer using sentiwordnet lexicon in Go. -- [gotokenizer](https://github.com/xujiajun/gotokenizer) - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) -- [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. - [govader](https://github.com/jonreiter/govader) - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment). -- [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. -- [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. -- [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. - [kagome](https://github.com/ikawaha/kagome) - JP morphological analyzer written in pure Go. - [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. - [nlp](https://github.com/james-bowman/nlp) - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis). - [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm. -- [petrovich](https://github.com/striker2000/petrovich) - Petrovich is the library which inflects Russian names to given grammatical case. - [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. English only. - [RAKE.go](https://github.com/afjoseph/RAKE.Go) - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE). +- [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). +- [spaGO](https://github.com/nlpodyssey/spago) - Self-contained Machine Learning and Natural Language Processing library in Go. + +### Tokenizers +- [gojieba](https://github.com/yanyiwu/gojieba) - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm. +- [gotokenizer](https://github.com/xujiajun/gotokenizer) - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) +- [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. +- [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm. +- [prose](https://github.com/jdkato/prose) - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only. - [segment](https://github.com/blevesearch/segment) - Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://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/). -- [spaGO](https://github.com/nlpodyssey/spago) - Self-contained Machine Learning and Natural Language Processing library in Go. - [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. -- [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. - [textcat](https://github.com/pebbe/textcat) - Go package for n-gram based text categorization, with support for utf-8 and raw text. + +### Translation +- [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. +- [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. +- [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. +- [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. +- [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. +- [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. +- [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. +- [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. + +### Transliteration +- [enca](https://github.com/endeveit/enca) - Minimal cgo bindings for [libenca](https://cihar.com/software/enca/), which detects character encodings. +- [go-unidecode](https://github.com/mozillazg/go-unidecode) - ASCII transliterations of Unicode text. +- [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. - [transliterator](https://github.com/alexsergivan/transliterator) - Provides one-way string transliteration with supporting of language-specific transliteration rules. -- [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. **[⬆ back to top](#contents)** @@ -2128,86 +2144,82 @@ _Libraries for testing codebases and generating test data._ _Libraries for parsing and manipulating texts._ -- Formatters - - [align](https://github.com/Guitarbum722/align) - A general purpose application that aligns text. - - [go-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). - - [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. - - [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. - -- Natural Language/Translation - - [bytes](https://github.com/labstack/gommon/tree/master/bytes) - Formats and parses numeric byte values (10K, 2M, 3G, etc.). - - [enca](https://github.com/endeveit/enca) - Minimal cgo bindings for [libenca](https://cihar.com/software/enca/). - - [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. - - [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - - [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. - - [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. - - [normalize](https://github.com/avito-tech/normalize) - Sanitize, normalize and compare fuzzy text. - - [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. - - [textwrap](https://github.com/isbm/textwrap) - Implementation of `textwrap` module from Python. - - [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. - -- Markup Languages - - [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates. - - [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. - - [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. - - [go-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. - - [goq](https://github.com/andrewstuart/goq) - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery). - - [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. - - [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. - - [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. - - [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). - -- Parsers/Encoders/Decoders - - [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. - - [codetree](https://github.com/aerogo/codetree) - Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure. - - [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go. - - [did](https://github.com/ockam-network/did) - DID (Decentralized Identifiers) Parser and Stringer in Go. - - [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. - - [editorconfig-core-go](https://github.com/editorconfig/editorconfig-core-go) - Editorconfig file parser and manipulator for Go. - - [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. - - [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. - - [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. - - [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts. - - [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. - - [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. - - [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. - - [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. - - [sh](https://github.com/mvdan/sh) - Shell parser and formatter. - - [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. +See also [Natural Language Processing](#natural-language-processing). + +### Formatters +- [address](https://github.com/bojanz/address) - Handles address representation, validation and formatting. +- [align](https://github.com/Guitarbum722/align) - A general purpose application that aligns text. +- [bytes](https://github.com/labstack/gommon/tree/master/bytes) - Formats and parses numeric byte values (10K, 2M, 3G, etc.). +- [go-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). +- [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. +- [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. -- Regular Expressions - - [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings. - - [go-wildcard](https://github.com/IGLOU-EU/go-wildcard) - Simple and lightweight wildcard pattern matching. - - [goregen](https://github.com/zach-klippenstein/goregen) - Library for generating random strings from regular expressions. - - [regroup](https://github.com/oriser/regroup) - Match regex expression named groups into go struct using struct tags and automatic parsing. - -- Sanitation - - [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer. - - [gofuckyourself](https://github.com/JoshuaDoes/gofuckyourself) - A sanitization-based swear filter for Go. - -- Scrapers - - [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. - - [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. - - [GoQuery](https://github.com/PuerkitoBio/goquery) - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. - - [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) - - [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. - - [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. - - [xurls](https://github.com/mvdan/xurls) - Extract urls from text. - -- RSS - - [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang - - [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. - -- Utility - - [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. - - [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. +### Markup Languages +- [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates. +- [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. +- [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. +- [go-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. +- [goq](https://github.com/andrewstuart/goq) - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery). +- [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. +- [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. +- [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. +- [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). + +### Parsers/Encoders/Decoders +- [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. +- [codetree](https://github.com/aerogo/codetree) - Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure. +- [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go. +- [did](https://github.com/ockam-network/did) - DID (Decentralized Identifiers) Parser and Stringer in Go. +- [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. +- [editorconfig-core-go](https://github.com/editorconfig/editorconfig-core-go) - Editorconfig file parser and manipulator for Go. +- [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. +- [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. +- [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. +- [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts. +- [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. +- [normalize](https://github.com/avito-tech/normalize) - Sanitize, normalize and compare fuzzy text. +- [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. +- [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. +- [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. +- [sh](https://github.com/mvdan/sh) - Shell parser and formatter. +- [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. +- [when](https://github.com/olebedev/when) - Natural EN and RU language date/time parser with pluggable rules. + +### Regular Expressions +- [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings. +- [go-wildcard](https://github.com/IGLOU-EU/go-wildcard) - Simple and lightweight wildcard pattern matching. +- [goregen](https://github.com/zach-klippenstein/goregen) - Library for generating random strings from regular expressions. +- [regroup](https://github.com/oriser/regroup) - Match regex expression named groups into go struct using struct tags and automatic parsing. + +### Sanitation +- [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer. +- [gofuckyourself](https://github.com/JoshuaDoes/gofuckyourself) - A sanitization-based swear filter for Go. + +### Scrapers +- [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. +- [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. +- [GoQuery](https://github.com/PuerkitoBio/goquery) - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. +- [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) +- [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. +- [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. +- [xurls](https://github.com/mvdan/xurls) - Extract urls from text. + +### RSS +- [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang +- [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. + +### Utility/Miscellaneous +- [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. +- [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. +- [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. +- [petrovich](https://github.com/striker2000/petrovich) - Petrovich is the library which inflects Russian names to given grammatical case. +- [textwrap](https://github.com/isbm/textwrap) - Wraps text at end of lines. Implementation of `textwrap` module from Python. +- [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. **[⬆ back to top](#contents)** From 8bb4c91db6535459cfb4497789ce69af4fcb4132 Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 9 Mar 2022 12:09:51 -0800 Subject: [PATCH 2649/3440] Reorg and fixing sorting --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 1f0410ad531..1c30dc685af 100644 --- a/README.md +++ b/README.md @@ -1594,8 +1594,7 @@ _Libraries for working with human languages._ See also [Text Processing](#text-processing). -### Case Converters -- [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. +### Slugifiers - [go-slugify](https://github.com/mozillazg/go-slugify) - Make pretty slug with multiple languages support. - [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. @@ -1636,12 +1635,12 @@ See also [Text Processing](#text-processing). - [textcat](https://github.com/pebbe/textcat) - Go package for n-gram based text categorization, with support for utf-8 and raw text. ### Translation -- [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. - [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. - [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. - [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. - [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. +- [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. - [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. - [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. @@ -2153,7 +2152,8 @@ See also [Natural Language Processing](#natural-language-processing). - [go-fixedwidth](https://github.com/ianlopshire/go-fixedwidth) - Fixed-width text formatting (encoder/decoder with reflection). - [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. - [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. - +- [textwrap](https://github.com/isbm/textwrap) - Wraps text at end of lines. Implementation of `textwrap` module from Python. + ### Markup Languages - [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates. - [bbConvert](https://github.com/CalebQ42/bbConvert) - Converts bbCode to HTML that allows you to add support for custom bbCode tags. @@ -2187,8 +2187,8 @@ See also [Natural Language Processing](#natural-language-processing). - [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. - [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. - [sh](https://github.com/mvdan/sh) - Shell parser and formatter. -- [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. - [when](https://github.com/olebedev/when) - Natural EN and RU language date/time parser with pluggable rules. +- [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. ### Regular Expressions - [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings. @@ -2214,11 +2214,11 @@ See also [Natural Language Processing](#natural-language-processing). - [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. ### Utility/Miscellaneous -- [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. -- [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. +- [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. - [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. +- [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. - [petrovich](https://github.com/striker2000/petrovich) - Petrovich is the library which inflects Russian names to given grammatical case. -- [textwrap](https://github.com/isbm/textwrap) - Wraps text at end of lines. Implementation of `textwrap` module from Python. +- [radix](https://github.com/yourbasic/radix) - Fast string sorting algorithm. - [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. **[⬆ back to top](#contents)** From d74dc8735ef56cbd3133e0b50211534d0098092b Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 9 Mar 2022 12:28:38 -0800 Subject: [PATCH 2650/3440] Adding subheadings to TOC. Fixing sorts. --- README.md | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1c30dc685af..e2ad06126b1 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Strings](#strings) - [Uncategorized](#uncategorized) - [Natural Language Processing](#natural-language-processing) + - [Language Detection](#language-detection) + - [Morphological Analyzers](#morphological-analyzers) + - [Slugifiers](#slugifiers) + - [Tokenizers](#tokenizers) + - [Translation](#translation) + - [Transliteration](#transliteration) - [Networking](#networking) - [HTTP Clients](#http-clients) - [OpenGL](#opengl) @@ -132,6 +138,14 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Template Engines](#template-engines) - [Testing](#testing) - [Text Processing](#text-processing) + - [Formatters](#formatters) + - [Markup Languages](#markup-languages) + - [Parsers/Encoders/Decoders](#parsersencodersdecoders) + - [Regular Expressions](#regular-expressions) + - [Sanitation](#sanitation) + - [Scrapers](#scrapers) + - [RSS](#rss) + - [Utility/Miscellaneous](#utilitymiscellaneous) - [Third-party APIs](#third-party-apis) - [Utilities](#utilities) - [UUID](#uuid) @@ -1594,11 +1608,6 @@ _Libraries for working with human languages._ See also [Text Processing](#text-processing). -### Slugifiers -- [go-slugify](https://github.com/mozillazg/go-slugify) - Make pretty slug with multiple languages support. -- [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. - ### Language Detection - [detectlanguage](https://github.com/detectlanguage/detectlanguage-go) - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection. - [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. @@ -1622,6 +1631,11 @@ See also [Text Processing](#text-processing). - [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). - [spaGO](https://github.com/nlpodyssey/spago) - Self-contained Machine Learning and Natural Language Processing library in Go. +### Slugifiers +- [go-slugify](https://github.com/mozillazg/go-slugify) - Make pretty slug with multiple languages support. +- [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. + ### Tokenizers - [gojieba](https://github.com/yanyiwu/gojieba) - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm. - [gotokenizer](https://github.com/xujiajun/gotokenizer) - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) @@ -1637,9 +1651,9 @@ See also [Text Processing](#text-processing). ### Translation - [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. - [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. -- [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. - [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. +- [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. - [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. - [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. @@ -2214,9 +2228,9 @@ See also [Natural Language Processing](#natural-language-processing). - [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. ### Utility/Miscellaneous -- [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. - [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. - [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. +- [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. - [petrovich](https://github.com/striker2000/petrovich) - Petrovich is the library which inflects Russian names to given grammatical case. - [radix](https://github.com/yourbasic/radix) - Fast string sorting algorithm. - [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. From 9e21498f57d6ed017c8ab41bbf733a2a6bb24f7e Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 14 Mar 2022 15:13:00 -0300 Subject: [PATCH 2651/3440] md lint Signed-off-by: Avelino --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index e2ad06126b1..93bde2c53d6 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Contents - [Awesome Go](#awesome-go) + - [Contents](#contents) - [Audio and Music](#audio-and-music) - [Authentication and OAuth](#authentication-and-oauth) - [Blockchain](#blockchain) @@ -1609,12 +1610,14 @@ _Libraries for working with human languages._ See also [Text Processing](#text-processing). ### Language Detection + - [detectlanguage](https://github.com/detectlanguage/detectlanguage-go) - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection. - [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. - [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode 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). ### Morphological Analyzers + - [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. - [go2vec](https://github.com/danieldk/go2vec) - Reader and utility functions for word2vec embeddings. - [golibstemmer](https://github.com/rjohnsondev/golibstemmer) - Go bindings for the snowball libstemmer library including porter 2. @@ -1632,11 +1635,13 @@ See also [Text Processing](#text-processing). - [spaGO](https://github.com/nlpodyssey/spago) - Self-contained Machine Learning and Natural Language Processing library in Go. ### Slugifiers + - [go-slugify](https://github.com/mozillazg/go-slugify) - Make pretty slug with multiple languages support. - [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. ### Tokenizers + - [gojieba](https://github.com/yanyiwu/gojieba) - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm. - [gotokenizer](https://github.com/xujiajun/gotokenizer) - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) - [gse](https://github.com/go-ego/gse) - Go efficient text segmentation; support english, chinese, japanese and other. @@ -1649,6 +1654,7 @@ See also [Text Processing](#text-processing). - [textcat](https://github.com/pebbe/textcat) - Go package for n-gram based text categorization, with support for utf-8 and raw text. ### Translation + - [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. - [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. - [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. @@ -1659,6 +1665,7 @@ See also [Text Processing](#text-processing). - [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. ### Transliteration + - [enca](https://github.com/endeveit/enca) - Minimal cgo bindings for [libenca](https://cihar.com/software/enca/), which detects character encodings. - [go-unidecode](https://github.com/mozillazg/go-unidecode) - ASCII transliterations of Unicode text. - [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. @@ -2160,6 +2167,7 @@ _Libraries for parsing and manipulating texts._ See also [Natural Language Processing](#natural-language-processing). ### Formatters + - [address](https://github.com/bojanz/address) - Handles address representation, validation and formatting. - [align](https://github.com/Guitarbum722/align) - A general purpose application that aligns text. - [bytes](https://github.com/labstack/gommon/tree/master/bytes) - Formats and parses numeric byte values (10K, 2M, 3G, etc.). @@ -2169,6 +2177,7 @@ See also [Natural Language Processing](#natural-language-processing). - [textwrap](https://github.com/isbm/textwrap) - Wraps text at end of lines. Implementation of `textwrap` module from Python. ### Markup Languages + - [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates. - [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. @@ -2182,6 +2191,7 @@ See also [Natural Language Processing](#natural-language-processing). - [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). ### Parsers/Encoders/Decoders + - [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. - [codetree](https://github.com/aerogo/codetree) - Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure. - [commonregex](https://github.com/mingrammer/commonregex) - A collection of common regular expressions for Go. @@ -2205,16 +2215,19 @@ See also [Natural Language Processing](#natural-language-processing). - [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. ### Regular Expressions + - [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings. - [go-wildcard](https://github.com/IGLOU-EU/go-wildcard) - Simple and lightweight wildcard pattern matching. - [goregen](https://github.com/zach-klippenstein/goregen) - Library for generating random strings from regular expressions. - [regroup](https://github.com/oriser/regroup) - Match regex expression named groups into go struct using struct tags and automatic parsing. ### Sanitation + - [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer. - [gofuckyourself](https://github.com/JoshuaDoes/gofuckyourself) - A sanitization-based swear filter for Go. ### Scrapers + - [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. - [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. - [GoQuery](https://github.com/PuerkitoBio/goquery) - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. @@ -2224,10 +2237,12 @@ See also [Natural Language Processing](#natural-language-processing). - [xurls](https://github.com/mvdan/xurls) - Extract urls from text. ### RSS + - [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang - [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. ### Utility/Miscellaneous + - [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. - [go-zero-width](https://github.com/trubitsyn/go-zero-width) - Zero-width character detection and removal for Go. - [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. From 1d1a5dd36a69aa6300411b8d17765439313f0c30 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 14 Mar 2022 15:26:24 -0300 Subject: [PATCH 2652/3440] add link track on sponsors Signed-off-by: Avelino --- README.md | 16 +++++++++++----- tmpl/cat-tmpl.html | 2 +- tmpl/tmpl.html | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 93bde2c53d6..3ece8f835b8 100644 --- a/README.md +++ b/README.md @@ -20,17 +20,23 @@ _Special thanks to_ - + diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index 6c5fd585b6a..d927892f7f2 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -70,7 +70,7 @@

Sponsorships

{{end}} - + Deploys by Netlify diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index e11622df94c..dcc35c8c746 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -32,7 +32,7 @@ {{.Body}} - + Deploys by Netlify From 8915b4423367b78875dc3dc0d327a5fc922b2518 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 14 Mar 2022 15:40:51 -0300 Subject: [PATCH 2653/3440] do not change the link in the content menu Signed-off-by: Avelino --- make_site.go | 5 +++-- tmpl/cat-tmpl.html | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/make_site.go b/make_site.go index b858c0730f6..bb2b098dec6 100644 --- a/make_site.go +++ b/make_site.go @@ -104,8 +104,9 @@ func changeLinksInIndex(html string, query *goquery.Document) { href, exists := s.Attr("href") if exists { uri := strings.SplitAfter(href, "#") - if len(uri) >= 2 { - html = strings.ReplaceAll(html, fmt.Sprintf(`href="%s"`, href), fmt.Sprintf(`href="%s"`, uri[1])) + if len(uri) >= 2 && uri[1] != "contents" { + html = strings.ReplaceAll( + html, fmt.Sprintf(`href="%s"`, href), fmt.Sprintf(`href="%s"`, uri[1])) } } }) diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index d927892f7f2..aede5c619be 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -55,7 +55,18 @@

Sponsorships

- Doppler + + Doppler +
+ Quit struggling with scattered API keys and access controls. +
+

+

+ + x-team +
+ Work from anywhere in the world with top tech companies like Riot Games, Coinbase, and Google. +

Digital Ocean @@ -66,7 +77,7 @@

Sponsorships

From 02432109846b50d152195fd14318de4529f21b90 Mon Sep 17 00:00:00 2001 From: Jim Date: Tue, 15 Mar 2022 01:02:50 -0400 Subject: [PATCH 2654/3440] add gldap (#4101) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3ece8f835b8..f962b0c77f5 100644 --- a/README.md +++ b/README.md @@ -1699,6 +1699,7 @@ _Libraries for working with various layers of the network._ - [ftpserverlib](https://github.com/fclairamb/ftpserverlib) - Fully featured FTP server library. - [gaio](https://github.com/xtaci/gaio) - High performance async-io networking for Golang in proactor mode. - [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. +- [gldap](https://github.com/jimlambrt/gldap) - gldap provides an ldap server implementation and you provide handlers for its ldap operations. - [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. - [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. - [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. From 4985b4f1439ebcd90952eb93e02bb5dd424a1ce8 Mon Sep 17 00:00:00 2001 From: Ksenija Kordi Sokolic Date: Tue, 15 Mar 2022 15:01:42 +0100 Subject: [PATCH 2655/3440] add mantil to devops tools (#4093) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f962b0c77f5..ce9d36a5a4a 100644 --- a/README.md +++ b/README.md @@ -2907,6 +2907,7 @@ _Software written in Go._ - [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. - [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. - [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. +- [Mantil](https://github.com/mantil-io/mantil) - Go specific framework for building serverless applications on AWS that enables you to focus on pure Go code while Mantil takes care of the infrastructure. - [Mizu](https://github.com/up9inc/mizu) - API traffic viewer for Kubernetes enabling you to view all API communication between microservices, multiprotocol support: HTTP1.1, HTTP/2, AMQP, Kafka, Redis. - [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. From 403d38bc159ee84ccc4ead71c1d9160f50442359 Mon Sep 17 00:00:00 2001 From: Reaper Date: Tue, 15 Mar 2022 19:41:54 +0530 Subject: [PATCH 2656/3440] add goblin - https://goblin.reaper.im (#4108) * Update README.md * alphabetical order Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ce9d36a5a4a..83da9fc517e 100644 --- a/README.md +++ b/README.md @@ -2956,6 +2956,7 @@ _Software written in Go._ - [gfile](https://github.com/Antonito/gfile) - Securely transfer files between two computers, without any third party, over WebRTC. - [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. - [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. +- [goblin](https://goblin.reaper.im) - Golang binaries in a curl, built by goblins. - [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. - [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. - [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. From 99f5b18197ddb3617ed033e59bce67325caee551 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 15 Mar 2022 16:21:35 -0300 Subject: [PATCH 2657/3440] add cto.ai to sponsor group Signed-off-by: Avelino --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 83da9fc517e..208038c2723 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,15 @@ _Special thanks to_
- + + -
- + + Doppler
Quit struggling with scattered API keys and access controls.
Keep your secrets in sync across environments, servers, and teams with Doppler.
+ +x-team
+Work from anywhere in the world with top tech companies like Riot Games, Coinbase, and Google. +
+
- + WorkOS
Your app, enterprise-ready.
Start selling to enterprise customers with just a few lines of code.
@@ -38,7 +44,7 @@ _Special thanks to_
- + keygen
A dead-simple software licensing and distribution API built for developers
Securely license and distribute Go applications with a single API.
@@ -48,7 +54,7 @@ _Special thanks to_
- + Digital Ocean
+ + +cto.ai
+workflow smarter, not harder
+Make the switch from one-size-fits-all CI/CD to PaaS
+workflows & turn k8s into a powerful developer experience
+that will measurably increase developer productivity by 200% +
Digital Ocean @@ -2907,7 +2915,7 @@ _Software written in Go._ - [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. - [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. - [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. -- [Mantil](https://github.com/mantil-io/mantil) - Go specific framework for building serverless applications on AWS that enables you to focus on pure Go code while Mantil takes care of the infrastructure. +- [Mantil](https://github.com/mantil-io/mantil) - Go specific framework for building serverless applications on AWS that enables you to focus on pure Go code while Mantil takes care of the infrastructure. - [Mizu](https://github.com/up9inc/mizu) - API traffic viewer for Kubernetes enabling you to view all API communication between microservices, multiprotocol support: HTTP1.1, HTTP/2, AMQP, Kafka, Redis. - [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. From 9904f286ba2bb8718b9606c98d13af6e7b61481c Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 15 Mar 2022 16:47:39 -0300 Subject: [PATCH 2658/3440] fixed position Signed-off-by: Avelino --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 208038c2723..9d6ff3ae64a 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,11 @@ _Special thanks to_
+ +Digital Ocean + + cto.ai
workflow smarter, not harder
@@ -61,11 +66,6 @@ _Special thanks to_ workflows & turn k8s into a powerful developer experience
that will measurably increase developer productivity by 200%
- -Digital Ocean - -
From 12af1ca93ad7805bdfce39f536f75a423eafff58 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 15 Mar 2022 20:48:35 -0300 Subject: [PATCH 2659/3440] equal column division Signed-off-by: Avelino --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9d6ff3ae64a..824ed73d735 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ _Special thanks to_ - @@ -588,7 +589,7 @@ additional ordered map implementations. - [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. - [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. -### Queues +### Queues - [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. - [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). @@ -1182,6 +1183,7 @@ _Tools for managing and working with Goroutines._ - [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. - [async](https://github.com/reugn/async) - An alternative sync library for Go (Future, Promise, Locks). - [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. +- [async-job](https://github.com/lab210-dev/async-job) - AsyncJob is an asynchronous queue job manager with light code, clear and speed. - [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. - [channelify](https://github.com/ddelizia/channelify) - Transform your function to return channels for easy and powerful parallel processing. - [concurrency-limiter](https://github.com/vivek-ng/concurrency-limiter) - Concurrency limiter with support for timeouts , dynamic priority and context cancellation of goroutines. From f91ef1c46f097b553572aa2f52dfa512b13467b2 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Tue, 24 May 2022 07:09:15 +0200 Subject: [PATCH 2766/3440] add spreak (#4226) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 66f4f089eee..26261a10070 100644 --- a/README.md +++ b/README.md @@ -1765,6 +1765,7 @@ See also [Text Processing](#text-processing) and [Text Analysis](#text-analysis) - [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. - [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. +- [spreak](https://github.com/vorlif/spreak) - Flexible translation and humanization library for Go, based on the concepts behind gettext. - [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. ### Transliteration From 92f1dd956564d5d3b02e5f1e8c07b56eac95228c Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Mon, 30 May 2022 19:59:24 +0800 Subject: [PATCH 2767/3440] add fpdecimal (#4236) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 26261a10070..f6cdb6dc4ad 100644 --- a/README.md +++ b/README.md @@ -1049,6 +1049,7 @@ _Packages for accounting and finance._ - [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. - [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. - [fastme](https://github.com/newity/fastme) - Fast extensible matching engine Go implementation. +- [fpdecimal](https://github.com/nikolaydubina/fpdecimal) - Fast and precise serialization and arithmetic for small fixed-point decimals - [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. - [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. - [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. From a6d59a3818a97c4a0b8f69a1509f5a6413bd3b3a Mon Sep 17 00:00:00 2001 From: Denis Palnitsky Date: Mon, 30 May 2022 15:12:28 +0200 Subject: [PATCH 2768/3440] Add num30/config (#4235) * Add num30/config --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6cdb6dc4ad..1fc96309ebd 100644 --- a/README.md +++ b/README.md @@ -438,6 +438,7 @@ _Libraries for configuration parsing._ - [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader. - [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). - [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. +- [config](https://github.com/num30/config) - configure you app using file, environment variables, or flags in two lines of code - [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. - [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. - [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. From 244e7997cbcc2b04d4ec6de0fcfed1e6f37cbf13 Mon Sep 17 00:00:00 2001 From: Rahul Baruri Date: Mon, 30 May 2022 18:10:07 +0200 Subject: [PATCH 2769/3440] Added exception in the readme (#4228) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1fc96309ebd..29b17b0c01a 100644 --- a/README.md +++ b/README.md @@ -1002,6 +1002,7 @@ _Libraries for handling errors._ - [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. - [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builting Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. - [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. +- [exception](https://github.com/rbrahul/exception) - A simple utility package for exception handling with try-catch in Golang. - [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. - [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. - [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. From df06b8923a1fe605b716cfd38b562d498556bc55 Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Tue, 31 May 2022 12:43:16 +0200 Subject: [PATCH 2770/3440] feat: adding samber/mo (#4239) --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 29b17b0c01a..648cee78836 100644 --- a/README.md +++ b/README.md @@ -438,7 +438,7 @@ _Libraries for configuration parsing._ - [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader. - [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). - [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. -- [config](https://github.com/num30/config) - configure you app using file, environment variables, or flags in two lines of code +- [config](https://github.com/num30/config) - configure you app using file, environment variables, or flags in two lines of code - [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. - [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. - [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. @@ -1051,7 +1051,7 @@ _Packages for accounting and finance._ - [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. - [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. - [fastme](https://github.com/newity/fastme) - Fast extensible matching engine Go implementation. -- [fpdecimal](https://github.com/nikolaydubina/fpdecimal) - Fast and precise serialization and arithmetic for small fixed-point decimals +- [fpdecimal](https://github.com/nikolaydubina/fpdecimal) - Fast and precise serialization and arithmetic for small fixed-point decimals - [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. - [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. - [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. @@ -1095,6 +1095,7 @@ _Packages to support functional programming in Go._ - [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go. - [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. - [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang. +- [mo](https://github.com/samber/mo) - Monads and popular FP abstractions, based on Go 1.18+ Generics (Option, Result, Either...). - [underscore](https://github.com/rjNemo/underscore) - Functional programming helpers for Go 1.18 and beyond. - [valor](https://github.com/phelmkamp/valor) - Generic option and result types that optionally contain a value. @@ -1768,7 +1769,7 @@ See also [Text Processing](#text-processing) and [Text Analysis](#text-analysis) - [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. - [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. -- [spreak](https://github.com/vorlif/spreak) - Flexible translation and humanization library for Go, based on the concepts behind gettext. +- [spreak](https://github.com/vorlif/spreak) - Flexible translation and humanization library for Go, based on the concepts behind gettext. - [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. ### Transliteration From f637c14724cd82f2d14440b755bc017648e02744 Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Tue, 31 May 2022 13:16:11 +0200 Subject: [PATCH 2771/3440] Adding samber/do (#4240) * feat: adding samber/do --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 648cee78836..ccb52fc16ed 100644 --- a/README.md +++ b/README.md @@ -1598,6 +1598,7 @@ _Libraries for working with dependency injection._ - [di](https://github.com/goava/di) - A dependency injection container for go programming language. - [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. - [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. +- [do](https://github.com/samber/do) - A dependency injection framework based on Generics. - [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). - [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. - [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. From fc2764c14f6a75f52dc93b3b27df1c1d8300d735 Mon Sep 17 00:00:00 2001 From: Carl Johnson Date: Wed, 1 Jun 2022 08:35:57 -0400 Subject: [PATCH 2772/3440] add carlmjohnson/be (#4241) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ccb52fc16ed..6d5604950f9 100644 --- a/README.md +++ b/README.md @@ -2182,6 +2182,7 @@ _Libraries for testing codebases and generating test data._ - [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. + - [be](https://github.com/carlmjohnson/be) - The minimalist generic test assertion library. - [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. - [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. - [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. From f31c12f22f22203c9282a99d3b6fd97e745faf7c Mon Sep 17 00:00:00 2001 From: Arseniy Zhizhelev Date: Wed, 1 Jun 2022 08:39:24 -0400 Subject: [PATCH 2773/3440] add goio (#4231) [goio](https://github.com/primetalk/goio) - An implementation of IO, Stream, Fiber for Golang, inspired by awesome Scala libraries cats and fs2. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6d5604950f9..7f95797c5c4 100644 --- a/README.md +++ b/README.md @@ -2145,6 +2145,7 @@ _Libraries and tools for binary serialization._ _Libraries and tools for stream processing and reactive programming._ - [go-streams](https://github.com/reugn/go-streams) - Go stream processing library. +- [goio](https://github.com/primetalk/goio) - An implementation of IO, Stream, Fiber for Golang, inspired by awesome Scala libraries cats and fs2. - [machine](https://github.com/whitaker-io/machine) - Go library for writing and generating stream workers with built in metrics and traceability. - [stream](https://github.com/youthlin/stream) - Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce... From 422d0e2433acfc72540d43dbf39a54902f8ecc87 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Wed, 1 Jun 2022 18:23:35 +0530 Subject: [PATCH 2774/3440] fix grammar --- .github/PULL_REQUEST_TEMPLATE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 4c313f1faf5..ec832a2a5aa 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,10 +17,10 @@ _Not every repository (project) will require every option, but most projects sho - [ ] As far as I know, the package has not been listed here before. - [ ] The repo documentation has a pkg.go.dev link. - [ ] The repo documentation has a coverage service link. -- [ ] The repo documenation has a goreportcard link. +- [ ] The repo documentation has a goreportcard link. - [ ] The repo has a version-numbered release and a go.mod file. - [ ] I have read the [Contribution Guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#contribution-guidelines), [Maintainers Note](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#maintainers) and [Quality Standards](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards). - [ ] The repo has a continuous integration process that automatically runs tests that must pass before new pull requests are merged. -- [ ] The authors of the project do not commit directly to the repo, but rather use pull-requests that run the continuous-integration process. +- [ ] The authors of the project do not commit directly to the repo, but rather use pull requests that run the continuous-integration process. Thanks for your PR, you're awesome! :+1: From d4b31d54aa416d5cd85415e0e84c6cb55d1df168 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Wed, 1 Jun 2022 18:26:10 +0530 Subject: [PATCH 2775/3440] add codewithmukesh.com ref: #4199 (#4242) * add codewithmukesh.com ref: #4199 https://github.com/avelino/awesome-go/pull/4199#discussion_r857585880 * alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7f95797c5c4..9ae3349b19f 100644 --- a/README.md +++ b/README.md @@ -3333,6 +3333,7 @@ _Where to discover new Go libraries._ - [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. - [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. - [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. +- [Code with Mukesh](https://codewithmukesh.com/blog/category/golang) - Software Engineer and Blogs @ codewithmukesh.com. - [Coding Mystery](https://codingmystery.com) - Solve exciting escape-room-inspired programming challenges using Go. - [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. - [Go Blog](https://blog.golang.org) - The official Go blog. @@ -3402,7 +3403,6 @@ _Where to discover new Go libraries._ - [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM. - [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. - [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. -- [Implementing CRUD in Golang REST API with Mux & GORM](https://codewithmukesh.com/blog/implementing-crud-in-golang-rest-api/) - Building a CRUD Golang REST API from scratch using MUX, GORM, MySQL, Viper and clean folder seperation. Entire source code is also included! - [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes. - [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. - [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example. From 3c5e33a6207081fd57d831a3b605eeefae797a82 Mon Sep 17 00:00:00 2001 From: Ivan Shalganov Date: Wed, 1 Jun 2022 19:17:25 +0300 Subject: [PATCH 2776/3440] add bzick/tokenizer (#4238) Add https://github.com/bzick/tokenizer --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ae3349b19f..cc7234c58c2 100644 --- a/README.md +++ b/README.md @@ -2326,6 +2326,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. - [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. - [sh](https://github.com/mvdan/sh) - Shell parser and formatter. +- [tokenizer](https://github.com/bzick/tokenizer) — Parse any string, slice or infinite buffer to any tokens. - [when](https://github.com/olebedev/when) - Natural EN and RU language date/time parser with pluggable rules. - [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. From 215dc24d020bf503598ad57825f40848f4139be4 Mon Sep 17 00:00:00 2001 From: d!key <79040270950@ya.ru> Date: Thu, 2 Jun 2022 12:35:57 +0300 Subject: [PATCH 2777/3440] add gio (#4172) * Added gio * update alphabetical order Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cc7234c58c2..fed82705f6c 100644 --- a/README.md +++ b/README.md @@ -1237,6 +1237,7 @@ _Toolkits_ - [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. - [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. +- [gio](https://gioui.org) - Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly. - [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron). - [go-gtk](https://mattn.github.io/go-gtk/) - Go bindings for GTK. - [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. From 4dc8f1a5d0e694cf54d7a7b091b732c97c37a3d2 Mon Sep 17 00:00:00 2001 From: Eugene R Date: Fri, 3 Jun 2022 15:33:37 +0300 Subject: [PATCH 2778/3440] add wifiqr (#4233) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fed82705f6c..730f27a8993 100644 --- a/README.md +++ b/README.md @@ -2634,6 +2634,7 @@ _General utilities and tools to make your life easier._ - [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, ...). +- [wifiqr](https://github.com/reugn/wifiqr) - Wi-Fi QR Code Generator. - [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. From d0012794c457fec72d36097ee4ed1ac3748b2307 Mon Sep 17 00:00:00 2001 From: Mikhail Kopylov Date: Fri, 3 Jun 2022 15:34:11 +0300 Subject: [PATCH 2779/3440] add goldmark (#4248) Co-authored-by: Mikhail Kopylov --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 730f27a8993..4f341a51236 100644 --- a/README.md +++ b/README.md @@ -2299,6 +2299,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. - [go-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. +- [goldmark](https://github.com/yuin/goldmark) - A Markdown parser written in Go. Easy to extend, standard (CommonMark) compliant, well structured. - [goq](https://github.com/andrewstuart/goq) - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery). - [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. - [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. From a778d7de73da0fa2a32011a198f2a73924f9875d Mon Sep 17 00:00:00 2001 From: xushiwei Date: Sun, 5 Jun 2022 08:34:38 +0800 Subject: [PATCH 2780/3440] add c2go (#4254) * c2go * goplus/c2go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f341a51236..8340234a90b 100644 --- a/README.md +++ b/README.md @@ -1171,6 +1171,7 @@ _Geographic tools and servers_ _Tools for compiling Go to other languages._ +- [c2go](https://github.com/goplus/c2go) - Convert C code to Go code. - [c4go](https://github.com/Konstantin8105/c4go) - Transpile C code to Go code. - [esp32](https://github.com/andygeiss/esp32-transpiler) - Transpile Go into Arduino code. - [f4go](https://github.com/Konstantin8105/f4go) - Transpile FORTRAN 77 code to Go code. From c8a375d01fcbc3c29a7a7b72051b186b17105d62 Mon Sep 17 00:00:00 2001 From: Kazuhisa TAKEI Date: Mon, 6 Jun 2022 02:47:17 +0900 Subject: [PATCH 2781/3440] add loncha (#4256) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8340234a90b..096a740df55 100644 --- a/README.md +++ b/README.md @@ -2570,6 +2570,7 @@ _General utilities and tools to make your life easier._ - [lets-go](https://github.com/aplescia-chwy/lets-go) - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities. - [limiters](https://github.com/mennanov/limiters) - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks. - [lo](https://github.com/samber/lo) - A Lodash like Go library based on Go 1.18+ Generics (map, filter, contains, find...) +- [loncha](https://github.com/kazu/loncha) - A high-performance slice Utilities. - [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go. - [mani](https://github.com/alajmo/mani) - CLI tool to help you manage multiple repositories. - [mc](https://github.com/minio/mc) - Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems. From dd4cc7e1d86453b5f259e7c44df7dbeb3e27662a Mon Sep 17 00:00:00 2001 From: Tim Bray Date: Mon, 6 Jun 2022 09:08:59 -0700 Subject: [PATCH 2782/3440] add quamina (#4260) Signed-off-by: Tim Bray --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 096a740df55..92ca07c867f 100644 --- a/README.md +++ b/README.md @@ -1562,6 +1562,7 @@ _Libraries that implement messaging systems._ - [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. - [pubsub](https://github.com/tuxychandru/pubsub) - Simple pubsub package for go. +- [Quamina](https://github.com/timbray/quamina) - Fast pattern-matching for filtering messages and events. - [rabbus](https://github.com/rafaeljesus/rabbus) - A tiny wrapper over amqp exchanges and queues. - [rabtap](https://github.com/jandelgado/rabtap) - RabbitMQ swiss army knife cli app. - [RapidMQ](https://github.com/sybrexsys/RapidMQ) - RapidMQ is a lightweight and reliable library for managing of the local messages queue. From 8554e858a222a97324d0ac0e3a54eb8d67fc296f Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Thu, 9 Jun 2022 15:36:00 +0900 Subject: [PATCH 2783/3440] rename Ebiten -> Ebitengine (#4262) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92ca07c867f..2a9969e7e5b 100644 --- a/README.md +++ b/README.md @@ -1106,7 +1106,7 @@ _Packages to support functional programming in Go._ _Awesome game development libraries._ - [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go. -- [Ebiten](https://github.com/hajimehoshi/ebiten) - dead simple 2D game library in Go. +- [Ebitengine](https://github.com/hajimehoshi/ebiten) - dead 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. - [g3n](https://github.com/g3n/engine) - Go 3D Game Engine. - [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A\* path finding algorithm. From d20bc5ea15fb7b440637d0d8f547fbf1be06f2f1 Mon Sep 17 00:00:00 2001 From: Kieran <32241933+KieranRobson@users.noreply.github.com> Date: Thu, 9 Jun 2022 20:21:40 +0100 Subject: [PATCH 2784/3440] Remove dead links (#4263) --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 2a9969e7e5b..591749f9883 100644 --- a/README.md +++ b/README.md @@ -2442,7 +2442,6 @@ _Libraries for accessing third party APIs._ - [hipchat (xmpp)](https://github.com/daneharrigan/hipchat) - A golang package to communicate with HipChat over XMPP. - [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). - [jokeapi-go](https://github.com/icelain/jokeapi) - Go client for [JokeAPI](https://sv443.net/jokeapi/v2/). -- [kanka](https://github.com/Henry-Sarabia/kanka) - Go client for the [Kanka API](https://kanka.io/en-US/docs/1.0). - [lark](https://github.com/chyroc/lark) - [Feishu](https://open.feishu.cn/)/[Lark](https://open.larksuite.com/) Open API Go SDK, Support ALL Open API and Event Callback. - [lastpass-go](https://github.com/ansd/lastpass-go) - Go client library for the [LastPass](https://www.lastpass.com/) API. - [libgoffi](https://github.com/clevabit/libgoffi) - Library adapter toolbox for native [libffi](https://sourceware.org/libffi/) integration @@ -3265,7 +3264,6 @@ _Where to discover new Go libraries._ - [Golang Gurgaon, India](https://www.meetup.com/Gurgaon-Go-Meetup/) - [Golang Hamburg - Germany](https://www.meetup.com/Go-User-Group-Hamburg/) - [Golang Israel](https://www.meetup.com/Go-Israel/) -- [Golang Joinville - Brazil](https://www.meetup.com/Joinville-Go-Meetup/) - [Golang Kathmandu](https://www.meetup.com/Golang-Kathmandu/) - [Golang Korea](https://www.meetup.com/GDG-Golang-Korea/) - [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) @@ -3273,7 +3271,6 @@ _Where to discover new Go libraries._ - [Golang Marseille](https://www.meetup.com/fr-FR/Golang-Marseille/) - [Golang Melbourne](https://www.meetup.com/golang-mel/) - [Golang Mountain View](https://www.meetup.com/Golang-Mountain-View/) -- [Golang New York](https://www.meetup.com/nycgolang/) - [Golang North East](https://www.meetup.com/en-AU/Golang-North-East/) - [Golang Paris](https://www.meetup.com/Golang-Paris/) - [Golang Poland](https://www.meetup.com/Golang-Poland/) @@ -3347,7 +3344,6 @@ _Where to discover new Go libraries._ - [Go Code Club](https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3) - A group of Gophers read and discuss a different Go project every week. - [Go Community on Hashnode](https://hashnode.com/n/go) - Community of Gophers on Hashnode. - [Go Forum](https://forum.golangbridge.org) - Forum to discuss Go. -- [Go In 5 Minutes](https://www.goin5minutes.com/) - 5 minute screencasts focused on getting one thing done. - [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. - [Go Proverbs](https://go-proverbs.github.io/) - Go Proverbs by Rob Pike. - [Go Report Card](https://goreportcard.com) - A report card for your Go package. From 50b2efc0a47a27844967506a549ce5147c039be7 Mon Sep 17 00:00:00 2001 From: Kieran <32241933+KieranRobson@users.noreply.github.com> Date: Fri, 10 Jun 2022 12:37:29 +0100 Subject: [PATCH 2785/3440] Link updates and cleanup (#4267) --- README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 591749f9883..125738922de 100644 --- a/README.md +++ b/README.md @@ -2899,7 +2899,6 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [golang-ifood-sdk](https://github.com/arxdsilva/golang-ifood-sdk) - iFood API SDK. - [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. - [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. -- [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. - [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. - [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. - [gosimple](https://github.com/dominikh/go-tools/tree/master/cmd/gosimple) - gosimple is a linter for Go source code that specialises on simplifying code. @@ -3168,14 +3167,13 @@ _Where to discover new Go libraries._ - [GopherCon](https://www.gophercon.com/) - Denver, USA. - [GopherCon Australia](https://gophercon.com.au/) - Sydney, Australia. - [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, Brazil. -- [GopherCon Europe](https://gophercon.is/) - Berlin, Germany. +- [GopherCon Europe](https://gophercon.eu/) - Berlin, Germany. - [GopherCon India](https://www.gophercon.in/) - Pune, India. - [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel. - [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia. - [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore. - [GopherCon UK](https://www.gophercon.co.uk/) - London, UK. - [GopherCon Vietnam](https://gophercon.vn/) - Ho Chi Minh City, Vietnam. -- [GoWayFest](https://goway.io/) - Minsk, Belarus. - [GoWest Conference](https://www.gowestconf.com/) - Lehi, USA. **[⬆ back to top](#contents)** @@ -3205,7 +3203,7 @@ _Where to discover new Go libraries._ - [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. - [How To Code in Go eBook](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) - A 600 page introduction to Go aimed at first time developers. - [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) -- [Network Programming With Go](https://jan.newmarch.name/go/) +- [Network Programming With Go](https://jan.newmarch.name/golang/) - [Practical Go Lessons](https://www.practical-go-lessons.com/) - [Spaceship Go A Journey to the Standard Library](https://blasrodri.github.io/spaceship-go-gh-pages/) - [The Go Programming Language](https://www.gopl.io/) @@ -3363,7 +3361,6 @@ _Where to discover new Go libraries._ - [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. - [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). - [Learn Go Programming](https://blog.learngoprogramming.com) - Learn Go concepts with illustrations. -- [Lille Gophers](https://lille-gophers.loscrackitos.codes/) - Golang talks community in Lille, France ([@LilleGophers](https://twitter.com/LilleGophers)). - [Made with Golang](https://madewithgolang.com/?ref=awesome-go) - [r/Golang](https://www.reddit.com/r/golang) - News about Go. - [studygolang](https://studygolang.com) - The community of studygolang in China. @@ -3390,7 +3387,6 @@ _Where to discover new Go libraries._ - [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. - [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. - [Go Language Tutorial](https://www.javatpoint.com/go-tutorial) - Learn Go language Tutorial. -- [Go Playground for iOS](https://codeplayground.app) - Interactively edit & play Go snippets on your mobile device. - [Go Tutorial](https://www.tutorialspoint.com/go/index.htm) - Learn Go programming. - [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) - [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services. From 589905ffae81f11e9101122264beab4e0f64f290 Mon Sep 17 00:00:00 2001 From: Amir Ariffin <22372978+cglotr@users.noreply.github.com> Date: Fri, 10 Jun 2022 20:28:34 +0800 Subject: [PATCH 2786/3440] run stale repo check as test instead (#4265) --- .github/workflows/run-check.yaml | 2 +- .gitignore | 1 + ...le_repositories.go => stale_repositories_test.go | 13 +++++-------- 3 files changed, 7 insertions(+), 9 deletions(-) rename test_stale_repositories.go => stale_repositories_test.go (98%) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index d17ad7a16bf..f9cfa9dcbe9 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -13,6 +13,6 @@ jobs: - name: Get dependencies run: go get -v -t -d ./... - name: run script - run: go run test_stale_repositories.go scripts.go + run: go test stale_repositories_test.go scripts.go env: OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} diff --git a/.gitignore b/.gitignore index 6230dcfff0c..9a7c1cec19a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ tmpl/index.html awesome-go +vendor # Folders .idea diff --git a/test_stale_repositories.go b/stale_repositories_test.go similarity index 98% rename from test_stale_repositories.go rename to stale_repositories_test.go index 7fb65deaf5b..8a992e4cc8d 100644 --- a/test_stale_repositories.go +++ b/stale_repositories_test.go @@ -2,6 +2,7 @@ package main import ( "bytes" + "context" "encoding/json" "fmt" "log" @@ -9,6 +10,7 @@ import ( "os" "regexp" "strings" + "testing" "text/template" "time" @@ -36,8 +38,6 @@ const movedPermanently = " status code 301 received" const status302 = " status code 302 received" const archived = " repository has been archived" -var delay time.Duration = 1 - //LIMIT specifies the max number of repositories that are added in a single run of the script var LIMIT = 10 var ctr = 0 @@ -140,10 +140,7 @@ func getAllFlaggedRepositories(client *http.Client, flaggedRepositories *map[str } func containsOpenIssue(link string, openIssues map[string]bool) bool { _, ok := openIssues[link] - if ok { - return true - } - return false + return ok } func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { if toRun { @@ -232,7 +229,7 @@ func testStaleRepository() { tokenSource := &tokenSource{ AccessToken: oauth, } - client = oauth2.NewClient(oauth2.NoContext, tokenSource) + client = oauth2.NewClient(context.Background(), tokenSource) } err := getAllFlaggedRepositories(client, &addressedRepositories) @@ -270,6 +267,6 @@ func testStaleRepository() { createIssue(staleRepos, client) } -func main() { +func TestStaleRepository(t *testing.T) { testStaleRepository() } From a4e3404c9ad205348b295d156b4da4b14b83dd30 Mon Sep 17 00:00:00 2001 From: Hao Chen Date: Wed, 15 Jun 2022 13:56:54 +0800 Subject: [PATCH 2787/3440] add the EaseProbe (#4281) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 125738922de..9272e0f7f69 100644 --- a/README.md +++ b/README.md @@ -2509,6 +2509,7 @@ _General utilities and tools to make your life easier._ - [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. - [delve](https://github.com/derekparker/delve) - Go debugger. - [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. +- [EaseProbe](https://github.com/megaease/easeprobe) - A simple, standalone, and lightWeight tool that can do health/status checking daemon, support HTTP/TCP/SSH/Shell/Client/... probes, and Slack/Discord/Telegram/SMS... notification. - [equalizer](https://github.com/reugn/equalizer) - Quota manager and rate limiter collection for Go. - [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. - [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. From 1a81bd2bd9078a901eef37762885b85149d08cce Mon Sep 17 00:00:00 2001 From: Ricard Bejarano Date: Thu, 16 Jun 2022 07:55:55 +0200 Subject: [PATCH 2788/3440] add gotemplate.io (#4284) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9272e0f7f69..52998a02bb9 100644 --- a/README.md +++ b/README.md @@ -2967,6 +2967,7 @@ _Plugin for text editors and IDEs._ - [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. - [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. - [gomodrun](https://github.com/dustinblackman/gomodrun/) - Go tool that executes and caches binaries included in go.mod files. +- [gotemplate.io](https://gotemplate.io/) - Online tool to preview `text/template` templates live. - [gotestdox](https://github.com/bitfield/gotestdox) - Show Go test results as readable sentences. - [gothanks](https://github.com/psampaz/gothanks) - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. - [igo](https://github.com/rocketlaunchr/igo) - An igo to go transpiler (new language features for Go language!) From a66cd9e3a047f06f25809cda51a2a9d686a11c70 Mon Sep 17 00:00:00 2001 From: Dmitriy Sviridov Date: Thu, 16 Jun 2022 19:07:38 +0300 Subject: [PATCH 2789/3440] Library go-email-normalizer moved to the correct category (#4280) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 52998a02bb9..f34ef0c113f 100644 --- a/README.md +++ b/README.md @@ -248,7 +248,6 @@ _Libraries for implementing authentications schemes._ - [branca](https://github.com/essentialkaos/branca) - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+. - [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. - [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. -- [go-email-normalizer](https://github.com/dimuska139/go-email-normalizer) - Golang library for providing a canonical representation of email address. - [go-guardian](https://github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token and Certificate based authentication. - [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. - [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. @@ -943,6 +942,7 @@ _Libraries and tools that implement email creation and sending._ - [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go. - [email-verifier](https://github.com/AfterShip/email-verifier) - A Go library for email verification without sending any emails. - [go-dkim](https://github.com/toorop/go-dkim) - DKIM library, to sign & verify email. +- [go-email-normalizer](https://github.com/dimuska139/go-email-normalizer) - Golang library for providing a canonical representation of email address. - [go-email-validator](https://github.com/go-email-validator/go-email-validator) - Modular email validator for syntax, disposable, smtp, etc... checking. - [go-imap](https://github.com/emersion/go-imap) - IMAP library for clients and servers. - [go-mail](https://github.com/wneessen/go-mail) - A simple Go library for sending mails in Go. From 8309a5629d600dc79908db966180cecc4c30e2f8 Mon Sep 17 00:00:00 2001 From: Josh Treadwell Date: Thu, 23 Jun 2022 16:00:41 -0500 Subject: [PATCH 2790/3440] Fix website rendering of Database/Caches section (#4296) Add an extra line break to prevent the awesome-go.com website from rendering the "Caches" section incorrectly --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f34ef0c113f..ed8a9b89ea3 100644 --- a/README.md +++ b/README.md @@ -637,6 +637,7 @@ additional ordered map implementations. ### Caches _Data stores with expiring records, in-memory distributed data stores, or in-memory subsets of file-based databases._ + - [2q](https://github.com/floatdrop/2q) - 2Q in-memory cache implementation. - [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. - [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. From a61e3c48d416ad18dc60eea774cf5272f58c68b1 Mon Sep 17 00:00:00 2001 From: Stas Kobzar Date: Thu, 23 Jun 2022 17:04:26 -0400 Subject: [PATCH 2791/3440] add goagi library (#4243) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed8a9b89ea3..4460b047a94 100644 --- a/README.md +++ b/README.md @@ -2426,6 +2426,7 @@ _Libraries for accessing third party APIs._ - [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. - [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. - [go-yapla](https://git.iglou.eu/Production/go-yapla) - Go client library for the Yapla v2.0 API. +- [goagi](https://github.com/staskobzar/goagi) - Go library to build Asterisk PBX agi/fastagi applications. - [gogtrends](https://github.com/groovili/gogtrends) - Google Trends Unofficial API. - [golang-tmdb](https://github.com/cyruzin/golang-tmdb) - Golang wrapper for The Movie Database API v3. - [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. From aff41aa2cdcff2ddcb1571798200f97bc0431c4e Mon Sep 17 00:00:00 2001 From: Amir Ariffin <22372978+cglotr@users.noreply.github.com> Date: Fri, 24 Jun 2022 05:12:02 +0800 Subject: [PATCH 2792/3440] Add go-mysql-test-container (#4261) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4460b047a94..824b3ebf6b9 100644 --- a/README.md +++ b/README.md @@ -2207,6 +2207,7 @@ _Libraries for testing codebases and generating test data._ - [go-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests. - [go-hit](https://github.com/Eun/go-hit) - Hit is an http integration test framework written in golang. - [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. + - [go-mysql-test-container](https://github.com/arikama/go-mysql-test-container) - Golang MySQL testcontainer to help with MySQL integration testing. - [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. - [go-testpredicate](https://github.com/maargenton/go-testpredicate) - Test predicate style assertions library with extensive diagnostics output. - [go-vcr](https://github.com/dnaeon/go-vcr) - Record and replay your HTTP interactions for fast, deterministic and accurate tests. From 0bebc9ff9033c88a7abbd37f5d71405b0e3d6dda Mon Sep 17 00:00:00 2001 From: Sarup Banskota Date: Thu, 23 Jun 2022 14:16:10 -0700 Subject: [PATCH 2793/3440] Add CodeCrafters Golang Track (#4266) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 824b3ebf6b9..7362d6024c7 100644 --- a/README.md +++ b/README.md @@ -3384,6 +3384,7 @@ _Where to discover new Go libraries._ - [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. - [Caching Slow Database Queries](https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9) - How to cache slow database queries. - [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. +- [CodeCrafters Golang Track](https://app.codecrafters.io/tracks/go) — Achieve mastery in advanced Go by building your own Redis, Docker, Git, and SQLite. Featuring goroutines, systems programming, file I/O, and more. - [Debugged.it Go patterns](https://github.com/haveyoudebuggedit/go-patterns) - Advanced Go patterns with ready-to-run examples. - [Design Patterns in Go](https://github.com/shubhamzanwar/design-patterns) - Collection of programming design patterns implemented in Go. - [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. From 04e52ca9d9583d63ec46f647b484f556a2e8b302 Mon Sep 17 00:00:00 2001 From: Inhere Date: Fri, 24 Jun 2022 05:21:25 +0800 Subject: [PATCH 2794/3440] add github.com/gookit/slog (#4275) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7362d6024c7..afbe2e5b09b 100644 --- a/README.md +++ b/README.md @@ -1458,6 +1458,7 @@ _Libraries for generating and working with log files._ - [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. - [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. - [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. +- [slog](https://github.com/gookit/slog) Lightweight, configurable, extensible logger for Go. - [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. - [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. From f47f03869cf71783fee5d1d0f87d67773ea4ae5c Mon Sep 17 00:00:00 2001 From: phuslu Date: Sun, 26 Jun 2022 14:20:09 +0800 Subject: [PATCH 2795/3440] update phuslu/log description. (#4303) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index afbe2e5b09b..48bf9a4c224 100644 --- a/README.md +++ b/README.md @@ -1454,7 +1454,7 @@ _Libraries for generating and working with log files._ - [noodlog](https://github.com/gyozatech/noodlog) - Parametrized JSON logging library which lets you obfuscate sensitive data and marshal any kind of content. No more printed pointers instead of values, nor escape chars for the JSON strings. - [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation. - [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). -- [phuslu/log](https://github.com/phuslu/log) - Structured Logging Made Easy. +- [phuslu/log](https://github.com/phuslu/log) - High performance structured logging. - [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. - [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. - [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. From 126df39734693e53ac29a1b6d0675a3f689c81b9 Mon Sep 17 00:00:00 2001 From: Ben Hoyt Date: Tue, 14 Jun 2022 10:42:06 +1200 Subject: [PATCH 2796/3440] Move hasql to correct section; remove mpath * [`hasql`](https://github.com/yandex/go-hasql) is not a query builder, it's a library for working with multi-host (high availability) database clusters, so move to "Database Tools" section * [`mpath`](https://github.com/spacetab-io/mpath-go) doesn't have anything to do with databases or SQL, so remove --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 48bf9a4c224..8c6d62760eb 100644 --- a/README.md +++ b/README.md @@ -730,6 +730,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [dynago](https://github.com/twharmon/dynago) - Simplify working with AWS DynamoDB. - [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. - [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. +- [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. - [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. Supports statement and row based replication. - [octillery](https://github.com/knocknote/octillery) - Go package for sharding databases ( Supports every ORM or raw SQL ). @@ -753,10 +754,8 @@ _Libraries for building and using SQL._ - [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. - [goqu](https://github.com/doug-martin/goqu) - Idiomatic SQL builder and query library. - [gosql](https://github.com/twharmon/gosql) - SQL Query builder with better null values support. -- [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. - [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. - [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. -- [mpath](https://github.com/spacetab-io/mpath-go) - MPTT (Modified Preorder Tree Traversal) package for SQL records - materialized path realisation. - [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. - [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. - [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. From c288d8fa853df42594d99b91b6dd3e2b3d14c495 Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Wed, 29 Jun 2022 10:55:45 +0800 Subject: [PATCH 2797/3440] Remove [rerate] for more-than-5-years inactivity --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8c6d62760eb..a2dd5644e59 100644 --- a/README.md +++ b/README.md @@ -2608,7 +2608,6 @@ _General utilities and tools to make your life easier._ - [reflectutils](https://github.com/muir/reflectutils) - Helpers for working with reflection: struct tag parsing; recursive walking; fill value from string. - [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. - [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. -- [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. - [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. - [rest-go](https://github.com/edermanoel94/rest-go) - A package that provide many helpful methods for working with rest api. - [retry](https://github.com/kamilsk/retry) - The most advanced functional mechanism to perform actions repetitively until successful. From a1a555b417171fe3aa55b23220ac4d1166887ad7 Mon Sep 17 00:00:00 2001 From: bdjimmy <39963662+bdjimmy@users.noreply.github.com> Date: Tue, 14 Jun 2022 11:54:32 +0800 Subject: [PATCH 2798/3440] Add gbind --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a2dd5644e59..a802d92d9b6 100644 --- a/README.md +++ b/README.md @@ -1078,6 +1078,7 @@ _Libraries for working with forms._ - [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. - [formam](https://github.com/monoculum/formam) - decode form's values into a struct. - [forms](https://github.com/albrow/forms) - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. +- [gbind](https://github.com/bdjimmy/gbind) - Bind data to any Go value. Can use built-in and custom expression binding capabilities; supports data validation - [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications & services. - [httpin](https://github.com/ggicci/httpin) - Decode an HTTP request into a custom struct, including querystring, forms, HTTP headers, etc. - [nosurf](https://github.com/justinas/nosurf) - CSRF protection middleware for Go. From a32d0cdebf51f26467858d6b2551828af17dcaaf Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Wed, 22 Jun 2022 20:35:37 +0800 Subject: [PATCH 2799/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a802d92d9b6..b44d7ead5e3 100644 --- a/README.md +++ b/README.md @@ -1052,6 +1052,7 @@ _Packages for accounting and finance._ - [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. - [fastme](https://github.com/newity/fastme) - Fast extensible matching engine Go implementation. - [fpdecimal](https://github.com/nikolaydubina/fpdecimal) - Fast and precise serialization and arithmetic for small fixed-point decimals +- [fpmoney](https://github.com/nikolaydubina/fpdecimal) - Fast and simple ISO 4217 fixed-point decimal money. - [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. - [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. - [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. From 56bae9c1278a502b97b811e5b433a4859f1dd900 Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Thu, 23 Jun 2022 00:42:32 +0800 Subject: [PATCH 2800/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b44d7ead5e3..69752434ef0 100644 --- a/README.md +++ b/README.md @@ -1052,7 +1052,7 @@ _Packages for accounting and finance._ - [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. - [fastme](https://github.com/newity/fastme) - Fast extensible matching engine Go implementation. - [fpdecimal](https://github.com/nikolaydubina/fpdecimal) - Fast and precise serialization and arithmetic for small fixed-point decimals -- [fpmoney](https://github.com/nikolaydubina/fpdecimal) - Fast and simple ISO 4217 fixed-point decimal money. +- [fpmoney](https://github.com/nikolaydubina/fpmoney) - Fast and simple ISO4217 fixed-point decimal money. - [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. - [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. - [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. From 177bdc167a35b7270bc467f67cd028b14ce46894 Mon Sep 17 00:00:00 2001 From: Anton Kornilov Date: Sun, 10 Jul 2022 23:46:06 +0300 Subject: [PATCH 2801/3440] Add gorm-seeder (#4273) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 69752434ef0..f4190b8d285 100644 --- a/README.md +++ b/README.md @@ -709,6 +709,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [goavro](https://github.com/linkedin/goavro) - A Go package that encodes and decodes Avro data. - [godfish](https://github.com/rafaelespinoza/godfish) - Database migration manager, works with native query language. Support for cassandra, mysql, postgres, sqlite3. - [goose](https://github.com/pressly/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. +- [gorm-seeder](https://github.com/Kachit/gorm-seeder) - Simple database seeder for Gorm ORM. - [gormigrate](https://github.com/go-gormigrate/gormigrate) - Database schema migration helper for Gorm ORM. - [libschema](https://github.com/muir/libschema) - Define your migrations separately in each libary. Migrations for open source libraries. MySQL & PostgreSQL. - [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. From 97686aaaf3b02d16b9d0527e0f87cf623673a923 Mon Sep 17 00:00:00 2001 From: Stas Kobzar Date: Sun, 10 Jul 2022 16:46:47 -0400 Subject: [PATCH 2802/3440] add goami2 (#4245) * add goagi library * add goami2 * goami2 - fix order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f4190b8d285..f49954f80f8 100644 --- a/README.md +++ b/README.md @@ -2431,6 +2431,7 @@ _Libraries for accessing third party APIs._ - [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. - [go-yapla](https://git.iglou.eu/Production/go-yapla) - Go client library for the Yapla v2.0 API. - [goagi](https://github.com/staskobzar/goagi) - Go library to build Asterisk PBX agi/fastagi applications. +- [goami2](https://github.com/staskobzar/goami2) - AMI v2 library for Asterisk PBX. - [gogtrends](https://github.com/groovili/gogtrends) - Google Trends Unofficial API. - [golang-tmdb](https://github.com/cyruzin/golang-tmdb) - Golang wrapper for The Movie Database API v3. - [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. From 88dbfeecea7abe6b997d95621ac8e0a89bbf0eb4 Mon Sep 17 00:00:00 2001 From: Eason Date: Mon, 11 Jul 2022 04:48:19 +0800 Subject: [PATCH 2803/3440] add go-zoox/fetch (#4285) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f49954f80f8..62961283dd3 100644 --- a/README.md +++ b/README.md @@ -1872,6 +1872,7 @@ _Libraries for making HTTP requests._ - [go-otelroundtripper](https://github.com/NdoleStudio/go-otelroundtripper) - Go http.RoundTripper that emits open telemetry metrics for HTTP requests. - [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. - [go-retryablehttp](https://github.com/hashicorp/go-retryablehttp) - Retryable HTTP client in Go. +- [go-zoox/fetch](https://github.com/go-zoox/fetch) - A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API. - [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. - [heimdall](https://github.com/gojektech/heimdall) - An enhanced http client with retry and hystrix capabilities. - [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. From 8efc1668a68dba52788dad7d742bdbd3ae6ebf01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Esser?= Date: Sun, 10 Jul 2022 21:49:58 +0100 Subject: [PATCH 2804/3440] fixes small typos in README.md (#4286) --- README.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 62961283dd3..7ad39e50f2f 100644 --- a/README.md +++ b/README.md @@ -465,7 +465,7 @@ _Libraries for configuration parsing._ - [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. - [gonfig](https://github.com/milad-abbasi/gonfig) - Tag-based configuration parser which loads values from different providers into typesafe struct. - [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. -- [harvester](https://github.com/beatlabs/harvester) - Harvester, a easy to use static and dynamic configuration package supportig seeding, env vars and Consul integration. +- [harvester](https://github.com/beatlabs/harvester) - Harvester, a easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration. - [hjson](https://github.com/hjson/hjson-go) - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. - [hocon](https://github.com/gurkankaymak/hocon) - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files. - [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file. @@ -475,7 +475,7 @@ _Libraries for configuration parsing._ - [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. - [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. - [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. -- [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (succesor to `kingpin`). +- [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (successor to `kingpin`). - [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. - [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. - [nfigure](https://github.com/muir/nfigure) - Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML @@ -650,7 +650,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. - [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. - [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. -- [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. +- [gocache](https://github.com/eko/gocache) - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. - [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). - [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. @@ -711,7 +711,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [goose](https://github.com/pressly/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. - [gorm-seeder](https://github.com/Kachit/gorm-seeder) - Simple database seeder for Gorm ORM. - [gormigrate](https://github.com/go-gormigrate/gormigrate) - Database schema migration helper for Gorm ORM. -- [libschema](https://github.com/muir/libschema) - Define your migrations separately in each libary. Migrations for open source libraries. MySQL & PostgreSQL. +- [libschema](https://github.com/muir/libschema) - Define your migrations separately in each library. Migrations for open source libraries. MySQL & PostgreSQL. - [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. - [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. - [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code. @@ -1001,7 +1001,7 @@ _Libraries for handling errors._ - [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. - [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. - [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. -- [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builting Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. +- [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. - [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. - [exception](https://github.com/rbrahul/exception) - A simple utility package for exception handling with try-catch in Golang. - [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. @@ -1047,7 +1047,7 @@ _Libraries for handling files and file systems._ _Packages for accounting and finance._ - [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang. -- [ach](https://github.com/moov-io/ach) - A reader, writer, and valdiator for Automated Clearing House (ACH) files. +- [ach](https://github.com/moov-io/ach) - A reader, writer, and validator for Automated Clearing House (ACH) files. - [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. - [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. - [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. @@ -1423,7 +1423,7 @@ _Libraries for generating and working with log files._ - [glo](https://github.com/lajosbencz/glo) - PHP Monolog inspired logging facility with identical severity levels. - [glog](https://github.com/golang/glog) - Leveled execution logs for Go. - [go-cronowriter](https://github.com/utahta/go-cronowriter) - Simple writer that rotate log files automatically based on current date and time, like cronolog. -- [go-log](https://github.com/pieterclaerhout/go-log) - A logging library with strack traces, object dumping and optional timestamps. +- [go-log](https://github.com/pieterclaerhout/go-log) - A logging library with stack traces, object dumping and optional timestamps. - [go-log](https://github.com/subchen/go-log) - Simple and configurable Logging in Go, with level, formatters and writers. - [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. - [go-log](https://github.com/ian-kent/go-log) - Log4j implementation in Go. @@ -2506,7 +2506,7 @@ _General utilities and tools to make your life easier._ - [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. - [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. - [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. -- [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standarts. +- [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standards. - [create-go-app](https://github.com/create-go-app/cli) - A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command. - [cryptgo](https://github.com/Gituser143/cryptgo) - Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time! - [ctop](https://github.com/bcicen/ctop) - [Top-like](https://ctop.sh) interface (e.g. htop) for container metrics. @@ -2520,7 +2520,7 @@ _General utilities and tools to make your life easier._ - [EaseProbe](https://github.com/megaease/easeprobe) - A simple, standalone, and lightWeight tool that can do health/status checking daemon, support HTTP/TCP/SSH/Shell/Client/... probes, and Slack/Discord/Telegram/SMS... notification. - [equalizer](https://github.com/reugn/equalizer) - Quota manager and rate limiter collection for Go. - [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. -- [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend. +- [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamically based on s-expression. It's simple and easy to extend. - [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. - [filter](https://github.com/gookit/filter) - provide filtering, sanitizing, and conversion of Go data. @@ -2573,7 +2573,7 @@ _General utilities and tools to make your life easier._ - [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. - [intrinsic](https://github.com/mengzhuo/intrinsic) - Use x86 SIMD without writing any assembly code. -- [jsend](https://github.com/clevergo/jsend) - JSend's implementation writen in Go. +- [jsend](https://github.com/clevergo/jsend) - JSend's implementation written in Go. - [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. - [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. - [lets-go](https://github.com/aplescia-chwy/lets-go) - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities. @@ -2995,7 +2995,7 @@ _Software written in Go._ ### DevOps Tools -- [abbreviate](https://github.com/dnnrly/abbreviate) - abbreviate is a tool turning long strings in to shorter ones with configurable seperaters, for example to embed branch names in to deployment stack IDs. +- [abbreviate](https://github.com/dnnrly/abbreviate) - abbreviate is a tool turning long strings in to shorter ones with configurable separators, for example to embed branch names in to deployment stack IDs. - [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. - [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. - [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. @@ -3357,7 +3357,7 @@ _Where to discover new Go libraries._ - [go.dev](https://go.dev/) - A hub for Go developers. - [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. - [godoc.org](https://godoc.org/) - Documentation for open source Go packages. -- [Golang Developer Jobs](https://golangjob.xyz) - Developer Jobs exclusivly for Golang related Roles. +- [Golang Developer Jobs](https://golangjob.xyz) - Developer Jobs exclusively for Golang related Roles. - [Golang Flow](https://golangflow.io) - Post Updates, News, Packages and more. - [Golang News](https://golangnews.com) - Links and news about Go programming. - [Golang Resources](https://golangresources.com) - A curation of the best articles, exercises, talks and videos to learn Go. @@ -3424,3 +3424,4 @@ _Where to discover new Go libraries._ - [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. **[⬆ back to top](#contents)** + From f56a981517e6e5b69584627d32c92d5c165d43c9 Mon Sep 17 00:00:00 2001 From: Tai-Li Shih Date: Mon, 11 Jul 2022 04:50:59 +0800 Subject: [PATCH 2805/3440] add go-cache in README (#4287) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ad39e50f2f..f2ecc781a62 100644 --- a/README.md +++ b/README.md @@ -649,6 +649,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. - [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. - [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. +- [go-cache](https://github.com/viney-shih/go-cache) - A flexible multi-layer Go caching library to deal with in-memory and shared cache by adopting Cache-Aside pattern. - [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. - [gocache](https://github.com/eko/gocache) - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. From e4c4d9fa5697a50d6d31b927d6b555522001d89c Mon Sep 17 00:00:00 2001 From: Maksym Kryvchun Date: Sun, 10 Jul 2022 23:52:19 +0300 Subject: [PATCH 2806/3440] Add rex (#4290) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f2ecc781a62..a094d916471 100644 --- a/README.md +++ b/README.md @@ -2347,6 +2347,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [go-wildcard](https://github.com/IGLOU-EU/go-wildcard) - Simple and lightweight wildcard pattern matching. - [goregen](https://github.com/zach-klippenstein/goregen) - Library for generating random strings from regular expressions. - [regroup](https://github.com/oriser/regroup) - Match regex expression named groups into go struct using struct tags and automatic parsing. +- [rex](https://github.com/hedhyw/rex) - Regular expressions builder. ### Sanitation From e46abf9dfa781ed9626ffe04d1de92feb5931847 Mon Sep 17 00:00:00 2001 From: Antonio Date: Sun, 10 Jul 2022 16:00:51 -0500 Subject: [PATCH 2807/3440] fullproxy repository project (#4293) - URL to fullproxy project ( https://github.com/shoriwe/fullproxy ) - pkg.go.dev ( https://pkg.go.dev/github.com/shoriwe/fullproxy/v3 ) - Go report ( https://goreportcard.com/report/github.com/shoriwe/fullproxy/v3 ) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a094d916471..ed0a8a283ea 100644 --- a/README.md +++ b/README.md @@ -1808,6 +1808,7 @@ _Libraries for working with various layers of the network._ - [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. - [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959). - [ftpserverlib](https://github.com/fclairamb/ftpserverlib) - Fully featured FTP server library. +- [fullproxy](https://github.com/shoriwe/fullproxy) - A fully featured scriptable and daemon configurable proxy and pivoting toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols. - [gaio](https://github.com/xtaci/gaio) - High performance async-io networking for Golang in proactor mode. - [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. - [gldap](https://github.com/jimlambrt/gldap) - gldap provides an ldap server implementation and you provide handlers for its ldap operations. From 8e14d4bdd927e9f9c3c5cd533236740d01373852 Mon Sep 17 00:00:00 2001 From: thecodeworks <101028420+thecodeworks@users.noreply.github.com> Date: Mon, 11 Jul 2022 05:08:48 +0800 Subject: [PATCH 2808/3440] Add lancet(A comprehensive, efficient, and reusable util function library of go) to Utilities section. (#4291) * Update README.md Feat: add lancet in Utilities section * fix alphabetical order Co-authored-by: Ceriath --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed0a8a283ea..266faa5d7f0 100644 --- a/README.md +++ b/README.md @@ -2579,6 +2579,7 @@ _General utilities and tools to make your life easier._ - [jsend](https://github.com/clevergo/jsend) - JSend's implementation written in Go. - [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. - [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. +- [lancet](https://github.com/duke-git/lancet) - A comprehensive, efficient, and reusable util function library of go. - [lets-go](https://github.com/aplescia-chwy/lets-go) - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities. - [limiters](https://github.com/mennanov/limiters) - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks. - [lo](https://github.com/samber/lo) - A Lodash like Go library based on Go 1.18+ Generics (map, filter, contains, find...) From 17a27b31b6a155fc0000d8ab4022707f01f0b362 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Sun, 10 Jul 2022 23:11:13 +0200 Subject: [PATCH 2809/3440] Fix stale action wording --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 96776191fdf..2e0869ee3ae 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -13,7 +13,7 @@ jobs: with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-pr-message: > - This PR has been automatically marked as closed because it has not had + This PR has been automatically marked as stale because it has not had recent activity. They will wait 15 days for your interaction, after that the PR will be closed. Please read more in https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md From 61fe38980670deb954a836032bd02528e257faae Mon Sep 17 00:00:00 2001 From: Georgios Kampitakis <50364739+gkampitakis@users.noreply.github.com> Date: Sun, 10 Jul 2022 23:13:59 +0200 Subject: [PATCH 2810/3440] add github.com/gkampitakis/go-snaps (#4299) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 266faa5d7f0..b2cc3d4f4bb 100644 --- a/README.md +++ b/README.md @@ -2214,6 +2214,7 @@ _Libraries for testing codebases and generating test data._ - [go-hit](https://github.com/Eun/go-hit) - Hit is an http integration test framework written in golang. - [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. - [go-mysql-test-container](https://github.com/arikama/go-mysql-test-container) - Golang MySQL testcontainer to help with MySQL integration testing. + - [go-snaps](http://github.com/gkampitakis/go-snaps) - Jest-like snapshot testing in Golang. - [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. - [go-testpredicate](https://github.com/maargenton/go-testpredicate) - Test predicate style assertions library with extensive diagnostics output. - [go-vcr](https://github.com/dnaeon/go-vcr) - Record and replay your HTTP interactions for fast, deterministic and accurate tests. From f4a602f0f3b4f1771029f96a65fd07d27cd021ee Mon Sep 17 00:00:00 2001 From: alfiankan Date: Tue, 12 Jul 2022 03:31:18 +0700 Subject: [PATCH 2811/3440] add crab-config-files-templating (#4292) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b2cc3d4f4bb..24de7879766 100644 --- a/README.md +++ b/README.md @@ -349,6 +349,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. - [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. - [colourize](https://github.com/TreyBastian/colourize) - Go library for ANSI colour text in terminals. +- [crab-config-files-templating](https://github.com/alfiankan/crab-config-files-templating) - Dynamic configuration file templating tool for kubernetes manifest or general configuration files. - [ctc](https://github.com/wzshiming/ctc) - The non-invasive cross-platform terminal color library does not need to modify the Print method. - [go-ataman](https://github.com/workanator/go-ataman) - Go library for rendering ANSI colored text templates in terminals. - [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. From 413ae4056f208490d6bf77395e15816bbe2a858c Mon Sep 17 00:00:00 2001 From: sanaex Date: Sun, 17 Jul 2022 18:06:52 +0800 Subject: [PATCH 2812/3440] add cockroachdb/errors (#4333) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 24de7879766..31366973d21 100644 --- a/README.md +++ b/README.md @@ -1004,6 +1004,7 @@ _Libraries for handling errors._ - [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. - [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. - [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. +- [errors](https://github.com/cockroachdb/errors) - Go error library with error portability over the network. - [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. - [exception](https://github.com/rbrahul/exception) - A simple utility package for exception handling with try-catch in Golang. - [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. From e0399c3ec7c91d13bc89b4a333fec4ba5a7d0cf5 Mon Sep 17 00:00:00 2001 From: sanaex Date: Fri, 22 Jul 2022 01:05:49 +0800 Subject: [PATCH 2813/3440] addd ory/keto (#4336) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 31366973d21..9bad129cd9a 100644 --- a/README.md +++ b/README.md @@ -257,6 +257,7 @@ _Libraries for implementing authentications schemes._ - [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. - [jwt](https://github.com/cristalhq/jwt) - Safe, simple and fast JSON Web Tokens for Go. - [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. +- [keto](https://github.com/ory/keto) - Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models. - [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. - [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. - [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. From c9ebc0b24a8c214d672e46c5ff0031cbb0632992 Mon Sep 17 00:00:00 2001 From: Ricardo N Feliciano Date: Mon, 25 Jul 2022 11:32:05 -0400 Subject: [PATCH 2814/3440] Replace go-appindicator with fork (#4343) `go-appindicator` was abandoned and eventually archived back on 2022. In February of this year I forked the project to bring it back to life. Now called AppIndicator Go, this project will continue under this new name and URL. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9bad129cd9a..0d64836aece 100644 --- a/README.md +++ b/README.md @@ -1260,7 +1260,7 @@ _Toolkits_ _Interaction_ -- [go-appindicator](https://github.com/dawidd6/go-appindicator) - Go bindings for libappindicator3 C library. +- [AppIndicator Go](https://github.com/gopherlibs/appindicator) - Go bindings for libappindicator3 C library. - [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. - [mac-activity-tracker](https://github.com/prashantgupta24/activity-tracker) - OSX library to notify about any (pluggable) activity on your machine. - [mac-sleep-notifier](https://github.com/prashantgupta24/mac-sleep-notifier) - OSX Sleep/Wake notifications in golang. From 383a3a460b867fa97992148ebc3b48d808b786a6 Mon Sep 17 00:00:00 2001 From: avivpxi <42111576+avivpxi@users.noreply.github.com> Date: Fri, 29 Jul 2022 10:18:09 +0300 Subject: [PATCH 2815/3440] adding marshmallow (#4325) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0d64836aece..200e5d64d15 100644 --- a/README.md +++ b/README.md @@ -1410,6 +1410,7 @@ _Libraries for working with JSON._ - [jzon](https://github.com/zerosnake0/jzon) - JSON library with standard compatible API/behavior. - [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. - [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. +- [marshmallow](https://github.com/PerimeterX/marshmallow) - Performant JSON unmarshaling for flexible use cases. - [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. - [OjG](https://github.com/ohler55/ojg) - Optimized JSON for Go is a high performance parser with a variety of additional JSON tools including JSONPath. - [omg.jsonparser](https://github.com/dedalqq/omg.jsonparser) - Simple JSON parser with validation by condition via golang struct fields tags. From 761517b59b2079b2a8ab4867c684e05f12a7fb7b Mon Sep 17 00:00:00 2001 From: Nimesh Solanki Date: Sat, 30 Jul 2022 16:38:13 +0530 Subject: [PATCH 2816/3440] remove extra mailto (#4349) Co-authored-by: Nimesh --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 200e5d64d15..8f0c3444d4f 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ _Special thanks to_
+ Doppler
Quit struggling with scattered API keys and access controls.
From 87b47432b2ef96b8e85771e62ac0373d7264d9bf Mon Sep 17 00:00:00 2001 From: "@billcoding" Date: Thu, 17 Mar 2022 11:01:39 +0800 Subject: [PATCH 2660/3440] Add validator (#4102) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 824ed73d735..1f31c30e565 100644 --- a/README.md +++ b/README.md @@ -2565,6 +2565,7 @@ _Libraries for validation._ - [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. - [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications. - [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. +- [Validator](https://github.com/go-the-way/validator) - A lightweight model validator written in Go.Contains VFs:Min, Max, MinLength, MaxLength, Length, Enum, Regex. **[⬆ back to top](#contents)** From 880db07af4a7093a1f4eae0c3d7813d779981a0e Mon Sep 17 00:00:00 2001 From: John Arundel Date: Sun, 20 Mar 2022 08:52:56 +0000 Subject: [PATCH 2661/3440] Add 'Know Go: Generics' to paid ebooks list --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f31c30e565..98124c4360d 100644 --- a/README.md +++ b/README.md @@ -1707,7 +1707,7 @@ _Libraries for working with various layers of the network._ - [ftpserverlib](https://github.com/fclairamb/ftpserverlib) - Fully featured FTP server library. - [gaio](https://github.com/xtaci/gaio) - High performance async-io networking for Golang in proactor mode. - [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. -- [gldap](https://github.com/jimlambrt/gldap) - gldap provides an ldap server implementation and you provide handlers for its ldap operations. +- [gldap](https://github.com/jimlambrt/gldap) - gldap provides an ldap server implementation and you provide handlers for its ldap operations. - [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. - [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. - [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. @@ -3068,6 +3068,7 @@ _Where to discover new Go libraries._ - [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) - [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. - [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. +- [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - A guide to understanding and using generics in Go. - [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) - A guide to writing command-line tools in Go. - [Writing A Compiler In Go](https://compilerbook.com) - [Writing An Interpreter In Go](https://interpreterbook.com) - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. From 46069b473085101a315fd5c582936326e99a7cc0 Mon Sep 17 00:00:00 2001 From: Deepak Singhvi Date: Thu, 24 Feb 2022 23:31:54 +0530 Subject: [PATCH 2662/3440] Updated With Job Scheduler Entry Updated With Job Scheduler Entry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 98124c4360d..6239f2f51a7 100644 --- a/README.md +++ b/README.md @@ -1277,6 +1277,7 @@ _Libraries for scheduling jobs._ - [sched](https://github.com/romshark/sched) - A job scheduler with the ability to fast-forward time. - [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. - [tasks](https://github.com/madflojo/tasks) - An easy to use in-process scheduler for recurring tasks in Go. +- [cdule](https://github.com/deepaksinghvi/cdule) - Job scheduler library with database support **[⬆ back to top](#contents)** From 2e090934d305a752e4adc3a893f305cf74042ebf Mon Sep 17 00:00:00 2001 From: Deepak Singhvi Date: Mon, 28 Feb 2022 11:47:45 +0530 Subject: [PATCH 2663/3440] Updated readme with cdule package info Updated readme with cdule package info --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6239f2f51a7..5ae2c5bb9d8 100644 --- a/README.md +++ b/README.md @@ -1262,6 +1262,7 @@ _Libraries for programming devices of the IoT._ _Libraries for scheduling jobs._ +- [cdule](https://github.com/deepaksinghvi/cdule) - Job scheduler library with database support - [cheek](https://github.com/datarootsio/cheek) - A simple crontab like scheduler that aims to offer a KISS approach to job scheduling. - [clockwerk](https://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. - [cronticker](https://github.com/krayzpipes/cronticker) - A ticker implementation to support cron schedules. @@ -1277,7 +1278,6 @@ _Libraries for scheduling jobs._ - [sched](https://github.com/romshark/sched) - A job scheduler with the ability to fast-forward time. - [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. - [tasks](https://github.com/madflojo/tasks) - An easy to use in-process scheduler for recurring tasks in Go. -- [cdule](https://github.com/deepaksinghvi/cdule) - Job scheduler library with database support **[⬆ back to top](#contents)** From 7e56213bbda4a6e7440e64fce7a25981864fa59b Mon Sep 17 00:00:00 2001 From: Jorge Osorio <43450882+jorelosorio@users.noreply.github.com> Date: Tue, 22 Mar 2022 16:02:44 +0100 Subject: [PATCH 2664/3440] Jorelosorio/spelling corrector (#4110) * Add a new project link to the README.md A spelling corrector for Spanish / English language. * Update README.md * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5ae2c5bb9d8..f38cf3b1769 100644 --- a/README.md +++ b/README.md @@ -1648,6 +1648,7 @@ See also [Text Processing](#text-processing). - [RAKE.go](https://github.com/afjoseph/RAKE.Go) - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE). - [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). - [spaGO](https://github.com/nlpodyssey/spago) - Self-contained Machine Learning and Natural Language Processing library in Go. +- [spelling-corrector](https://github.com/jorelosorio/spellingcorrector) - A spelling corrector for the Spanish language or create your own. ### Slugifiers From a9842338d9939004000185b0c9ff0252b36fe4e9 Mon Sep 17 00:00:00 2001 From: Maksym Kryvchun Date: Tue, 22 Mar 2022 17:28:15 +0200 Subject: [PATCH 2665/3440] Adding gherkingen (#4116) * Add gherkingen to list of testing fraemworks * Fix alphabetical order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f38cf3b1769..f9e4c7605ce 100644 --- a/README.md +++ b/README.md @@ -2101,6 +2101,7 @@ _Libraries for testing codebases and generating test data._ - [fixenv](https://github.com/rekby/fixenv) - Fixture manage engine, inspired by pytest fixtures. - [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. - [frisby](https://github.com/verdverm/frisby) - REST API testing framework. + - [gherkingen](https://github.com/hedhyw/gherkingen) - BDD boilerplate generator and framework. - [ginkgo](https://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. - [gnomock](https://github.com/orlangure/gnomock) - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks. - [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal. From 08ff2de5a84e4355db6b433003c9911f4eebbaf8 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 22 Mar 2022 21:44:31 -0700 Subject: [PATCH 2666/3440] Removing hero. (#4083) Hero appears to be adandoned: - The most recent commit was 2 years ago. - It is not passing its continuous integration test. - It is still at v0.0.2 and so is not progressing to release. - There are many open issues. - It does not conform to current awesome-go quality standards. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f9e4c7605ce..05ed7b432c1 100644 --- a/README.md +++ b/README.md @@ -2066,7 +2066,6 @@ _Libraries and tools for templating and lexing._ - [gospin](https://github.com/m1/gospin) - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations. - [got](https://github.com/goradd/got) - A Go code generator inspired by Hero and Fasttemplate. Has include files, custom tag definitions, injected Go code, language translation, and more. - [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. -- [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. - [liquid](https://github.com/osteele/liquid) - Go implementation of Shopify Liquid templates. - [maroto](https://github.com/johnfercher/maroto) - A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple. From c95237524ea69315ef0bfb4e6503065422126424 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 22 Mar 2022 21:44:51 -0700 Subject: [PATCH 2667/3440] Removing gofpdf as it has been officially abandoned by its author. (#4082) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 05ed7b432c1..caa1604a4a4 100644 --- a/README.md +++ b/README.md @@ -2062,7 +2062,6 @@ _Libraries and tools for templating and lexing._ - [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. - [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. - [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). -- [gofpdf](https://github.com/jung-kurt/gofpdf) - PDF document generator with high level support for text, drawing and images. - [gospin](https://github.com/m1/gospin) - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations. - [got](https://github.com/goradd/got) - A Go code generator inspired by Hero and Fasttemplate. Has include files, custom tag definitions, injected Go code, language translation, and more. - [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. From b0808c05dbc69941abf24fc33849247871fe9c76 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 22 Mar 2022 21:47:09 -0700 Subject: [PATCH 2668/3440] Removing amber. (#4079) Amber appears to be abandoned. - Most recent commit is 5 years ago - It has multiple open issues Amber also does not conform to current awesome-go quality standards --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index caa1604a4a4..827fdc43994 100644 --- a/README.md +++ b/README.md @@ -2058,7 +2058,7 @@ _Libraries and tools for stream processing and reactive programming._ _Libraries and tools for templating and lexing._ - [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. -- [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. +- [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. - [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. - [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. - [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). From 776eb4304151f25f9d7771fb25e0df98f8699a82 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 22 Mar 2022 21:51:48 -0700 Subject: [PATCH 2669/3440] Removing Ace: (#4078) Ace appears to be abandoned: - The most recent commit is 4 years ago - It has multiple open issues. Ace also does not conform to awesome-go current quality standards. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 827fdc43994..14b1c4e6707 100644 --- a/README.md +++ b/README.md @@ -2057,8 +2057,6 @@ _Libraries and tools for stream processing and reactive programming._ _Libraries and tools for templating and lexing._ -- [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. -- [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. - [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. - [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. - [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). From 84c21d7b13b5c0e360302e8e08ba0b15253843a4 Mon Sep 17 00:00:00 2001 From: spekary Date: Tue, 22 Mar 2022 22:38:02 -0700 Subject: [PATCH 2670/3440] Changing organization of package --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 14b1c4e6707..0a0d301ffa2 100644 --- a/README.md +++ b/README.md @@ -501,7 +501,7 @@ _Generic datastructures and algorithms in Go._ - [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. - [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. - [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go. -- [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. +- [bitset](https://github.com/bits-and-blooms/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. - [bloomfilter](https://github.com/OldPanda/bloomfilter) - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library. From dc838c68e4b24b9b07d45656131e0be5066ad093 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 23 Mar 2022 09:39:34 -0300 Subject: [PATCH 2671/3440] fixed cto.ai link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a0d301ffa2..5ea295a06e0 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ _Special thanks to_
- + cto.ai
workflow smarter, not harder
Make the switch from one-size-fits-all CI/CD to PaaS
From 0a0a1654e3abe44ff3706cbc7af965f5348acdd0 Mon Sep 17 00:00:00 2001 From: spekary Date: Tue, 22 Mar 2022 22:26:36 -0700 Subject: [PATCH 2672/3440] Renaming category now that Go has native generics --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5ea295a06e0..aaaa42978c2 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Forms](#forms) - [Functional](#functional) - [Game Development](#game-development) - - [Generation and Generics](#generation-and-generics) + - [Generators](#generators) - [Geographic](#geographic) - [Go Compilers](#go-compilers) - [Goroutines](#goroutines) @@ -1043,9 +1043,9 @@ _Awesome game development libraries._ **[⬆ back to top](#contents)** -## Generation and Generics +## Generators -_Tools to enhance the language with features like generics via code generation._ +_Tools that generate Go code._ - [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. From 91c648090a659bb5bb03128ac39210ac7f6661c4 Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 23 Mar 2022 08:33:18 -0700 Subject: [PATCH 2673/3440] Moving the willf/bloom entry to bits-and-blooms/bloom --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aaaa42978c2..49935dc81ca 100644 --- a/README.md +++ b/README.md @@ -502,6 +502,7 @@ _Generic datastructures and algorithms in Go._ - [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. - [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go. - [bitset](https://github.com/bits-and-blooms/bitset) - Go package implementing bitsets. +- [bloom](https://github.com/bits-and-blooms/bloom) - Go package implementing Bloom filters. - [bloom](https://github.com/zhenjl/bloom) - Bloom filters implemented in Go. - [bloom](https://github.com/yourbasic/bloom) - Golang Bloom filter implementation. - [bloomfilter](https://github.com/OldPanda/bloomfilter) - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library. @@ -568,7 +569,6 @@ _Generic datastructures and algorithms in Go._ - [trie](https://github.com/derekparker/trie) - Trie implementation in Go. - [ttlcache](https://github.com/ReneKroon/ttlcache) - In-memory string-interface{} cache with various time-based expiration options and callbacks. - [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. -- [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. **[⬆ back to top](#contents)** From 942d5ce6fa64428c3a9a24bd0b260b8045eaa639 Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 23 Mar 2022 11:38:23 -0700 Subject: [PATCH 2674/3440] Removing slowpoke. The project is officially archived by the author and no longer actively maintained. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 49935dc81ca..555b8858448 100644 --- a/README.md +++ b/README.md @@ -619,7 +619,6 @@ _Databases implemented in Go._ - [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. - [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. - [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. -- [slowpoke](https://github.com/recoilme/slowpoke) - Key-value store with persistence. - [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. - [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. - [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. From 6f22bd531b96633eea22926534fc99027f6bc4c1 Mon Sep 17 00:00:00 2001 From: spekary Date: Thu, 24 Mar 2022 06:51:03 -0700 Subject: [PATCH 2675/3440] dtm has become dtf --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 555b8858448..d4a64c3a1fc 100644 --- a/README.md +++ b/README.md @@ -594,7 +594,7 @@ _Databases implemented in Go._ - [Databunker](https://github.com/paranoidguy/databunker) - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. - [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. -- [dtm](https://github.com/yedf/dtm) - A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages. +- [dtf](https://github.com/dtm-labs/dtf) - A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages. - [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. - [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. - [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. From a93c2470faf09b223c1419cf1fb0737eab399a87 Mon Sep 17 00:00:00 2001 From: Dovydas Date: Sat, 26 Mar 2022 08:19:36 +0200 Subject: [PATCH 2676/3440] update ttlcache (#4138) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d4a64c3a1fc..82c83ea45ed 100644 --- a/README.md +++ b/README.md @@ -567,7 +567,7 @@ _Generic datastructures and algorithms in Go._ - [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. - [treemap](https://github.com/igrmk/treemap) - Generic key-sorted map using a red-black tree under the hood. - [trie](https://github.com/derekparker/trie) - Trie implementation in Go. -- [ttlcache](https://github.com/ReneKroon/ttlcache) - In-memory string-interface{} cache with various time-based expiration options and callbacks. +- [ttlcache](https://github.com/jellydator/ttlcache) - An in-memory cache with item expiration and generics. - [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. **[⬆ back to top](#contents)** From db11940dc7bdfe8c36c9ab45b74665ecee1b60a7 Mon Sep 17 00:00:00 2001 From: Dovydas Date: Sat, 26 Mar 2022 08:21:19 +0200 Subject: [PATCH 2677/3440] add newsapi-go (#4139) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 82c83ea45ed..893fb9da177 100644 --- a/README.md +++ b/README.md @@ -2340,6 +2340,7 @@ _Libraries for accessing third party APIs._ - [megos](https://github.com/andygrunwald/megos) - Client library for accessing an [Apache Mesos](https://mesos.apache.org/) cluster. - [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. +- [newsapi-go](https://github.com/jellydator/newsapi-go) - Go client for [NewsAPI](https://newsapi.org/). - [patreon-go](https://github.com/mxpv/patreon-go) - Go library for Patreon API. - [paypal](https://github.com/logpacker/PayPal-Go-SDK) - Wrapper for PayPal payment API. - [playlyfe](https://github.com/playlyfe/playlyfe-go-sdk) - The Playlyfe Rest API Go SDK. From dc2b570df401099c884c5d02019fc8850546ce26 Mon Sep 17 00:00:00 2001 From: Ruidy Date: Sat, 26 Mar 2022 02:23:42 -0400 Subject: [PATCH 2678/3440] add underscore to functional programming section (#4140) Co-authored-by: Ruidy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 893fb9da177..448853ed1b5 100644 --- a/README.md +++ b/README.md @@ -1014,6 +1014,7 @@ _Packages to support functional programming in Go._ - [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go. - [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. - [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang. +- [underscore](https://github.com/rjNemo/underscore) - Functional programming helpers for Go 1.18 and beyond. **[⬆ back to top](#contents)** From b1d23120c7edd6aa3124aa3643f76e366cdbfec7 Mon Sep 17 00:00:00 2001 From: Anton Kornilov Date: Sat, 26 Mar 2022 09:30:40 +0300 Subject: [PATCH 2679/3440] add dusupay-sdk-go (#4131) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 448853ed1b5..f87e53eee41 100644 --- a/README.md +++ b/README.md @@ -2284,6 +2284,7 @@ _Libraries for accessing third party APIs._ - [coinpaprika-go](https://github.com/coinpaprika/coinpaprika-api-go-client) - Go client library for interacting with Coinpaprika's API. - [device-check-go](https://github.com/rinchsan/device-check-go) - Go client library for interacting with [iOS DeviceCheck API](https://developer.apple.com/documentation/devicecheck) v1. - [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API. +- [dusupay-sdk-go](https://github.com/Kachit/dusupay-sdk-go) - Unofficial Dusupay payment gateway API Client for Go - [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC 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. From a129b82d5a2b75c7af4c2fd4fcad8eb1c5aee1c4 Mon Sep 17 00:00:00 2001 From: Sohom Majumdar Date: Sun, 27 Mar 2022 12:29:04 +0530 Subject: [PATCH 2680/3440] Adding go118ds --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f87e53eee41..3532e4d5327 100644 --- a/README.md +++ b/README.md @@ -528,6 +528,7 @@ _Generic datastructures and algorithms in Go._ - [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. - [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. - [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. +- [go18ds](https://github.com/daichi-m/go18ds) - Go Data Structures using Go 1.18 generics. - [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. - [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. From e31e35f1e819a58b0fb4208ba06cb5060a3ca4c9 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 29 Mar 2022 11:02:02 -0700 Subject: [PATCH 2681/3440] Removing Go-Mix: (#4105) - Last commit was over 2 years ago - There are a number of open issues that are over 5 years old - Does not have a link to a GoReportCard report - Does not have link to a code coverage report --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f87e53eee41..37aa9cd7e04 100644 --- a/README.md +++ b/README.md @@ -211,7 +211,6 @@ _Libraries for manipulating audio._ - [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go. - [malgo](https://github.com/gen2brain/malgo) - Mini audio library. - [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library. -- [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. - [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. - [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms. - [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. From 92c0bef623f1e4996ce9f54c6d334b109c9e421f Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 29 Mar 2022 11:02:58 -0700 Subject: [PATCH 2682/3440] Remove port-midi: (#4107) - Development is mostly over 2 years old - Many open issues - No report card - No code coverage --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 37aa9cd7e04..658253afe10 100644 --- a/README.md +++ b/README.md @@ -214,7 +214,6 @@ _Libraries for manipulating audio._ - [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. - [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms. - [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. -- [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. **[⬆ back to top](#contents)** From 38ab2b9512bf307802b125855a615bf456cf9f58 Mon Sep 17 00:00:00 2001 From: finley Date: Wed, 30 Mar 2022 16:05:32 +0800 Subject: [PATCH 2683/3440] add rdb into database tools (#4147) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 658253afe10..9f343191194 100644 --- a/README.md +++ b/README.md @@ -663,6 +663,7 @@ _Database tools._ - [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. - [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code. - [pREST](https://github.com/prest/prest) - Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new. +- [rdb](https://github.com/HDT3213/rdb) - Redis RDB file parser for secondary development and memory analysis. - [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup. - [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. From fe60db8de203f7fc3fba60d830b682ab8712b824 Mon Sep 17 00:00:00 2001 From: Acho Arnold Date: Wed, 30 Mar 2022 11:07:43 +0300 Subject: [PATCH 2684/3440] add go-otelroundtripper (#4148) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f343191194..2708cfb8113 100644 --- a/README.md +++ b/README.md @@ -1768,6 +1768,7 @@ _Libraries for making HTTP requests._ - [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. - [go-cleanhttp](https://github.com/hashicorp/go-cleanhttp) - Get easily stdlib HTTP client, which does not share any state with other clients. - [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. +- [go-otelroundtripper](https://github.com/NdoleStudio/go-otelroundtripper) - Go http.RoundTripper that emits open telemetry metrics for HTTP requests. - [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client. - [go-retryablehttp](https://github.com/hashicorp/go-retryablehttp) - Retryable HTTP client in Go. - [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. From f0c90d1e2ee638a65ec42d55e374133ce323eaff Mon Sep 17 00:00:00 2001 From: Vsevolod Strukchinsky Date: Wed, 30 Mar 2022 13:07:57 +0500 Subject: [PATCH 2685/3440] add 2q (#4146) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2708cfb8113..dbb9ce9b1ab 100644 --- a/README.md +++ b/README.md @@ -494,6 +494,7 @@ _Libraries for preprocessing CSS files._ _Generic datastructures and algorithms in Go._ +- [2q](https://github.com/floatdrop/2q) - 2Q in-memory cache implementation. - [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. - [bingo](https://github.com/iancmcc/bingo) - Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes. - [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. From 2c4b4251939aa5ae67fd79c37237dd512a9e25bb Mon Sep 17 00:00:00 2001 From: Yad Smood Date: Wed, 30 Mar 2022 16:09:48 +0800 Subject: [PATCH 2686/3440] add ysmood/got package (#4127) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dbb9ce9b1ab..13caaed47c8 100644 --- a/README.md +++ b/README.md @@ -2121,6 +2121,7 @@ _Libraries for testing codebases and generating test data._ - [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. + - [got](https://github.com/ysmood/got) - An enjoyable golang test framework. - [gotest.tools](https://github.com/gotestyourself/gotest.tools) - A collection of packages to augment the go testing package and support common patterns. - [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. From 21698e744943efebbc40cb37f75da9fa3f5cfd8f Mon Sep 17 00:00:00 2001 From: Milad Rahimi Date: Wed, 30 Mar 2022 12:40:23 +0430 Subject: [PATCH 2687/3440] add golobby/router package (#4119) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 13caaed47c8..3487cb31432 100644 --- a/README.md +++ b/README.md @@ -2719,6 +2719,7 @@ _Full stack web frameworks._ - [ngamux](https://github.com/ngamux/ngamux) - Simple HTTP router for Go. - [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. - [pure](https://github.com/go-playground/pure) - Is a lightweight HTTP router that sticks to the std "net/http" implementation. +- [router](https://github.com/golobby/router) - GoLobby Router is a lightweight yet powerful HTTP router for the Go programming language. - [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. - [violetear](https://github.com/nbari/violetear) - Go HTTP router. From ae841b54329c455605d83463149ea9820435ce57 Mon Sep 17 00:00:00 2001 From: Juan Pablo Tosso Date: Thu, 31 Mar 2022 07:27:08 -0300 Subject: [PATCH 2688/3440] add coraza (#4153) * Add OWASP Coraza to the list * fix name Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3487cb31432..048602f413d 100644 --- a/README.md +++ b/README.md @@ -1957,6 +1957,7 @@ _Libraries that are used to help make your application more secure._ - [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. - [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. - [CertMagic](https://github.com/caddyserver/certmagic) - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal. +- [Coraza](https://github.com/corazawaf/coraza) - Enterprise-ready, modsecurity and OWASP CRS compatible WAF library. - [dongle](https://github.com/golang-module/dongle) - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption. - [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. - [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. From 7763b659440354da98f015c9e993a4b71690c0da Mon Sep 17 00:00:00 2001 From: Afzal Ansari Date: Thu, 31 Mar 2022 16:19:24 +0530 Subject: [PATCH 2689/3440] add `ko` CLI tool for Devops (#4155) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 048602f413d..8e1c83b1657 100644 --- a/README.md +++ b/README.md @@ -2915,6 +2915,7 @@ _Software written in Go._ - [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. - [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. - [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. +- [ko](https://github.com/google/ko) - Command line tool for building and deploying Go applications on Kubernetes - [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way. - [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. - [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly. From 57b22489e65ceaa31313d6c808f4eb3f8e918432 Mon Sep 17 00:00:00 2001 From: "@billcoding" Date: Fri, 1 Apr 2022 22:53:23 +0800 Subject: [PATCH 2690/3440] add anoweb (#4156) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8e1c83b1657..63e919ce134 100644 --- a/README.md +++ b/README.md @@ -2615,6 +2615,7 @@ _Full stack web frameworks._ - [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go. - [Aero](https://github.com/aerogo/aero) - High-performance web framework for Go, reaches top scores in Lighthouse. - [Air](https://github.com/aofei/air) - An ideally refined web framework for Go. +- [anoweb](https://github.com/go-the-way/anoweb) - The lightweight and powerful web framework using the new way for Go.Another go the way. - [appy](https://github.com/appist/appy) - An opinionated productive web framework that helps scaling business easier. - [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. - [Beego](https://github.com/beego/beego) - beego is an open-source, high-performance web framework for the Go programming language. From 1964394c1c1d277f39cb69e1827ebd0a74618b64 Mon Sep 17 00:00:00 2001 From: Mukesh Murugan <31455818+iammukeshm@users.noreply.github.com> Date: Sat, 2 Apr 2022 09:40:18 +0530 Subject: [PATCH 2691/3440] add Golang CRUD tutorial (#4113) * added Golang CRUD tutorial * Fixed Alphabetical Ordering --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63e919ce134..e034a0d2ae0 100644 --- a/README.md +++ b/README.md @@ -3295,6 +3295,7 @@ _Where to discover new Go libraries._ - [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM. - [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. - [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. +- [Implementing CRUD in Golang REST API with Mux & GORM](https://codewithmukesh.com/blog/implementing-crud-in-golang-rest-api/) - Building a CRUD Golang REST API from scratch using MUX, GORM, MySQL, Viper and clean folder seperation. Entire source code is also included! - [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes. - [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. - [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example. From f0053cb4845577bad12c0ad5a39802e95e9220c9 Mon Sep 17 00:00:00 2001 From: _raflimr <73429192+raflimr@users.noreply.github.com> Date: Sat, 19 Feb 2022 08:45:48 +0700 Subject: [PATCH 2692/3440] feat: add SQLC library to readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e034a0d2ae0..5a4341ba27f 100644 --- a/README.md +++ b/README.md @@ -691,6 +691,7 @@ _SQL query builder, libraries for building and using SQL._ - [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. - [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries. - [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. +- [Sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL - [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. **[⬆ back to top](#contents)** From d36a92bbc49b12e25ef00d56b51a5ea9181486f3 Mon Sep 17 00:00:00 2001 From: _raflimr <73429192+raflimr@users.noreply.github.com> Date: Sat, 19 Feb 2022 08:53:53 +0700 Subject: [PATCH 2693/3440] docs: add colon to sqlc in "SQL Query Builder" section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a4341ba27f..7d724b44ba4 100644 --- a/README.md +++ b/README.md @@ -691,7 +691,7 @@ _SQL query builder, libraries for building and using SQL._ - [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. - [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries. - [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. -- [Sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL +- [Sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL. - [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. **[⬆ back to top](#contents)** From 5703b95110ea67db18e68ec0585d0d71fc43bb07 Mon Sep 17 00:00:00 2001 From: _raflimr <73429192+raflimr@users.noreply.github.com> Date: Sat, 19 Feb 2022 17:46:34 +0700 Subject: [PATCH 2694/3440] fix: sqlc position into alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d724b44ba4..8d1040324f3 100644 --- a/README.md +++ b/README.md @@ -686,12 +686,12 @@ _SQL query builder, libraries for building and using SQL._ - [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. - [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. - [sq](https://github.com/bokwoon95/go-structured-query) - Type-safe SQL builder and struct mapper for Go. +- [Sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL. - [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. - [sqlingo](https://github.com/lqs/sqlingo) - A lightweight DSL to build SQL in Go. - [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. - [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries. - [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. -- [Sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL. - [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. **[⬆ back to top](#contents)** From ed29c7c26f63fccf922728ec563003c207f66992 Mon Sep 17 00:00:00 2001 From: _raflimr <73429192+raflimr@users.noreply.github.com> Date: Tue, 22 Mar 2022 21:44:15 +0700 Subject: [PATCH 2695/3440] feat: edit sqlc to lowercase --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8d1040324f3..433cc01ca3d 100644 --- a/README.md +++ b/README.md @@ -686,7 +686,7 @@ _SQL query builder, libraries for building and using SQL._ - [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. - [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. - [sq](https://github.com/bokwoon95/go-structured-query) - Type-safe SQL builder and struct mapper for Go. -- [Sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL. +- [sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL. - [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. - [sqlingo](https://github.com/lqs/sqlingo) - A lightweight DSL to build SQL in Go. - [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance. From 4e6854e05783b8d46fde908cad18f4d55d943290 Mon Sep 17 00:00:00 2001 From: spekary Date: Wed, 16 Mar 2022 19:50:41 -0700 Subject: [PATCH 2696/3440] Adding html5tag --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 433cc01ca3d..070bb87e709 100644 --- a/README.md +++ b/README.md @@ -1155,6 +1155,7 @@ _Toolkits_ - [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron). - [go-gtk](https://mattn.github.io/go-gtk/) - Go bindings for GTK. - [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. +- [goradd/html5tag](https://github.com/goradd/html5tag) - Library for outputting HTML5 tags. - [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). From ad5480202a1fb48a2be9bcc0b2d735da8d3f7618 Mon Sep 17 00:00:00 2001 From: Bar Weiss <33583364+barweiss@users.noreply.github.com> Date: Tue, 22 Mar 2022 15:19:47 +0200 Subject: [PATCH 2697/3440] Add go-tuple to Data Structure packages --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 070bb87e709..27e2e75eed7 100644 --- a/README.md +++ b/README.md @@ -527,6 +527,7 @@ _Generic datastructures and algorithms in Go._ - [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. - [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. - [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. +- [go-tuple](https://github.com/barweiss/go-tuple) - Generic tuple implementation for Go 1.18+. - [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. - [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. From 1b3ca26d895b848823c64405f2276e2679fa5c19 Mon Sep 17 00:00:00 2001 From: Jorge Osorio Date: Thu, 24 Mar 2022 21:10:41 +0100 Subject: [PATCH 2698/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 27e2e75eed7..caf6cb51b77 100644 --- a/README.md +++ b/README.md @@ -1081,6 +1081,7 @@ _Geographic tools and servers_ - [simplefeatures](https://github.com/peterstace/simplefeatures) - simplesfeatures is a 2D geometry library that provides Go types that model geometries, as well as algorithms that operate on them. - [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. - [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM). +- [Web-Mercator-Projection](https://github.com/jorelosorio/web-mercator-projection) A project to easily use and convert LonLat, Point and Tile to display info, markers, etc, in a map using the Web Mercator Projection. **[⬆ back to top](#contents)** From b34ae307a813d3dab755700dca21082c3590aeea Mon Sep 17 00:00:00 2001 From: Jorge Osorio Date: Thu, 24 Mar 2022 21:17:47 +0100 Subject: [PATCH 2699/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index caf6cb51b77..88137d51971 100644 --- a/README.md +++ b/README.md @@ -1080,8 +1080,8 @@ _Geographic tools and servers_ - [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. - [simplefeatures](https://github.com/peterstace/simplefeatures) - simplesfeatures is a 2D geometry library that provides Go types that model geometries, as well as algorithms that operate on them. - [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing. -- [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM). - [Web-Mercator-Projection](https://github.com/jorelosorio/web-mercator-projection) A project to easily use and convert LonLat, Point and Tile to display info, markers, etc, in a map using the Web Mercator Projection. +- [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM). **[⬆ back to top](#contents)** From 24d5623027142f06b463f2d3523dd200cbf1889b Mon Sep 17 00:00:00 2001 From: Vasiliy Vasilyuk Date: Tue, 29 Mar 2022 20:48:57 +0300 Subject: [PATCH 2700/3440] Add package pointer to utilities section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 88137d51971..34a1169c531 100644 --- a/README.md +++ b/README.md @@ -2497,6 +2497,7 @@ _General utilities and tools to make your life easier._ - [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool. - [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. - [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. +- [pointer](https://github.com/xorcare/pointer) - Package pointer contains helper routines for simplifying the creation of optional fields of basic type. - [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. - [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. - [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. From c2719bc76c4c792539449f1f1e2a7de691328253 Mon Sep 17 00:00:00 2001 From: David Muir Sharnoff Date: Tue, 29 Mar 2022 21:30:51 -0700 Subject: [PATCH 2701/3440] add nchi http router --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 34a1169c531..2aa72896f9b 100644 --- a/README.md +++ b/README.md @@ -1520,7 +1520,7 @@ _Libraries for working with dependency injection._ - [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. - [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. - [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. -- [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, and http endpoints, and service startup. +- [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, http endpoints, and service startup. - [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. **[⬆ back to top](#contents)** @@ -2723,6 +2723,7 @@ _Full stack web frameworks._ - [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. - [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. - [mux](https://github.com/gorilla/mux) - Powerful URL router and dispatcher for golang. +- [nchi](https://github.com/muir/nchi) - chi-like router built on httprouter with dependency injection based middleware wrappers - [ngamux](https://github.com/ngamux/ngamux) - Simple HTTP router for Go. - [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. - [pure](https://github.com/go-playground/pure) - Is a lightweight HTTP router that sticks to the std "net/http" implementation. From 8ebefa5ef2626865d3b04880f772570b83d4d83f Mon Sep 17 00:00:00 2001 From: David Muir Sharnoff Date: Wed, 30 Mar 2022 19:38:52 -0700 Subject: [PATCH 2702/3440] add reflectutils --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2aa72896f9b..ba2249f9b4e 100644 --- a/README.md +++ b/README.md @@ -2500,6 +2500,7 @@ _General utilities and tools to make your life easier._ - [pointer](https://github.com/xorcare/pointer) - Package pointer contains helper routines for simplifying the creation of optional fields of basic type. - [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. - [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. +- [reflectutils](https://github.com/muir/reflectutils) - Helpers for working with reflection: struct tag parsing; recursive walking; fill value from string. - [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. - [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. - [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go. From 16bf8ad28e13952ac390d66dbe0ae0f0a348d81f Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 2 Apr 2022 06:46:17 -0300 Subject: [PATCH 2703/3440] Update COVERAGE.md --- COVERAGE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/COVERAGE.md b/COVERAGE.md index 4bd6e7fc066..62f4931fdd7 100644 --- a/COVERAGE.md +++ b/COVERAGE.md @@ -7,9 +7,9 @@ generate a code coverage report without one of those services. This yaml file will run tests on multiple system configurations, but will produce a code coverage report on only one of those. It will then create a code coverage badge -and add it to the Readme file. +and add it to the README file. -This file should be put in the .github/workflows directory of your repo. +This file should be put in the `.github/workflows` directory of your repo. ```yaml name: Go # The name of the workflow that will appear on Github @@ -68,4 +68,4 @@ jobs: github_token: ${{ github.token }} branch: ${{ github.ref }} -``` \ No newline at end of file +``` From 7a2ef1ec8cd1b0c29802c50763e0c4b3361f045d Mon Sep 17 00:00:00 2001 From: Sohom Majumdar Date: Mon, 4 Apr 2022 11:51:40 +0530 Subject: [PATCH 2704/3440] Merge upstream main --- README.md | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 9f00fe8e8bb..d609a62e44a 100644 --- a/README.md +++ b/README.md @@ -579,7 +579,7 @@ _Databases implemented in Go._ - [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. - [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go. -- [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. +- [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. - [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. - [Bitcask](https://git.mills.io/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). - [buntdb](https://github.com/tidwall/buntdb) - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. @@ -612,11 +612,11 @@ _Databases implemented in Go._ - [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. - [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. - [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. -- [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. +- [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. - [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. - [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. - [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. -- [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. +- [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. - [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. - [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. - [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. @@ -624,7 +624,7 @@ _Databases implemented in Go._ - [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. - [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. - [ttlcache](https://github.com/cheshir/ttlcache) - In-memory key value storage with TTL for each record. -- [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. +- [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. - [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. - [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. @@ -703,7 +703,6 @@ _SQL query builder, libraries for building and using SQL._ _Libraries for connecting and operating databases._ - Relational Databases - - [avatica](https://github.com/apache/calcite-avatica-go) - Apache Avatica/Phoenix 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. @@ -721,7 +720,6 @@ _Libraries for connecting and operating databases._ - [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver. - NoSQL Databases - - [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. - [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. - [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. @@ -751,7 +749,6 @@ _Libraries for connecting and operating databases._ - [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. - 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. @@ -961,7 +958,7 @@ _Libraries for handling files and file systems._ - [pathtype](https://github.com/jonchun/pathtype) - Treat paths as their own type instead of using strings. - [pdfcpu](https://github.com/pdfcpu/pdfcpu) - PDF processor. - [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. -- [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. +- [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. - [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. - [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [_todo.txt_](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [_todo.txt_ format](https://github.com/todotxt/todo.txt). - [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. @@ -1375,7 +1372,7 @@ _Libraries for generating and working with log files._ - [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. - [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. - [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. -- [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing \*sql.DB stdlib usage. +- [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. - [structy/log](https://github.com/structy/log) - A simple to use log system, minimalist but with features for debugging and differentiation of messages. - [tail](https://github.com/hpcloud/tail) - Go package striving to emulate the features of the BSD tail program. @@ -1672,7 +1669,7 @@ See also [Text Processing](#text-processing). - [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm. - [prose](https://github.com/jdkato/prose) - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only. - [segment](https://github.com/blevesearch/segment) - Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/) -- [sentences](https://github.com/neurosnap/sentences) - Sentence tokenizer: converts text into a list of sentences. +- [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. - [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. @@ -1980,7 +1977,7 @@ _Libraries that are used to help make your application more secure._ - [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. - [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. - [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. -- [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std\* etc. +- [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std* etc. - [secure](https://github.com/unrolled/secure) - HTTP middleware for Go that facilitates some quick security wins. - [secureio](https://github.com/xaionaro-go/secureio) - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519. - [simple-scrypt](https://github.com/elithrar/simple-scrypt) - Scrypt package with a simple, obvious API and automatic cost calibration built-in. @@ -2091,7 +2088,6 @@ _Libraries and tools for templating and lexing._ _Libraries for testing codebases and generating test data._ - Testing Frameworks - - [apitest](https://apitest.dev) - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams. - [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. @@ -2152,7 +2148,6 @@ _Libraries for testing codebases and generating test data._ - [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. - [genmock](https://gitlab.com/so_literate/genmock) - Go mocking system with code generator for building calls of the interface methods. - [go-localstack](https://github.com/elgohr/go-localstack) - Tool for using localstack in AWS testing. @@ -2170,13 +2165,11 @@ _Libraries for testing codebases and generating test data._ - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. - 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. - - [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. - [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. @@ -2489,7 +2482,7 @@ _General utilities and tools to make your life easier._ - [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). - [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. - [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels. -- [mongo-go-pagination](https://github.com/gobeam/mongo-go-pagination) - Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines. +- [mongo-go-pagination](https://github.com/gobeam/mongo-go-pagination) - Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines. - [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. - [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. - [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. @@ -3198,7 +3191,7 @@ _Where to discover new Go libraries._ - [Utah Go User Group](https://www.meetup.com/utahgophers/) - [Women Who Go - San Francisco, CA](https://www.meetup.com/Women-Who-Go/) -_Add the group of your city/country here (send **PR**)_ +*Add the group of your city/country here (send **PR**)* **[⬆ back to top](#contents)** @@ -3265,7 +3258,7 @@ _Add the group of your city/country here (send **PR**)_ - [Gophercises](https://gophercises.com/) - Free coding exercises for budding gophers. - [gowalker.org](https://gowalker.org) - Go Project API documentation. - [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. -- [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). +- [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). - [Learn Go Programming](https://blog.learngoprogramming.com) - Learn Go concepts with illustrations. - [Lille Gophers](https://lille-gophers.loscrackitos.codes/) - Golang talks community in Lille, France ([@LilleGophers](https://twitter.com/LilleGophers)). - [Made with Golang](https://madewithgolang.com/?ref=awesome-go) From b257d449849a4f4d16bd81f31c458696fa776b64 Mon Sep 17 00:00:00 2001 From: spekary Date: Mon, 4 Apr 2022 20:55:36 -0700 Subject: [PATCH 2705/3440] Refactoring the following sections: Data Structures Database Database Drivers --- README.md | 325 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 196 insertions(+), 129 deletions(-) diff --git a/README.md b/README.md index 63e919ce134..476037d946f 100644 --- a/README.md +++ b/README.md @@ -96,9 +96,31 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Configuration](#configuration) - [Continuous Integration](#continuous-integration) - [CSS Preprocessors](#css-preprocessors) - - [Data Structures](#data-structures) + - [Data Structures and Algorithms](#data-structures-and-algorithms) + - [Bit-packing and Compression](#bit-packing-and-compression) + - [Bit Sets](#bit-sets) + - [Bloom and Cuckoo Filters](#bloom-and-cuckoo-filters) + - [Data Structure and Algorithm Collections](#data-structure-and-algorithm-collections) + - [Iterators](#iterators) + - [Maps](#maps) + - [Miscellaneous Data Structures and Algorithms](#miscellaneous-data-structures-and-algorithms) + - [Nullable Types](#nullable-types) + - [Queues](#queues) + - [Sets](#sets) + - [Text Analysis](#text-analysis) + - [Trees](#trees) + - [Pipes](#pipes) - [Database](#database) + - [Caches](#caches) + - [Databases Implemented in Go](#databases-implemented-in-go) + - [Database Schema Migration](#database-schema-migration) + - [Database Tools](#database-tools) + - [SQL Query Builders](#sql-query-builders) - [Database Drivers](#database-drivers) + - [Interfaces to Multiple Backends](#interfaces-to-multiple-backends) + - [Relational Database Drivers](#relational-database-drivers) + - [NoSQL Database Drivers](#nosql-database-drivers) + - [Search and Analytic Databases](#search-and-analytic-databases) - [Date and Time](#date-and-time) - [Distributed Systems](#distributed-systems) - [Dynamic DNS](#dynamic-dns) @@ -490,121 +512,166 @@ _Libraries for preprocessing CSS files._ **[⬆ back to top](#contents)** -## Data Structures +## Data Structures and Algorithms -_Generic datastructures and algorithms in Go._ +### Bit-packing and Compression -- [2q](https://github.com/floatdrop/2q) - 2Q in-memory cache implementation. -- [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. - [bingo](https://github.com/iancmcc/bingo) - Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes. - [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. - [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. +- [crunch](https://github.com/superwhiskers/crunch) - Go package implementing buffers for handling various datatypes easily. +- [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. +- [go-ef](https://github.com/amallia/go-ef) - A Go implementation of the Elias-Fano encoding. +- [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. + +### Bit Sets + - [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go. - [bitset](https://github.com/bits-and-blooms/bitset) - Go package implementing bitsets. + +### Bloom and Cuckoo Filters + - [bloom](https://github.com/bits-and-blooms/bloom) - Go package implementing Bloom filters. - [bloom](https://github.com/zhenjl/bloom) - Bloom filters implemented in Go. - [bloom](https://github.com/yourbasic/bloom) - Golang Bloom filter implementation. - [bloomfilter](https://github.com/OldPanda/bloomfilter) - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library. - [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams. +- [cuckoo-filter](https://github.com/linvon/cuckoo-filter) - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper is available. +- [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. +- [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. + +### Data Structure and Algorithm Collections + +- [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study. +- [go-datastructures](https://github.com/Workiva/go-datastructures) - Collection of useful, performant, and thread-safe data structures. +- [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. +- [gostl](https://github.com/liyue201/gostl) - Data structure and algorithm library for go, designed to provide functions similar to C++ STL. + +### Iterators + +- [goterator](https://github.com/yaa110/goterator) - Iterator implementation to provide map and reduce functionalities. +- [iter](https://github.com/disksing/iter) - Go implementation of C++ STL iterators and algorithms. + +### Maps + +See also [Database](#database) for more complex key-value stores, and [Trees](#trees) for +additional ordred map implementations. - [cmap](https://github.com/lrita/cmap) - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards. +- [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. + +### Miscellaneous Data Structures and Algorithms + - [concurrent-writer](https://github.com/free/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`. - [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. - [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). -- [crunch](https://github.com/superwhiskers/crunch) - Go package implementing buffers for handling various datatypes easily. -- [cuckoo-filter](https://github.com/linvon/cuckoo-filter) - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper is available. -- [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. -- [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. -- [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). -- [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. -- [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation in Go. -- [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. - [fsm](https://github.com/cocoonspace/fsm) - Finite-State Machine package. -- [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. -- [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-edlib](https://github.com/hbollon/go-edlib) - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode. -- [go-ef](https://github.com/amallia/go-ef) - A Go implementation of the Elias-Fano encoding. - [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. -- [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. - [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. -- [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. -- [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. -- [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. - [gofal](https://github.com/xxjwxc/gofal) - fractional api for Go. -- [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. -- [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. -- [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. -- [gostl](https://github.com/liyue201/gostl) - Data structure and algorithm library for go, designed to provide functions similar to C++ STL. - [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. -- [goterator](https://github.com/yaa110/goterator) - Iterator implementation to provide map and reduce functionalities. -- [hashsplit](http://github.com/bobg/hashsplit) - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position. - [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. - [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. - [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. -- [iter](https://github.com/disksing/iter) - Go implementation of C++ STL iterators and algorithms. +- [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. + +### Nullable Types + +- [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. +- [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. +- [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. + +### Queues + +- [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. +- [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). +- [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. +- [memlog](https://github.com/embano1/memlog) - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka. + +### Sets + +- [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation in Go. +- [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. +- [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go. +- [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. + +### Text Analysis + +- [bleve](https://github.com/blevesearch/bleve) - Modern text indexing library for go. +- [go-adaptive-radix-tree](https://github.com/plar/go-adaptive-radix-tree) - Go implementation of Adaptive Radix Tree. +- [go-edlib](https://github.com/hbollon/go-edlib) - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode. - [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. -- [memlog](https://github.com/embano1/memlog) - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka. -- [merkle](https://github.com/bobg/merkle) - Space-efficient computation of Merkle root hashes and inclusion proofs. -- [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. - [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval. -- [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. -- [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON. -- [ordered-concurrently](https://github.com/tejzpr/ordered-concurrently) - Go module that processes work concurrently and returns output in a channel in the order of input. -- [parapipe](https://github.com/nazar256/parapipe) - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results. - [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events. -- [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. - [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree. -- [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). -- [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. -- [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. -- [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap. +- [trie](https://github.com/derekparker/trie) - Trie implementation in Go. + +### Trees + +- [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. +- [hashsplit](http://github.com/bobg/hashsplit) - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position. +- [merkle](https://github.com/bobg/merkle) - Space-efficient computation of Merkle root hashes and inclusion proofs. +- [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. - [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. - [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. -- [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. -- [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. - [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. - [treemap](https://github.com/igrmk/treemap) - Generic key-sorted map using a red-black tree under the hood. -- [trie](https://github.com/derekparker/trie) - Trie implementation in Go. -- [ttlcache](https://github.com/jellydator/ttlcache) - An in-memory cache with item expiration and generics. -- [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures. + +### Pipes + +- [ordered-concurrently](https://github.com/tejzpr/ordered-concurrently) - Go module that processes work concurrently and returns output in a channel in the order of input. +- [parapipe](https://github.com/nazar256/parapipe) - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results. +- [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out. **[⬆ back to top](#contents)** ## Database -_Databases implemented in Go._ +### Caches -- [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. -- [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go. +_Data stores with expiring records, in-memory distributed data stores, or in-memory subsets of file-based databases._ +- [2q](https://github.com/floatdrop/2q) - 2Q in-memory cache implementation. - [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. - [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. -- [Bitcask](https://git.mills.io/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). -- [buntdb](https://github.com/tidwall/buntdb) - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. - [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. - [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. -- [clover](https://github.com/ostafen/clover) - A lightweight document-oriented NoSQL database written in pure Golang. +- [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. - [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. +- [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. +- [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. +- [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. +- [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. +- [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. +- [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. +- [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. +- [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. +- [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). +- [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. +- [ttlcache](https://github.com/jellydator/ttlcache) - An in-memory cache with item expiration and generics. +- [ttlcache](https://github.com/cheshir/ttlcache) - In-memory key value storage with TTL for each record. + + +### Databases Implemented in Go + +- [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. +- [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go. +- [Bitcask](https://git.mills.io/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL). +- [buntdb](https://github.com/tidwall/buntdb) - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. +- [clover](https://github.com/ostafen/clover) - A lightweight document-oriented NoSQL database written in pure Golang. - [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore. - [Coffer](https://github.com/claygod/coffer) - Simple ACID key-value database that supports transactions. - [column](https://github.com/kelindar/column) - High-performance, columnar, embeddable in-memory store with bitmap indexing and transactions. -- [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. - [CovenantSQL](https://github.com/CovenantSQL/CovenantSQL) - CovenantSQL is a SQL database on blockchain. - [Databunker](https://github.com/paranoidguy/databunker) - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. - [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. - [dtf](https://github.com/dtm-labs/dtf) - A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages. - [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. -- [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. -- [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. -- [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. - [godis](https://github.com/hdt3213/godis) - A Golang implemented high-performance Redis server and cluster. - [goleveldb](https://github.com/syndtr/goleveldb) - Implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in Go. -- [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. - [hare](https://github.com/jameycribbs/hare) - A simple database management system that stores each table as a text file of line-delimited JSON. - [immudb](https://github.com/codenotary/immudb) - immudb is a lightweight, high-speed immutable database for systems and applications written in Go. - [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics. -- [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. - [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. - [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. @@ -614,19 +681,18 @@ _Databases implemented in Go._ - [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. - [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. - [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. -- [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. +- [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. - [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. - [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. - [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. - [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. - [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. - [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. -- [ttlcache](https://github.com/cheshir/ttlcache) - In-memory key value storage with TTL for each record. - [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. - [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. - [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. -_Database schema migration._ +### Database Schema Migration - [atlas](https://github.com/ariga/atlas) - A Database Toolkit. A CLI designed to help companies better work with their data. - [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. @@ -648,10 +714,10 @@ _Database schema migration._ - [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. - [sqlize](https://github.com/sunary/sqlize) - Database migration generator. Allows generate sql migration from model and existing sql by differ them. -_Database tools._ +### Database Tools - [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. -- [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small insterts and sends big requests to ClickHouse servers. +- [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small inserts and sends big requests to ClickHouse servers. - [datagen](https://github.com/codingconcepts/datagen) - A fast data generator that's multi-table aware and supports multi-row DML. - [dbbench](https://github.com/sj14/dbbench) - Database benchmarking tool with support for several databases and scripts. - [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. @@ -668,7 +734,8 @@ _Database tools._ - [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup. - [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._ +### SQL Query Builders +_Libraries for building and using SQL._ - [bqb](https://github.com/nullism/bqb) - Lightweight and easy to learn query builder. - [buildsqlx](https://github.com/arthurkushman/buildsqlx) - Go database query builder library for PostgreSQL. @@ -697,69 +764,69 @@ _SQL query builder, libraries for building and using SQL._ ## Database Drivers -_Libraries for connecting and operating databases._ - -- Relational Databases - - [avatica](https://github.com/apache/calcite-avatica-go) - Apache Avatica/Phoenix 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. - - [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that uses database/sql. - - [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver for Go. - - [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that uses database/sql. - - [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. - - [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. - - [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver. - - [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org). - - [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. - - [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. - - [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. - - [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. - - [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver. - -- NoSQL Databases - - [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. - - [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. - - [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. - - [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. - - [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go. - - [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa. - - [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. - - [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. - - [gocosmos](https://github.com/btnguyen2k/gocosmos) - REST client and standard `database/sql` driver for Azure Cosmos DB. - - [gocql](https://gocql.github.io) - Go language driver for Apache Cassandra. - - [godis](https://github.com/piaohao/godis) - redis client implement by golang, inspired by jedis. - - [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. - - [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. - - [mgm](https://github.com/kamva/mgm) - MongoDB model-based ODM for Go (based on official MongoDB driver). - - [mgo](https://github.com/globalsign/mgo) - (unmaintained) 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. - - [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. - - [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. - - [qmgo](https://github.com/qiniu/qmgo) - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. - - [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. - - [redigo](https://github.com/gomodule/redigo) - Redigo is a Go client for the Redis database. - - [redis](https://github.com/go-redis/redis) - Redis client for Golang. - - [rueidis](http://github.com/rueian/rueidis) - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching. - - [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. - -- 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. - - [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. - - [go-elasticsearch](https://github.com/elastic/go-elasticsearch) - Official Elasticsearch client for Go. - - [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch. - - [riot](https://github.com/go-ego/riot) - Go Open Source, Distributed, Simple and efficient Search Engine. - - [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. - -- Multiple Backends. - - [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. - - [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. - - [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more). +### Interfaces to Multiple Backends + +- [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. +- [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more). + +### Relational Database Drivers + +- [avatica](https://github.com/apache/calcite-avatica-go) - Apache Avatica/Phoenix 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. +- [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that uses database/sql. +- [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver for Go. +- [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that uses database/sql. +- [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. +- [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. +- [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver. +- [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org). +- [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. +- [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. +- [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. +- [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. +- [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. +- [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver. + +### NoSQL Database Drivers + +- [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. +- [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. +- [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. +- [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. +- [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go. +- [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa. +- [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. +- [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. +- [gocosmos](https://github.com/btnguyen2k/gocosmos) - REST client and standard `database/sql` driver for Azure Cosmos DB. +- [gocql](https://gocql.github.io) - Go language driver for Apache Cassandra. +- [godis](https://github.com/piaohao/godis) - redis client implement by golang, inspired by jedis. +- [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. +- [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. +- [mgm](https://github.com/kamva/mgm) - MongoDB model-based ODM for Go (based on official MongoDB driver). +- [mgo](https://github.com/globalsign/mgo) - (unmaintained) 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. +- [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. +- [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. +- [qmgo](https://github.com/qiniu/qmgo) - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. +- [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. +- [redigo](https://github.com/gomodule/redigo) - Redigo is a Go client for the Redis database. +- [redis](https://github.com/go-redis/redis) - Redis client for Golang. +- [rueidis](http://github.com/rueian/rueidis) - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching. +- [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. + +### Search and Analytic Databases + +- [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go. +- [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go. +- [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. +- [go-elasticsearch](https://github.com/elastic/go-elasticsearch) - Official Elasticsearch client for Go. +- [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch. +- [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage. **[⬆ back to top](#contents)** @@ -1622,7 +1689,7 @@ _These libraries were placed here because none of the other categories seemed to _Libraries for working with human languages._ -See also [Text Processing](#text-processing). +See also [Text Processing](#text-processing) and [Text Analysis](#text-analysis). ### Language Detection @@ -2181,7 +2248,7 @@ _Libraries for testing codebases and generating test data._ _Libraries for parsing and manipulating texts._ -See also [Natural Language Processing](#natural-language-processing). +See also [Natural Language Processing](#natural-language-processing) and [Text Analysis](#text-analysis). ### Formatters From a44ae00c1ef9bfe78b1acba06acf3b38e82c7453 Mon Sep 17 00:00:00 2001 From: spekary Date: Thu, 7 Apr 2022 12:17:42 -0700 Subject: [PATCH 2706/3440] Fixing typo --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1fe46ac755e..6654674f101 100644 --- a/README.md +++ b/README.md @@ -555,7 +555,8 @@ _Libraries for preprocessing CSS files._ ### Maps See also [Database](#database) for more complex key-value stores, and [Trees](#trees) for -additional ordred map implementations. +additional ordered map implementations. + - [cmap](https://github.com/lrita/cmap) - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards. - [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. From 31354d924006956005c1045226c04880c1858852 Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 7 Apr 2022 19:21:10 -0700 Subject: [PATCH 2707/3440] Removing gen: (#4121) - Last update is over 2 years ago - Many open issues including bug reports, that do not appear to have any activity - Does not conform to current awesome-go guidelines --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6654674f101..0fb11d5ea0f 100644 --- a/README.md +++ b/README.md @@ -1118,7 +1118,6 @@ _Awesome game development libraries._ _Tools that generate Go code._ - [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. - [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. - [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. - [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. From f1e4bcb9a5ac7aaff13fbf003dcda84e2655c69b Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 7 Apr 2022 19:26:51 -0700 Subject: [PATCH 2708/3440] Removing skiplist: (#4125) * Removing skiplist: - Last commit was 7 years ago - There are open issues with bug reports - Author appears to have abandoned the project - Does not conform to current awesome-go standards * Removing skiplist --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0fb11d5ea0f..8c78ab2eeb3 100644 --- a/README.md +++ b/README.md @@ -610,7 +610,6 @@ additional ordered map implementations. ### Trees -- [goskiplist](https://github.com/ryszard/goskiplist) - Skip list implementation in Go. - [hashsplit](http://github.com/bobg/hashsplit) - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position. - [merkle](https://github.com/bobg/merkle) - Space-efficient computation of Merkle root hashes and inclusion proofs. - [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. From 23b92b17979b8db8762369c863a6193341f98555 Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 7 Apr 2022 19:35:50 -0700 Subject: [PATCH 2709/3440] Removing merkletree: (#4126) * Removing merkletree: - Last commit is 3 years ago - Project is still in alpha and not progressing - Open issues and pull requests are not being responded to - Has no code coverage report * Removing merkletree --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8c78ab2eeb3..5ba92b0280f 100644 --- a/README.md +++ b/README.md @@ -612,7 +612,6 @@ additional ordered map implementations. - [hashsplit](http://github.com/bobg/hashsplit) - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position. - [merkle](https://github.com/bobg/merkle) - Space-efficient computation of Merkle root hashes and inclusion proofs. -- [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. - [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation. - [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. - [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps. From 6e64b809afd9373e29055fa8b2051ddc31862382 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 8 Apr 2022 21:33:19 -0700 Subject: [PATCH 2710/3440] Removing scribble: (#4135) - No official releases - Last commit over 3 years ago - Is a branch of another project that is diverging - Does not conform to current awesome-go guidlines --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 5ba92b0280f..f132cff9d2d 100644 --- a/README.md +++ b/README.md @@ -684,7 +684,6 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. - [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. - [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. -- [Scribble](https://github.com/nanobox-io/golang-scribble) - Tiny flat file JSON store. - [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. - [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. - [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. From 2376d268e3e3aefc92c72da2fd8fda4f33692a89 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 8 Apr 2022 21:43:39 -0700 Subject: [PATCH 2711/3440] Removing go-cache (#4169) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f132cff9d2d..1d9e3571a4d 100644 --- a/README.md +++ b/README.md @@ -641,7 +641,6 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. - [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. - [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. -- [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. - [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. - [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. From 0172b74ac33b63c101df81a765da3b7c865228a9 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 8 Apr 2022 21:50:14 -0700 Subject: [PATCH 2712/3440] Removing encoding: (#4170) Last commit was 4 years ago There is a recent bug report that shows its not working with recent versions of Go, and there is no response from the author. It does not conform to current awesome-go standards --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 1d9e3571a4d..e5dbbaeabc1 100644 --- a/README.md +++ b/README.md @@ -520,7 +520,6 @@ _Libraries for preprocessing CSS files._ - [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream. - [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions. - [crunch](https://github.com/superwhiskers/crunch) - Go package implementing buffers for handling various datatypes easily. -- [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. - [go-ef](https://github.com/amallia/go-ef) - A Go implementation of the Elias-Fano encoding. - [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. From 0c0b7d76b5bc540a77d8a7927ab0703156df87f8 Mon Sep 17 00:00:00 2001 From: Pascal Dennerly Date: Sat, 9 Apr 2022 19:38:48 +0100 Subject: [PATCH 2713/3440] Add wait-for (#4157) * Add wait-for * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e5dbbaeabc1..d647b630476 100644 --- a/README.md +++ b/README.md @@ -3014,6 +3014,7 @@ _Software written in Go._ - [trubka](https://github.com/xitonix/trubka) - A CLI tool to manage and troubleshoot Apache Kafka clusters with the ability of generically publishing/consuming protocol buffer and plain text events to/from Kafka. - [uTask](https://github.com/ovh/utask) - Automation engine that models and executes business processes declared in yaml. - [Vegeta](https://github.com/tsenart/vegeta) - HTTP load testing tool and library. It's over 9000! +- [wait-for](https://github.com/dnnrly/wait-for) - Wait for something to happen (from the command line) before continuing. Easy orchestration of Docker services and other things. - [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. From 4c0913499094e7488ecc80b1a2d88215a40641c7 Mon Sep 17 00:00:00 2001 From: Anton Kornilov Date: Mon, 11 Apr 2022 07:01:05 +0300 Subject: [PATCH 2714/3440] Add fasapay-sdk-go (#4158) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d647b630476..9aba60e082a 100644 --- a/README.md +++ b/README.md @@ -2356,6 +2356,7 @@ _Libraries for accessing third party APIs._ - [dusupay-sdk-go](https://github.com/Kachit/dusupay-sdk-go) - Unofficial Dusupay payment gateway API Client for Go - [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC API. - [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API. +- [fasapay-sdk-go](https://github.com/Kachit/fasapay-sdk-go) - Unofficial Fasapay payment gateway XML API Client for Golang. - [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. From 21ea442d2f257ae6c7e037b8d4a7f8001e0f15f4 Mon Sep 17 00:00:00 2001 From: Goktug <26507081+PIMPfiction@users.noreply.github.com> Date: Mon, 11 Apr 2022 07:04:19 +0300 Subject: [PATCH 2715/3440] add govader-backend (#4166) govader-backend under the title of Natural Language Processing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9aba60e082a..426e4608239 100644 --- a/README.md +++ b/README.md @@ -1704,6 +1704,7 @@ See also [Text Processing](#text-processing) and [Text Analysis](#text-analysis) - [golibstemmer](https://github.com/rjohnsondev/golibstemmer) - Go bindings for the snowball libstemmer library including porter 2. - [gosentiwordnet](https://github.com/dinopuguh/gosentiwordnet) - Sentiment analyzer using sentiwordnet lexicon in Go. - [govader](https://github.com/jonreiter/govader) - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment). +- [govader-backend](https://github.com/PIMPfiction/govader_backend) - Microservice implementation of [GoVader](https://github.com/jonreiter/govader). - [kagome](https://github.com/ikawaha/kagome) - JP morphological analyzer written in pure Go. - [libtextcat](https://github.com/goodsign/libtextcat) - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2. - [nlp](https://github.com/Shixzie/nlp) - Extract values from strings and fill your structs with nlp. From d21ce6793ddb43fa4c45fa57d82cb635a08cd4df Mon Sep 17 00:00:00 2001 From: Alessio Enrico Repetti Date: Mon, 11 Apr 2022 23:19:46 +0200 Subject: [PATCH 2716/3440] add fp-go to Functional packages (#4167) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 426e4608239..4b97e26185a 100644 --- a/README.md +++ b/README.md @@ -1075,6 +1075,7 @@ _Libraries for working with forms._ _Packages to support functional programming in Go._ +- [fp-go](https://github.com/repeale/fp-go) - Collection of Functional Programming helpers powered by Golang 1.18+ generics. - [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang. - [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go. - [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. From ad6c3424dd8194b5c92e7d6559695206833bdfc9 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 11 Apr 2022 15:53:26 -0700 Subject: [PATCH 2717/3440] Clarifying documentation requirements now that GoReportCard no longer checks for documentation formatting. (#4173) --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1225013eb00..2c325478218 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,10 +23,10 @@ To be on the list, project repositories should adhere to the following quality s - function as documented and expected; - be generally useful to the wider community of Go programmers; - be actively maintained with: - - Regular, recent commits; - - Or, for finished projects, issues and pull requests are responded to generally within 2 weeks; + - regular, recent commits; + - or, for finished projects, issues and pull requests are responded to generally within 2 weeks; - be stable or progressing toward stable; -- be thoroughly documented (README, pkg.go.dev doc comments, etc.) in the english language, so everyone is able to understand the project's intention and how it works; +- be thoroughly documented (README, pkg.go.dev doc comments, etc.) in the english language, so everyone is able to understand the project's intention and how it works. All public functions and types should have a Go style documentation header; - if the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. (**Note**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results); - have at least one official version-numbered release that allows go.mod files to list the file by version number, of the form vX.X.X. From a24817b5caf8a966647387fb3b82fc0dc49f5bea Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Tue, 12 Apr 2022 15:35:22 -0500 Subject: [PATCH 2718/3440] Add golamb (#4162) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4b97e26185a..f94240e08be 100644 --- a/README.md +++ b/README.md @@ -2705,6 +2705,7 @@ _Full stack web frameworks._ - [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. - [Goa](https://github.com/goadesign/goa) - Goa provides a holistic approach for developing remote APIs and microservices in Go. - [goa](https://github.com/goa-go/goa) - goa is just like koajs for golang, it is a flexible, light, high-performance and extensible web framework based on middleware. +- [golamb](https://github.com/twharmon/golamb) - Golamb makes it easier to write API endpoints for use with AWS Lambda and API Gateway. - [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. - [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. From be4305f4234a9454239b6cf5c947c5b38832b906 Mon Sep 17 00:00:00 2001 From: Max Lowther Date: Wed, 13 Apr 2022 13:16:18 +0100 Subject: [PATCH 2719/3440] add goven (#4165) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f94240e08be..ccd1a4fa194 100644 --- a/README.md +++ b/README.md @@ -1940,6 +1940,7 @@ _Unofficial libraries for package and dependency management._ - [api-fu](https://github.com/ccbrown/api-fu) - Comprehensive GraphQL implementation. - [dasel](https://github.com/tomwright/dasel) - Query and update data structures using selectors from the command line. Comparable to jq/yq but supports JSON, YAML, TOML and XML with zero runtime dependencies. - [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. +- [goven](https://github.com/SeldonIO/goven) - A drop-in query language for any database schema. - [gqlgen](https://github.com/99designs/gqlgen) - go generate based graphql server library. - [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. - [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. From 86b3cfe2a1aa7993ad3639d6b115d755535d0c64 Mon Sep 17 00:00:00 2001 From: Amirreza Askarpour Date: Thu, 14 Apr 2022 14:31:42 +0430 Subject: [PATCH 2720/3440] Adds Golobby/orm (#4171) Adds Golobby/orm --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ccd1a4fa194..1ce43582bac 100644 --- a/README.md +++ b/README.md @@ -1879,6 +1879,7 @@ _Libraries that implement Object-Relational Mapping or datamapping techniques._ - [go-sql](https://github.com/rushteam/gosql) - A easy ORM for mysql. - [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. - [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. +- [golobby/orm](https://github.com/golobby/orm) - Simple, fast, type-safe, generic orm for developer happiness. - [GORM](https://github.com/go-gorm/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. - [gormt](https://github.com/xxjwxc/gormt) - Mysql database to golang gorm struct. - [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. From 8432b48458f9478dbe9e7b5a1c6fdebd700508cb Mon Sep 17 00:00:00 2001 From: Milad Rahimi Date: Thu, 21 Apr 2022 15:34:11 +0430 Subject: [PATCH 2721/3440] Rename package "container" to "GoLobby/Container" (#4188) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1ce43582bac..f862fcc69fe 100644 --- a/README.md +++ b/README.md @@ -1572,13 +1572,13 @@ _Libraries for working with Microsoft Excel._ _Libraries for working with dependency injection._ - [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. -- [container](https://github.com/golobby/container) - A powerful IoC Container with fluent and easy-to-use interface. - [di](https://github.com/goava/di) - A dependency injection container for go programming language. - [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. - [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. - [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). - [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. - [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. +- [GoLobby/Container](https://github.com/golobby/container) - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language. - [google/wire](https://github.com/google/wire) - Automated Initialization in Go. - [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. - [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. From 0457697783df009119b8c505ca7f567365f25449 Mon Sep 17 00:00:00 2001 From: Milad Rahimi Date: Thu, 21 Apr 2022 15:34:22 +0430 Subject: [PATCH 2722/3440] Rename package "router" to "GoLobby/Router" (#4186) Since package name is simple, we've prepended the org name to it. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f862fcc69fe..8a02a5044e9 100644 --- a/README.md +++ b/README.md @@ -2785,6 +2785,7 @@ _Full stack web frameworks._ - [goblin](https://github.com/bmf-san/goblin) - A golang http router based on trie tree. - [gocraft/web](https://github.com/gocraft/web) - Mux and middleware package in Go. - [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. +- [GoLobby/Router](https://github.com/golobby/router) - GoLobby Router is a lightweight yet powerful HTTP router for the Go programming language. - [goroute](https://github.com/goroute/route) - Simple yet powerful HTTP request multiplexer. - [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. - [gowww/router](https://github.com/gowww/router) - Lightning fast HTTP router fully compatible with the net/http.Handler interface. @@ -2796,7 +2797,6 @@ _Full stack web frameworks._ - [ngamux](https://github.com/ngamux/ngamux) - Simple HTTP router for Go. - [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. - [pure](https://github.com/go-playground/pure) - Is a lightweight HTTP router that sticks to the std "net/http" implementation. -- [router](https://github.com/golobby/router) - GoLobby Router is a lightweight yet powerful HTTP router for the Go programming language. - [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. - [violetear](https://github.com/nbari/violetear) - Go HTTP router. From bd55679ba25d9970cdefcbb6f2d57bcd9641e57c Mon Sep 17 00:00:00 2001 From: Milad Rahimi Date: Thu, 21 Apr 2022 15:34:36 +0430 Subject: [PATCH 2723/3440] Rename package "config" to "GoLobby/Config" (#4187) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a02a5044e9..50223180ced 100644 --- a/README.md +++ b/README.md @@ -435,7 +435,6 @@ _Libraries for configuration parsing._ - [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader. - [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). -- [config](https://github.com/golobby/config) - A lightweight yet powerful config package for Go projects. - [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. - [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. - [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. @@ -460,6 +459,7 @@ _Libraries for configuration parsing._ - [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from 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. +- [GoLobby/Config](https://github.com/golobby/config) - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language. - [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. - [gonfig](https://github.com/milad-abbasi/gonfig) - Tag-based configuration parser which loads values from different providers into typesafe struct. - [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. From 4aa7ed2149a22e35b4e40f56806a132e942094e6 Mon Sep 17 00:00:00 2001 From: David Sharnoff Date: Thu, 21 Apr 2022 04:43:09 -0700 Subject: [PATCH 2724/3440] add nfigure (#4152) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 50223180ced..5da55c850f7 100644 --- a/README.md +++ b/README.md @@ -476,6 +476,7 @@ _Libraries for configuration parsing._ - [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (succesor to `kingpin`). - [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. - [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. +- [nfigure](https://github.com/muir/nfigure) - Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML - [onion](https://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. - [piper](https://github.com/Yiling-J/piper) - Viper wrapper with config inheritance and key generation. - [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. From 8286a2b82b278f883c1fa8b95be672e091cba1bb Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Sun, 24 Apr 2022 01:03:02 -0500 Subject: [PATCH 2725/3440] add twharmon/slices (#4136) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5da55c850f7..4d58f643dee 100644 --- a/README.md +++ b/README.md @@ -575,6 +575,7 @@ additional ordered map implementations. - [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. - [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. - [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. +- [slices](https://github.com/twharmon/slices) - Pure, generic functions for slices. ### Nullable Types From 996df76c234791df136089065f23ea7b9477383d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20Ali=C3=A8s?= Date: Sun, 24 Apr 2022 08:06:34 +0200 Subject: [PATCH 2726/3440] add go-rocket-update (#4196) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d58f643dee..d48c6ca2875 100644 --- a/README.md +++ b/README.md @@ -2978,6 +2978,7 @@ _Software written in Go._ - [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. - [gitea-github-migrator](https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator) - Migrate all your GitHub repositories, issues, milestones and labels to your Gitea instance. - [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. +- [go-rocket-update](https://github.com/mouuff/go-rocket-update) - A simple way to make self updating Go applications - Supports Github and Gitlab. - [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. - [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. - [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. From 83790fbddddb546a487069b85b2558b0b2527f1c Mon Sep 17 00:00:00 2001 From: SwitchUpCB <81384235+switchupcb@users.noreply.github.com> Date: Sun, 24 Apr 2022 21:09:02 -0500 Subject: [PATCH 2727/3440] add copygen (#4181) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d48c6ca2875..e69c9113218 100644 --- a/README.md +++ b/README.md @@ -1115,6 +1115,7 @@ _Awesome game development libraries._ _Tools that generate Go code._ +- [copygen](https://github.com/switchupcb/copygen) - Generate type-to-type code without reflection. - [efaceconv](https://github.com/t0pep0/efaceconv) - Code generation tool for high performance conversion from interface{} to immutable type without allocations. - [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. - [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. From fe6c8e400f7a53c2d441cf18c93ff227c512fd19 Mon Sep 17 00:00:00 2001 From: Anton Kornilov Date: Mon, 11 Apr 2022 07:01:05 +0300 Subject: [PATCH 2728/3440] Add fasapay-sdk-go (#4158) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 71907e7cc76..1982f180973 100644 --- a/README.md +++ b/README.md @@ -2357,6 +2357,7 @@ _Libraries for accessing third party APIs._ - [dusupay-sdk-go](https://github.com/Kachit/dusupay-sdk-go) - Unofficial Dusupay payment gateway API Client for Go - [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC API. - [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API. +- [fasapay-sdk-go](https://github.com/Kachit/fasapay-sdk-go) - Unofficial Fasapay payment gateway XML API Client for Golang. - [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. From ec528b07d7587fa362b929d56ec5694118d97201 Mon Sep 17 00:00:00 2001 From: Goktug <26507081+PIMPfiction@users.noreply.github.com> Date: Mon, 11 Apr 2022 07:04:19 +0300 Subject: [PATCH 2729/3440] add govader-backend (#4166) govader-backend under the title of Natural Language Processing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1982f180973..319e746a17b 100644 --- a/README.md +++ b/README.md @@ -1705,6 +1705,7 @@ See also [Text Processing](#text-processing) and [Text Analysis](#text-analysis) - [golibstemmer](https://github.com/rjohnsondev/golibstemmer) - Go bindings for the snowball libstemmer library including porter 2. - [gosentiwordnet](https://github.com/dinopuguh/gosentiwordnet) - Sentiment analyzer using sentiwordnet lexicon in Go. - [govader](https://github.com/jonreiter/govader) - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment). +- [govader-backend](https://github.com/PIMPfiction/govader_backend) - Microservice implementation of [GoVader](https://github.com/jonreiter/govader). - [kagome](https://github.com/ikawaha/kagome) - JP morphological analyzer written in pure Go. - [libtextcat](https://github.com/goodsign/libtextcat) - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2. - [nlp](https://github.com/Shixzie/nlp) - Extract values from strings and fill your structs with nlp. From 4f33330b07722ee0b04621170586625e80beff72 Mon Sep 17 00:00:00 2001 From: Alessio Enrico Repetti Date: Mon, 11 Apr 2022 23:19:46 +0200 Subject: [PATCH 2730/3440] add fp-go to Functional packages (#4167) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 319e746a17b..619c17b7231 100644 --- a/README.md +++ b/README.md @@ -1076,6 +1076,7 @@ _Libraries for working with forms._ _Packages to support functional programming in Go._ +- [fp-go](https://github.com/repeale/fp-go) - Collection of Functional Programming helpers powered by Golang 1.18+ generics. - [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang. - [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go. - [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. From 88f1c34ed5e5d15a183bc99722c3b438254d1653 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 11 Apr 2022 15:53:26 -0700 Subject: [PATCH 2731/3440] Clarifying documentation requirements now that GoReportCard no longer checks for documentation formatting. (#4173) --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1225013eb00..2c325478218 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,10 +23,10 @@ To be on the list, project repositories should adhere to the following quality s - function as documented and expected; - be generally useful to the wider community of Go programmers; - be actively maintained with: - - Regular, recent commits; - - Or, for finished projects, issues and pull requests are responded to generally within 2 weeks; + - regular, recent commits; + - or, for finished projects, issues and pull requests are responded to generally within 2 weeks; - be stable or progressing toward stable; -- be thoroughly documented (README, pkg.go.dev doc comments, etc.) in the english language, so everyone is able to understand the project's intention and how it works; +- be thoroughly documented (README, pkg.go.dev doc comments, etc.) in the english language, so everyone is able to understand the project's intention and how it works. All public functions and types should have a Go style documentation header; - if the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. (**Note**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results); - have at least one official version-numbered release that allows go.mod files to list the file by version number, of the form vX.X.X. From 5115d70722de19b3acd2b5d4284ecdb11d40f868 Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Tue, 12 Apr 2022 15:35:22 -0500 Subject: [PATCH 2732/3440] Add golamb (#4162) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 619c17b7231..fd76b73152f 100644 --- a/README.md +++ b/README.md @@ -2706,6 +2706,7 @@ _Full stack web frameworks._ - [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. - [Goa](https://github.com/goadesign/goa) - Goa provides a holistic approach for developing remote APIs and microservices in Go. - [goa](https://github.com/goa-go/goa) - goa is just like koajs for golang, it is a flexible, light, high-performance and extensible web framework based on middleware. +- [golamb](https://github.com/twharmon/golamb) - Golamb makes it easier to write API endpoints for use with AWS Lambda and API Gateway. - [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. - [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. From 41041192bcf041fbf60f863273d711561cd73138 Mon Sep 17 00:00:00 2001 From: Max Lowther Date: Wed, 13 Apr 2022 13:16:18 +0100 Subject: [PATCH 2733/3440] add goven (#4165) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fd76b73152f..43d5a9b8af7 100644 --- a/README.md +++ b/README.md @@ -1941,6 +1941,7 @@ _Unofficial libraries for package and dependency management._ - [api-fu](https://github.com/ccbrown/api-fu) - Comprehensive GraphQL implementation. - [dasel](https://github.com/tomwright/dasel) - Query and update data structures using selectors from the command line. Comparable to jq/yq but supports JSON, YAML, TOML and XML with zero runtime dependencies. - [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. +- [goven](https://github.com/SeldonIO/goven) - A drop-in query language for any database schema. - [gqlgen](https://github.com/99designs/gqlgen) - go generate based graphql server library. - [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. - [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. From 398821f28286681824f457de9ae2029d2900d48e Mon Sep 17 00:00:00 2001 From: Amirreza Askarpour Date: Thu, 14 Apr 2022 14:31:42 +0430 Subject: [PATCH 2734/3440] Adds Golobby/orm (#4171) Adds Golobby/orm --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 43d5a9b8af7..b1047caf2b2 100644 --- a/README.md +++ b/README.md @@ -1880,6 +1880,7 @@ _Libraries that implement Object-Relational Mapping or datamapping techniques._ - [go-sql](https://github.com/rushteam/gosql) - A easy ORM for mysql. - [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. - [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. +- [golobby/orm](https://github.com/golobby/orm) - Simple, fast, type-safe, generic orm for developer happiness. - [GORM](https://github.com/go-gorm/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. - [gormt](https://github.com/xxjwxc/gormt) - Mysql database to golang gorm struct. - [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. From e438b31e2b96dec8f04df86150a9c131520f2381 Mon Sep 17 00:00:00 2001 From: Milad Rahimi Date: Thu, 21 Apr 2022 15:34:11 +0430 Subject: [PATCH 2735/3440] Rename package "container" to "GoLobby/Container" (#4188) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b1047caf2b2..91681819c99 100644 --- a/README.md +++ b/README.md @@ -1573,13 +1573,13 @@ _Libraries for working with Microsoft Excel._ _Libraries for working with dependency injection._ - [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. -- [container](https://github.com/golobby/container) - A powerful IoC Container with fluent and easy-to-use interface. - [di](https://github.com/goava/di) - A dependency injection container for go programming language. - [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. - [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. - [fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go (built on top of dig). - [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. - [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. +- [GoLobby/Container](https://github.com/golobby/container) - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language. - [google/wire](https://github.com/google/wire) - Automated Initialization in Go. - [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. - [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. From 1ead774fe3acbc8cb25dc602e9ef2c2fdaa17e24 Mon Sep 17 00:00:00 2001 From: Milad Rahimi Date: Thu, 21 Apr 2022 15:34:22 +0430 Subject: [PATCH 2736/3440] Rename package "router" to "GoLobby/Router" (#4186) Since package name is simple, we've prepended the org name to it. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 91681819c99..2bfa4a36dee 100644 --- a/README.md +++ b/README.md @@ -2786,6 +2786,7 @@ _Full stack web frameworks._ - [goblin](https://github.com/bmf-san/goblin) - A golang http router based on trie tree. - [gocraft/web](https://github.com/gocraft/web) - Mux and middleware package in Go. - [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`. +- [GoLobby/Router](https://github.com/golobby/router) - GoLobby Router is a lightweight yet powerful HTTP router for the Go programming language. - [goroute](https://github.com/goroute/route) - Simple yet powerful HTTP request multiplexer. - [GoRouter](https://github.com/vardius/gorouter) - GoRouter is a Server/API micro framework, HTTP request router, multiplexer, mux that provides request router with middleware supporting `net/context`. - [gowww/router](https://github.com/gowww/router) - Lightning fast HTTP router fully compatible with the net/http.Handler interface. @@ -2797,7 +2798,6 @@ _Full stack web frameworks._ - [ngamux](https://github.com/ngamux/ngamux) - Simple HTTP router for Go. - [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. - [pure](https://github.com/go-playground/pure) - Is a lightweight HTTP router that sticks to the std "net/http" implementation. -- [router](https://github.com/golobby/router) - GoLobby Router is a lightweight yet powerful HTTP router for the Go programming language. - [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. - [violetear](https://github.com/nbari/violetear) - Go HTTP router. From 4955f0ce48975d267191174e5ec32320258f3a87 Mon Sep 17 00:00:00 2001 From: Milad Rahimi Date: Thu, 21 Apr 2022 15:34:36 +0430 Subject: [PATCH 2737/3440] Rename package "config" to "GoLobby/Config" (#4187) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2bfa4a36dee..d5f54ac48e3 100644 --- a/README.md +++ b/README.md @@ -435,7 +435,6 @@ _Libraries for configuration parsing._ - [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader. - [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). -- [config](https://github.com/golobby/config) - A lightweight yet powerful config package for Go projects. - [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. - [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. - [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. @@ -460,6 +459,7 @@ _Libraries for configuration parsing._ - [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from 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. +- [GoLobby/Config](https://github.com/golobby/config) - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language. - [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. - [gonfig](https://github.com/milad-abbasi/gonfig) - Tag-based configuration parser which loads values from different providers into typesafe struct. - [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. From 2c08163ae4501d0c6256aa586074d1007949b983 Mon Sep 17 00:00:00 2001 From: David Sharnoff Date: Thu, 21 Apr 2022 04:43:09 -0700 Subject: [PATCH 2738/3440] add nfigure (#4152) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d5f54ac48e3..203cecddb72 100644 --- a/README.md +++ b/README.md @@ -476,6 +476,7 @@ _Libraries for configuration parsing._ - [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (succesor to `kingpin`). - [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. - [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables. +- [nfigure](https://github.com/muir/nfigure) - Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML - [onion](https://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. - [piper](https://github.com/Yiling-J/piper) - Viper wrapper with config inheritance and key generation. - [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. From 22c54aa104ffeac50c5d16812a6d37781eb74e28 Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Sun, 24 Apr 2022 01:03:02 -0500 Subject: [PATCH 2739/3440] add twharmon/slices (#4136) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 203cecddb72..909ab345617 100644 --- a/README.md +++ b/README.md @@ -576,6 +576,7 @@ additional ordered map implementations. - [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. - [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. - [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. +- [slices](https://github.com/twharmon/slices) - Pure, generic functions for slices. ### Nullable Types From 19f74cd288bcd14f4d00a45d3979676bf21135c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20Ali=C3=A8s?= Date: Sun, 24 Apr 2022 08:06:34 +0200 Subject: [PATCH 2740/3440] add go-rocket-update (#4196) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 909ab345617..37f2fd694ec 100644 --- a/README.md +++ b/README.md @@ -2979,6 +2979,7 @@ _Software written in Go._ - [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. - [gitea-github-migrator](https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator) - Migrate all your GitHub repositories, issues, milestones and labels to your Gitea instance. - [go-furnace](https://github.com/go-furnace/go-furnace) - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean. +- [go-rocket-update](https://github.com/mouuff/go-rocket-update) - A simple way to make self updating Go applications - Supports Github and Gitlab. - [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. - [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. - [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. From 0d7657749f94f3790961c36774dcd174372b16f9 Mon Sep 17 00:00:00 2001 From: SwitchUpCB <81384235+switchupcb@users.noreply.github.com> Date: Sun, 24 Apr 2022 21:09:02 -0500 Subject: [PATCH 2741/3440] add copygen (#4181) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37f2fd694ec..80b94cc363f 100644 --- a/README.md +++ b/README.md @@ -1116,6 +1116,7 @@ _Awesome game development libraries._ _Tools that generate Go code._ +- [copygen](https://github.com/switchupcb/copygen) - Generate type-to-type code without reflection. - [efaceconv](https://github.com/t0pep0/efaceconv) - Code generation tool for high performance conversion from interface{} to immutable type without allocations. - [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. - [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. From d2cf2ddf6bf1c30cba05dd1529c8514bada48185 Mon Sep 17 00:00:00 2001 From: spekary Date: Sun, 10 Apr 2022 21:23:49 -0700 Subject: [PATCH 2742/3440] Add goradd maps. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 80b94cc363f..4d803183beb 100644 --- a/README.md +++ b/README.md @@ -559,6 +559,7 @@ additional ordered map implementations. - [cmap](https://github.com/lrita/cmap) - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards. - [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. +- [goradd/maps](https://github.com/goradd/maps) - Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc. ### Miscellaneous Data Structures and Algorithms From 1918a45ed4e8ed90c58be7452a9a40708d5dce04 Mon Sep 17 00:00:00 2001 From: Wu Tingfeng Date: Wed, 20 Apr 2022 04:42:02 +0800 Subject: [PATCH 2743/3440] Add go-fasttld --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d803183beb..efd340f80e9 100644 --- a/README.md +++ b/README.md @@ -2291,6 +2291,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. - [editorconfig-core-go](https://github.com/editorconfig/editorconfig-core-go) - Editorconfig file parser and manipulator for Go. - [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. +- [go-fasttld](https://github.com/elliotwutingfeng/go-fasttld) - High performance top level domains (TLD) extraction module. - [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. - [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. From 0fca1cf3ba9404a7b291ba9cd7739772507a6f62 Mon Sep 17 00:00:00 2001 From: "@billcoding" Date: Thu, 21 Apr 2022 09:18:23 +0800 Subject: [PATCH 2744/3440] Update README.md Add exl --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index efd340f80e9..27beee2f96c 100644 --- a/README.md +++ b/README.md @@ -1563,6 +1563,7 @@ _Libraries that implement messaging systems._ _Libraries for working with Microsoft Excel._ - [excelize](https://github.com/xuri/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files. +- [exl](https://github.com/go-the-way/exl) - Excel binding to struct written in Go.(Only supports Go1.18+) - [go-excel](https://github.com/szyhf/go-excel) - A simple and light reader to read a relate-db-like excel as a table. - [goxlsxwriter](https://github.com/fterrag/goxlsxwriter) - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files. - [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. From 9cb067a9a3941fc60da7daa432b9ca8dead8bcd8 Mon Sep 17 00:00:00 2001 From: "@billcoding" Date: Thu, 21 Apr 2022 09:49:34 +0800 Subject: [PATCH 2745/3440] Update README.md Add sg --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 27beee2f96c..cab5f43025d 100644 --- a/README.md +++ b/README.md @@ -753,6 +753,7 @@ _Libraries for building and using SQL._ - [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. - [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities. - [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries. +- [sg](https://github.com/go-the-way/sg) - A SQL Gen for generating standard SQLs(supports: CRUD) written in Go. - [sq](https://github.com/bokwoon95/go-structured-query) - Type-safe SQL builder and struct mapper for Go. - [sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL. - [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder. From 55116094418e6a722e01ec0450dedb14a01086e6 Mon Sep 17 00:00:00 2001 From: Gregor Noczinski Date: Thu, 21 Apr 2022 10:07:11 +0200 Subject: [PATCH 2746/3440] Added slf4g --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cab5f43025d..38f2198aca2 100644 --- a/README.md +++ b/README.md @@ -1439,6 +1439,7 @@ _Libraries for generating and working with log files._ - [phuslu/log](https://github.com/phuslu/log) - Structured Logging Made Easy. - [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. - [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. +- [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount learnings from dedaces of past logging frameworks. - [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. - [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. From 0e6097a3ce774c292416227c2020bf8ec3b0e812 Mon Sep 17 00:00:00 2001 From: Gregor Noczinski Date: Thu, 21 Apr 2022 10:11:39 +0200 Subject: [PATCH 2747/3440] Fixed grammar and spelling --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 38f2198aca2..68d8350f088 100644 --- a/README.md +++ b/README.md @@ -1439,7 +1439,7 @@ _Libraries for generating and working with log files._ - [phuslu/log](https://github.com/phuslu/log) - Structured Logging Made Easy. - [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. - [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. -- [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount learnings from dedaces of past logging frameworks. +- [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. - [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. - [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. From 3c0165fa6a5c3135fe6fa3bee67c091aceb95bf3 Mon Sep 17 00:00:00 2001 From: Wu Tingfeng Date: Wed, 27 Apr 2022 19:00:00 +0800 Subject: [PATCH 2748/3440] Fix spelling --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 68d8350f088..1b1f8c4a1d1 100644 --- a/README.md +++ b/README.md @@ -2293,7 +2293,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [did](https://github.com/ockam-network/did) - DID (Decentralized Identifiers) Parser and Stringer in Go. - [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. - [editorconfig-core-go](https://github.com/editorconfig/editorconfig-core-go) - Editorconfig file parser and manipulator for Go. -- [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decodersa. +- [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decoders. - [go-fasttld](https://github.com/elliotwutingfeng/go-fasttld) - High performance top level domains (TLD) extraction module. - [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. - [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. From fdf4e1631130aa5c572ddd6417cf7069ab54cfaa Mon Sep 17 00:00:00 2001 From: Travis Harmon Date: Fri, 25 Mar 2022 14:01:46 -0500 Subject: [PATCH 2749/3440] Add dynago --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1b1f8c4a1d1..f300c4a75f4 100644 --- a/README.md +++ b/README.md @@ -721,6 +721,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small inserts and sends big requests to ClickHouse servers. - [datagen](https://github.com/codingconcepts/datagen) - A fast data generator that's multi-table aware and supports multi-row DML. - [dbbench](https://github.com/sj14/dbbench) - Database benchmarking tool with support for several databases and scripts. +- [dynago](https://github.com/twharmon/dynago) - Simplify working with AWS DynamoDB. - [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. - [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. From 2acfd44ce25209513c6458dbca15f1dbb3077d79 Mon Sep 17 00:00:00 2001 From: David Muir Sharnoff Date: Tue, 29 Mar 2022 22:43:44 -0700 Subject: [PATCH 2750/3440] add libschema --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f300c4a75f4..f7cad09188d 100644 --- a/README.md +++ b/README.md @@ -705,6 +705,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [godfish](https://github.com/rafaelespinoza/godfish) - Database migration manager, works with native query language. Support for cassandra, mysql, postgres, sqlite3. - [goose](https://github.com/pressly/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. +- [libschema](https://github.com/muir/libschema) - Define your migrations separately in each libary. Migrations for open source libraries. MySQL & PostgreSQL. - [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. - [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. - [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code. From 3557e06d9e63d368a55598aa49632b5901a3baa2 Mon Sep 17 00:00:00 2001 From: Winni Neessen Date: Sat, 7 May 2022 13:51:21 +0200 Subject: [PATCH 2751/3440] add go-mail (#4212) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f7cad09188d..f964a6e32c5 100644 --- a/README.md +++ b/README.md @@ -940,6 +940,7 @@ _Libraries and tools that implement email creation and sending._ - [go-dkim](https://github.com/toorop/go-dkim) - DKIM library, to sign & verify email. - [go-email-validator](https://github.com/go-email-validator/go-email-validator) - Modular email validator for syntax, disposable, smtp, etc... checking. - [go-imap](https://github.com/emersion/go-imap) - IMAP library for clients and servers. +- [go-mail](https://github.com/wneessen/go-mail) - A simple Go library for sending mails in Go. - [go-message](https://github.com/emersion/go-message) - Streaming library for the Internet Message Format and mail messages. - [go-premailer](https://github.com/vanng822/go-premailer) - Inline styling for HTML mail in Go. - [go-simple-mail](https://github.com/xhit/go-simple-mail) - Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send. From 77771e00104fac0e1c3fed81a8fb6030a4984305 Mon Sep 17 00:00:00 2001 From: Winni Neessen Date: Sun, 8 May 2022 16:06:18 +0200 Subject: [PATCH 2752/3440] add go-hibp (#4215) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f964a6e32c5..473dc44c79a 100644 --- a/README.md +++ b/README.md @@ -2385,6 +2385,7 @@ _Libraries for accessing third party APIs._ - [go-chronos](https://github.com/axelspringer/go-chronos) - Go library for interacting with the [Chronos](https://mesos.github.io/chronos/) Job Scheduler - [go-hacknews](https://github.com/PaulRosset/go-hacknews) - Tiny Go client for HackerNews API. - [go-here](https://github.com/abdullahselek/go-here) - Go client library around the HERE location based APIs. +- [go-hibp](https://github.com/wneessen/go-hibp) - Simple Go binding to the "Have I Been Pwned" APIs. - [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-lark](https://github.com/go-lark/lark) - An easy-to-use unofficial SDK for [Feishu](https://open.feishu.cn/) and [Lark](https://open.larksuite.com/) Open Platform. From a9b85678740746c796eb62ea4a597e1ee942cc9b Mon Sep 17 00:00:00 2001 From: Nwillc Date: Mon, 9 May 2022 05:08:19 -0400 Subject: [PATCH 2753/3440] add genfuncs (#4217) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 473dc44c79a..6844baf91cc 100644 --- a/README.md +++ b/README.md @@ -567,6 +567,7 @@ additional ordered map implementations. - [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library. - [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). - [fsm](https://github.com/cocoonspace/fsm) - Finite-State Machine package. +- [genfuncs](https://github.com/nwillc/genfuncs) - Go 1.18+ generics package inspired by Kotlin's Sequence and Map. - [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. - [go-tuple](https://github.com/barweiss/go-tuple) - Generic tuple implementation for Go 1.18+. From f5f2567c188d2aadd1d7d4791d2d1f81f8e99b55 Mon Sep 17 00:00:00 2001 From: spekary Date: Fri, 22 Apr 2022 09:04:48 -0700 Subject: [PATCH 2754/3440] Removing session gate --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6844baf91cc..48bf04db4e1 100644 --- a/README.md +++ b/README.md @@ -269,7 +269,6 @@ _Libraries for implementing authentications schemes._ - [scs](https://github.com/alexedwards/scs) - Session Manager for HTTP servers. - [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. - [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE). -- [sessiongate-go](https://github.com/f0rmiga/sessiongate-go) - Go session management using the SessionGate Redis module. - [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers. - [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package. - [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser. From cf4ddee0cc06efddfc7c4928d3214630591cd9e8 Mon Sep 17 00:00:00 2001 From: SwitchUpCB <81384235+switchupcb@users.noreply.github.com> Date: Thu, 28 Apr 2022 12:24:26 -0500 Subject: [PATCH 2755/3440] remove efaceconv --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 48bf04db4e1..4338a40734f 100644 --- a/README.md +++ b/README.md @@ -1122,7 +1122,6 @@ _Awesome game development libraries._ _Tools that generate Go code._ - [copygen](https://github.com/switchupcb/copygen) - Generate type-to-type code without reflection. -- [efaceconv](https://github.com/t0pep0/efaceconv) - Code generation tool for high performance conversion from interface{} to immutable type without allocations. - [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. - [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. - [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. From 21c4c808e23251a3b67f710c3a353cb7c32f0849 Mon Sep 17 00:00:00 2001 From: SwitchUpCB <81384235+switchupcb@users.noreply.github.com> Date: Thu, 28 Apr 2022 12:38:38 -0500 Subject: [PATCH 2756/3440] remove pkgreflect --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4338a40734f..60ff065444f 100644 --- a/README.md +++ b/README.md @@ -1132,7 +1132,6 @@ _Tools that generate Go code._ - [GoWrap](https://github.com/hexdigest/gowrap) - Generate decorators for Go interfaces using simple templates. - [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. - [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. -- [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection. - [typeregistry](https://github.com/xiaoxin01/typeregistry) - A library to create type dynamically. **[⬆ back to top](#contents)** From 0b77b5b6f6f41259fa77c8944d3dd40ef647993a Mon Sep 17 00:00:00 2001 From: Yota Hamada Date: Wed, 18 May 2022 12:52:54 +0900 Subject: [PATCH 2757/3440] Add Dagu (#4224) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 60ff065444f..8adf8992ce9 100644 --- a/README.md +++ b/README.md @@ -1340,6 +1340,7 @@ _Libraries for scheduling jobs._ - [cheek](https://github.com/datarootsio/cheek) - A simple crontab like scheduler that aims to offer a KISS approach to job scheduling. - [clockwerk](https://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. - [cronticker](https://github.com/krayzpipes/cronticker) - A ticker implementation to support cron schedules. +- [Dagu](https://github.com/dagu-go/dagu) - No-code workflow executor. it executes DAGs defined in a simple YAML format. - [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. - [gocron](https://github.com/go-co-op/gocron) - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). From eabb7e45953bd86d6befdad32b47dca391b92a3e Mon Sep 17 00:00:00 2001 From: Wayback Archiver <66856220+waybackarchiver@users.noreply.github.com> Date: Sat, 21 May 2022 13:36:50 +0800 Subject: [PATCH 2758/3440] Add wayback (#4209) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8adf8992ce9..efbed07df10 100644 --- a/README.md +++ b/README.md @@ -315,6 +315,7 @@ _Libraries for building and working with bots._ - [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. - [teleterm](https://github.com/alfiankan/teleterm) - Telegram Bot Exec Terminal Command. - [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. +- [wayback](https://github.com/wabarc/wayback) - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages. **[⬆ back to top](#contents)** From eeb8835d32520a0830df96b30f97000d900dbaf3 Mon Sep 17 00:00:00 2001 From: Daniel Francesconi Date: Sat, 21 May 2022 07:39:14 +0200 Subject: [PATCH 2759/3440] add go-rampart (#4229) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index efbed07df10..501ddd7e972 100644 --- a/README.md +++ b/README.md @@ -569,6 +569,7 @@ additional ordered map implementations. - [fsm](https://github.com/cocoonspace/fsm) - Finite-State Machine package. - [genfuncs](https://github.com/nwillc/genfuncs) - Go 1.18+ generics package inspired by Kotlin's Sequence and Map. - [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. +- [go-rampart](https://github.com/francesconi/go-rampart) - Determine how intervals relate to each other. - [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. - [go-tuple](https://github.com/barweiss/go-tuple) - Generic tuple implementation for Go 1.18+. - [go18ds](https://github.com/daichi-m/go18ds) - Go Data Structures using Go 1.18 generics. From 40c0055ac4fa75acfe3214d8c276fdae3b0c7fc7 Mon Sep 17 00:00:00 2001 From: Marc Ole Bulling Date: Sat, 21 May 2022 07:41:25 +0200 Subject: [PATCH 2760/3440] add Gokapi (#4227) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 501ddd7e972..a721ecbfc64 100644 --- a/README.md +++ b/README.md @@ -3067,6 +3067,7 @@ _Software written in Go._ - [GoBoy](https://github.com/Humpheh/goboy) - Nintendo Game Boy Color emulator written in Go. - [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. - [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. +- [Gokapi](https://github.com/Forceu/gokapi) - Lightweight server to share files, which expire after a set amount of downloads or days. Similar to Firefox Send, but without public upload. - [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. - [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. - [Guora](https://github.com/meloalright/guora) - A self-hosted Quora like web application written in Go. From 557cc933fe61966da426c1b1a987d8b50424310a Mon Sep 17 00:00:00 2001 From: mmadfox Date: Sat, 21 May 2022 08:49:16 +0300 Subject: [PATCH 2761/3440] add geojson2h3 and h3-go (#4221) * Add geojson2h3 * add h3-go and fix order Co-authored-by: Phani Rithvij --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a721ecbfc64..89f06d93475 100644 --- a/README.md +++ b/README.md @@ -1145,6 +1145,8 @@ _Geographic tools and servers_ - [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. - [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver. - [godal](https://github.com/airbusgeo/godal) - Go wrapper for GDAL. +- [h3-go] - Go bindings for H3, a hierarchical hexagonal geospatial indexing system. +- [H3 GeoJSON](https://github.com/mmadfox/go-geojson2h3) - Conversion utilities between H3 indexes and GeoJSON. - [mbtileserver](https://github.com/consbio/mbtileserver) - A simple Go-based server for map tiles stored in mbtiles format. - [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. - [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. From 2b6659f9128f1ada8a49e621611284cc7206d4f7 Mon Sep 17 00:00:00 2001 From: mmadfox Date: Sat, 21 May 2022 09:01:00 +0300 Subject: [PATCH 2762/3440] add H3GeoDist (#4222) * Add H3GeoDist * change order Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89f06d93475..bc28a227c06 100644 --- a/README.md +++ b/README.md @@ -1147,6 +1147,7 @@ _Geographic tools and servers_ - [godal](https://github.com/airbusgeo/godal) - Go wrapper for GDAL. - [h3-go] - Go bindings for H3, a hierarchical hexagonal geospatial indexing system. - [H3 GeoJSON](https://github.com/mmadfox/go-geojson2h3) - Conversion utilities between H3 indexes and GeoJSON. +- [H3GeoDist](https://github.com/mmadfox/go-h3geo-dist) - Distribution of Uber H3geo cells by virtual nodes. - [mbtileserver](https://github.com/consbio/mbtileserver) - A simple Go-based server for map tiles stored in mbtiles format. - [osm](https://github.com/paulmach/osm) - Library for reading, writing and working with OpenStreetMap data and APIs. - [pbf](https://github.com/maguro/pbf) - OpenStreetMap PBF golang encoder/decoder. From ec65c854eb262d97f1eb2b134b4d8e2304002e90 Mon Sep 17 00:00:00 2001 From: rsteube Date: Sun, 22 May 2022 06:53:48 +0200 Subject: [PATCH 2763/3440] add carapace-spec (#4223) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bc28a227c06..7da2bdd6550 100644 --- a/README.md +++ b/README.md @@ -387,6 +387,7 @@ _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. - [carapace](https://github.com/rsteube/carapace) - Command argument completion generator for spf13/cobra. - [carapace-bin](https://github.com/rsteube/carapace-bin) - Multi-shell multi-command argument completer. +- [carapace-spec](https://github.com/rsteube/carapace-spec) - Define simple completions using a spec file. - [cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang struct tags. - [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. - [climax](https://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. From 29722f7c7b99cc255b8b116fe05f3aa0f17b8181 Mon Sep 17 00:00:00 2001 From: Phil Date: Wed, 27 Apr 2022 22:33:24 -0400 Subject: [PATCH 2764/3440] Add valor --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7da2bdd6550..3d0c0917490 100644 --- a/README.md +++ b/README.md @@ -1092,6 +1092,7 @@ _Packages to support functional programming in Go._ - [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. - [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang. - [underscore](https://github.com/rjNemo/underscore) - Functional programming helpers for Go 1.18 and beyond. +- [valor](https://github.com/phelmkamp/valor) - Generic option and result types that optionally contain a value. **[⬆ back to top](#contents)** From 161f2f2a2a9d8fa05996f71521d820258c4e7256 Mon Sep 17 00:00:00 2001 From: lab210-dev Date: Fri, 6 May 2022 23:44:50 +0200 Subject: [PATCH 2765/3440] Add async-job to README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3d0c0917490..66f4f089eee 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ _Special thanks to_ Make the switch from one-size-fits-all CI/CD to PaaS
workflows & turn k8s into a powerful developer experience
that will measurably increase developer productivity by 200% +
-**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community. Want to be a supporter of the project click [here](mailto:mailto:avelinorun+oss@gmail.com?subject=awesome-go%3A%20project%20support)._ +**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community. Want to be a supporter of the project click [here](mailto:avelinorun+oss@gmail.com?subject=awesome-go%3A%20project%20support)._ > A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). From 082ac18c8fa568b951c7ec7e0e6fbea8c0663866 Mon Sep 17 00:00:00 2001 From: Lucas Bremgartner Date: Tue, 2 Aug 2022 16:21:21 +0200 Subject: [PATCH 2817/3440] Remove "Learning Golang - From zero to hero" (#4355) Link is no longer working. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8f0c3444d4f..666008ddc26 100644 --- a/README.md +++ b/README.md @@ -3424,7 +3424,6 @@ _Where to discover new Go libraries._ - [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes. - [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. - [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example. -- [Learning Golang - From zero to hero](https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/) - Getting started with golang for beginner. - [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. - [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. - [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs. From 2b969c0d650de48b166bf47faa37e0b6d4cdf80f Mon Sep 17 00:00:00 2001 From: samiralajmovic Date: Tue, 14 Jun 2022 19:54:36 +0200 Subject: [PATCH 2818/3440] Add sake --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 666008ddc26..3ccdcadc863 100644 --- a/README.md +++ b/README.md @@ -3135,6 +3135,7 @@ _Software written in Go._ - [snap](https://github.com/intelsdi-x/snap) - Powerful telemetry framework. - [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. - [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. +- [sake](https://github.com/alajmo/sake) - sake is a command runner for local and remote hosts - [stew](https://github.com/marwanhawari/stew) - An independent package manager for compiled binaries. - [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. - [tcpdog](https://github.com/mehrdadrad/tcpdog) - eBPF based TCP observability. From f1c179eed57103fe70e412e5c6700f2862724282 Mon Sep 17 00:00:00 2001 From: samiralajmovic Date: Tue, 14 Jun 2022 21:23:31 +0200 Subject: [PATCH 2819/3440] Fix order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3ccdcadc863..7d10f6fca51 100644 --- a/README.md +++ b/README.md @@ -3129,13 +3129,13 @@ _Software written in Go._ - [Plik](https://github.com/root-gg/plik) - Plik is a temporary file upload system (Wetransfer like) in Go. - [protoncheck](https://github.com/servusdei2018/protoncheck) - ProtonMail module for waybar/polybar/yabar/i3blocks. - [restic](https://github.com/restic/restic) - De-duplicating backup program. +- [sake](https://github.com/alajmo/sake) - sake is a command runner for local and remote hosts - [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. - [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. - [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). - [snap](https://github.com/intelsdi-x/snap) - Powerful telemetry framework. - [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. - [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. -- [sake](https://github.com/alajmo/sake) - sake is a command runner for local and remote hosts - [stew](https://github.com/marwanhawari/stew) - An independent package manager for compiled binaries. - [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. - [tcpdog](https://github.com/mehrdadrad/tcpdog) - eBPF based TCP observability. From 06bf20e1567542cb3a14283e6889044580a8d3d0 Mon Sep 17 00:00:00 2001 From: samiralajmovic Date: Tue, 14 Jun 2022 21:24:22 +0200 Subject: [PATCH 2820/3440] Add dot to description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d10f6fca51..835bbf9cd33 100644 --- a/README.md +++ b/README.md @@ -3129,7 +3129,7 @@ _Software written in Go._ - [Plik](https://github.com/root-gg/plik) - Plik is a temporary file upload system (Wetransfer like) in Go. - [protoncheck](https://github.com/servusdei2018/protoncheck) - ProtonMail module for waybar/polybar/yabar/i3blocks. - [restic](https://github.com/restic/restic) - De-duplicating backup program. -- [sake](https://github.com/alajmo/sake) - sake is a command runner for local and remote hosts +- [sake](https://github.com/alajmo/sake) - sake is a command runner for local and remote hosts. - [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. - [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. - [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). From 93e86d4187698c355c102b3d3a0495529360e9d2 Mon Sep 17 00:00:00 2001 From: Fabio Ribeiro Date: Thu, 4 Aug 2022 10:25:17 +0200 Subject: [PATCH 2821/3440] add faabiosr/middleware (#4337) Add the faabiosr/middleware and update the cachego github user. --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 835bbf9cd33..7a310c25867 100644 --- a/README.md +++ b/README.md @@ -645,7 +645,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. - [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. - [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. -- [cachego](https://github.com/fabiorphp/cachego) - Golang Cache component for multiple drivers. +- [cachego](https://github.com/faabiosr/cachego) - Golang Cache component for multiple drivers. - [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. - [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. - [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. @@ -2796,6 +2796,7 @@ _Full stack web frameworks._ - [client-timing](https://github.com/posener/client-timing) - An HTTP client for Server-Timing header. - [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API. +- [echo-middleware](https://github.com/faabiosr/echo-middleware) - Middleware for Echo framework with logging and metrics. - [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST. - [go-fault](https://github.com/github/go-fault) - Fault injection middleware for Go. - [go-server-timing](https://github.com/mitchellh/go-server-timing) - Add/parse Server-Timing header. @@ -2807,6 +2808,7 @@ _Full stack web frameworks._ - [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. - [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. + #### Libraries for creating HTTP middlewares - [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. From 8b8cc7daab474cf3111fe5d7bfb8d39f046a5116 Mon Sep 17 00:00:00 2001 From: Johanan Idicula Date: Thu, 4 Aug 2022 15:24:58 -0400 Subject: [PATCH 2822/3440] feat: Add go-fuzz-action to CI resources (#4341) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7a310c25867..0a64fbc3110 100644 --- a/README.md +++ b/README.md @@ -500,6 +500,7 @@ _Tools for help with continuous integration._ - [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. - [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. - [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. +- [go-fuzz-action](https://github.com/jidicula/go-fuzz-action) - Use Go 1.18's built-in fuzz testing in GitHub Actions. - [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. - [gotestfmt](https://github.com/haveyoudebuggedit/gotestfmt) - go test output for humans. - [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. From f8f25afaddef1b3b49777cb1e508260f10ba6c96 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Thu, 4 Aug 2022 22:31:53 +0300 Subject: [PATCH 2823/3440] feat: add usestdlibvars linter (#4357) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0a64fbc3110..b42dcde8724 100644 --- a/README.md +++ b/README.md @@ -2931,6 +2931,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. - [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. +- [usestdlibvars](https://github.com/sashamelentyev/usestdlibvars) - A linter that detect the possibility to use variables/constants from the Go standard library. - [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. **[⬆ back to top](#contents)** From 72238861dd8527015af4fe2e1d769380239755d0 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 5 Aug 2022 06:08:12 +0530 Subject: [PATCH 2824/3440] add gitbatch (#4360) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b42dcde8724..0a043c1d0c3 100644 --- a/README.md +++ b/README.md @@ -2537,6 +2537,7 @@ _General utilities and tools to make your life easier._ - [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. - [ghokin](https://github.com/antham/ghokin) - Parallelized formatter with no external dependencies for gherkin (cucumber, behat...). - [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git. +- [gitbatch](https://github.com/isacikgoz/gitbatch) - manage your git repositories in one place. - [go-actuator](https://github.com/sinhashubham95/go-actuator) - Production ready features for Go based web frameworks. - [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). From e63e619609b93ea2782bbb8d3fa0fc7ed95b289f Mon Sep 17 00:00:00 2001 From: SwitchUpCB <81384235+switchupcb@users.noreply.github.com> Date: Sat, 6 Aug 2022 23:34:17 -0500 Subject: [PATCH 2825/3440] update Copygen description (#4363) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a043c1d0c3..b270f39988f 100644 --- a/README.md +++ b/README.md @@ -1138,7 +1138,7 @@ _Awesome game development libraries._ _Tools that generate Go code._ -- [copygen](https://github.com/switchupcb/copygen) - Generate type-to-type code without reflection. +- [copygen](https://github.com/switchupcb/copygen) - Generate type-to-type and type-based code without reflection. - [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. - [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. - [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. From 76c335e258dfab4eb77b17a1a66d761fbd40eb15 Mon Sep 17 00:00:00 2001 From: Tim Kern Date: Tue, 16 Aug 2022 03:09:54 -0500 Subject: [PATCH 2826/3440] Added Fleet device management (#4377) Placed under devops tools. pkg.go.dev page- https://pkg.go.dev/github.com/fleetdm/fleet/v4 Go report card- https://goreportcard.com/report/github.com/fleetdm/fleet Code coverage report- https://app.codecov.io/gh/fleetdm/fleet --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b270f39988f..5a62d89075a 100644 --- a/README.md +++ b/README.md @@ -3028,6 +3028,7 @@ _Software written in Go._ - [Dropship](https://github.com/chrismckenzie/dropship) - Tool for deploying code via cdn. - [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. - [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts. +- [Fleet device management](https://github.com/fleetdm/fleet) - Lightweight, programmable telemetry for servers and workstations. - [gaia](https://github.com/gaia-pipeline/gaia) - Build powerful pipelines in any programming language. - [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Gitea, and Bitbucket. - [Gitea](https://github.com/go-gitea/gitea) - Fork of Gogs, entirely community driven. From 6c1f3839df3922c3afae9305e533e9d258a4ecb8 Mon Sep 17 00:00:00 2001 From: Yo-An Lin Date: Fri, 19 Aug 2022 10:57:02 +0800 Subject: [PATCH 2827/3440] Add bbgo (#4315) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a62d89075a..42ea9176dad 100644 --- a/README.md +++ b/README.md @@ -1053,6 +1053,7 @@ _Packages for accounting and finance._ - [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang. - [ach](https://github.com/moov-io/ach) - A reader, writer, and validator for Automated Clearing House (ACH) files. +- [bbgo](https://github.com/c9s/bbgo) - A crypto trading bot framework written in Go. Including common crypto exchange API, standard indicators, back-testing and many built-in strategies. - [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. - [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. - [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. From 0a8c70bcc39ca89c527b8d51bed809d48f9fa737 Mon Sep 17 00:00:00 2001 From: Mohamed Allam Date: Sat, 20 Aug 2022 07:59:25 +0100 Subject: [PATCH 2828/3440] add ksql (#4371) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 42ea9176dad..2297e633db6 100644 --- a/README.md +++ b/README.md @@ -797,6 +797,7 @@ _Libraries for building and using SQL._ - [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver. - [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org). - [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. +- [KSQL](https://github.com/VinGarcia/ksql) - A Simple and Powerful Golang SQL Library - [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. - [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. - [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. From 56c70c19d0a2ca3589f4af34279c4429330fa2b8 Mon Sep 17 00:00:00 2001 From: Electwix Date: Tue, 23 Aug 2022 11:08:15 +0300 Subject: [PATCH 2829/3440] Remove goflake (#4394) Remove [goflake](https://github.com/hart87/GoFlake) due to the repository being inaccessible or deleted. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 2297e633db6..c3add369c1d 100644 --- a/README.md +++ b/README.md @@ -2668,7 +2668,6 @@ _General utilities and tools to make your life easier._ _Libraries for working with UUIDs._ -- [goflake](https://github.com/hart87/GoFlake) - A small, scalable, & serverless unique ID generator for use in distributed systems. Inspired by Twitters Snowflake. - [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. - [gouid](https://github.com/twharmon/gouid) - Generate cryptographically secure random string IDs with just one allocation. - [nanoid](https://github.com/aidarkhanov/nanoid) - A tiny and efficient Go unique string ID generator. From 83597cec3a516cb26b58bb042ad5a8e5330c9985 Mon Sep 17 00:00:00 2001 From: Fl0w Date: Wed, 24 Aug 2022 09:05:06 +0200 Subject: [PATCH 2830/3440] replaced go-pg with bun (#4395) Co-authored-by: Florian Glock --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c3add369c1d..2878a201f97 100644 --- a/README.md +++ b/README.md @@ -1913,10 +1913,10 @@ _Libraries for using OpenGL in Go._ _Libraries that implement Object-Relational Mapping or datamapping techniques._ +- [bun](https://github.com/uptrace/bun) - SQL-first Golang ORM. Successor of go-pg. - [cacheme](https://github.com/Yiling-J/cacheme-go) - Schema based, typed Redis caching/memoize framework for Go. - [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. - [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. -- [go-pg](https://github.com/go-pg/pg) - PostgreSQL ORM with focus on PostgreSQL specific features and performance. - [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. - [go-sql](https://github.com/rushteam/gosql) - A easy ORM for mysql. - [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. From 90b1510b2287dc58193d661284084d8d31454ad5 Mon Sep 17 00:00:00 2001 From: SwitchUpCB <81384235+switchupcb@users.noreply.github.com> Date: Sun, 4 Sep 2022 12:00:11 -0500 Subject: [PATCH 2831/3440] remove rbac (#4366) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 2878a201f97..260c5c6bb18 100644 --- a/README.md +++ b/README.md @@ -265,7 +265,6 @@ _Libraries for implementing authentications schemes._ - [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. - [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). - [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. -- [rbac](https://github.com/zpatrick/rbac) - Minimalistic RBAC package for Go applications. - [scope](https://github.com/SonicRoshan/scope) - Easily Manage OAuth2 Scopes In Go. - [scs](https://github.com/alexedwards/scs) - Session Manager for HTTP servers. - [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. From 578a87f2284cc8cabbb8562eb676647727009678 Mon Sep 17 00:00:00 2001 From: tianzhou Date: Tue, 6 Sep 2022 04:16:32 +0800 Subject: [PATCH 2832/3440] Add Bytebase to Database Schema Migration (#4412) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 260c5c6bb18..50498c651d6 100644 --- a/README.md +++ b/README.md @@ -705,6 +705,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [atlas](https://github.com/ariga/atlas) - A Database Toolkit. A CLI designed to help companies better work with their data. - [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. +- [bytebase](https://github.com/bytebase/bytebase) - Safe database schema change and version control for DevOps teams. - [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. - [go-pg-migrate](https://github.com/lawzava/go-pg-migrate) - CLI-friendly package for go-pg migrations management. From bfe173f8be9bbbd26507d75652aef3d4f2142d11 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 9 Sep 2022 21:46:36 +0530 Subject: [PATCH 2833/3440] add dolt (#4422) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 50498c651d6..b8c79d916e4 100644 --- a/README.md +++ b/README.md @@ -675,6 +675,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [Databunker](https://github.com/paranoidguy/databunker) - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. - [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. +- [dolt](https://github.com/dolthub/dolt) - Dolt – It's Git for Data. - [dtf](https://github.com/dtm-labs/dtf) - A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages. - [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. - [godis](https://github.com/hdt3213/godis) - A Golang implemented high-performance Redis server and cluster. From 01530f0c53018458aac8163b9b38de9eff0929aa Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 13 Sep 2022 06:33:22 +0530 Subject: [PATCH 2834/3440] add remote-touchpad (#4427) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b8c79d916e4..c78562d316b 100644 --- a/README.md +++ b/README.md @@ -2625,6 +2625,7 @@ _General utilities and tools to make your life easier._ - [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. - [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. - [reflectutils](https://github.com/muir/reflectutils) - Helpers for working with reflection: struct tag parsing; recursive walking; fill value from string. +- [remote-touchpad](https://github.com/Unrud/remote-touchpad) - Control mouse and keyboard from a smartphone. - [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. - [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. - [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes. From 71d03f11180af13023a47419cdb4e581d5d92956 Mon Sep 17 00:00:00 2001 From: John Arundel Date: Tue, 13 Sep 2022 02:03:51 +0100 Subject: [PATCH 2835/3440] Add 'The Power of Go: Tests' to paid ebooks list (#4426) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c78562d316b..e6c3c8cfc5e 100644 --- a/README.md +++ b/README.md @@ -3215,6 +3215,7 @@ _Where to discover new Go libraries._ - [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. - [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. - [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - A guide to understanding and using generics in Go. +- [The Power of Go: Tests](https://bitfieldconsulting.com/books/tests) - A guide to testing in Go. - [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) - A guide to writing command-line tools in Go. - [Writing A Compiler In Go](https://compilerbook.com) - [Writing An Interpreter In Go](https://interpreterbook.com) - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. From 813b7a289cf740ce789da321e13d4a4dcaeaf32a Mon Sep 17 00:00:00 2001 From: Aleksey Myasnikov Date: Thu, 15 Sep 2022 04:14:45 +0300 Subject: [PATCH 2836/3440] Add YDB to RDBMS drivers and Messaging systems (#4423) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e6c3c8cfc5e..44181b4eb81 100644 --- a/README.md +++ b/README.md @@ -804,6 +804,7 @@ _Libraries for building and using SQL._ - [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. - [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. - [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver. +- [ydb-go-sdk](https://github.com/ydb-platform/ydb-go-sdk) - native and database/sql driver YDB (Yandex Database) ### NoSQL Database Drivers @@ -1583,6 +1584,7 @@ _Libraries that implement messaging systems._ - [rmqconn](https://github.com/sbabiv/rmqconn) - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed. - [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. +- [ydb-go-sdk](https://github.com/ydb-platform/ydb-go-sdk) - client for YDB (Yandex Database) Topic service - [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). **[⬆ back to top](#contents)** From d54be734f9b9fc5f8478f44ac87c045140d0f7c9 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Thu, 15 Sep 2022 04:25:43 +0300 Subject: [PATCH 2837/3440] Remove ydb from messaging (#4433) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 44181b4eb81..3d04376250a 100644 --- a/README.md +++ b/README.md @@ -1584,7 +1584,6 @@ _Libraries that implement messaging systems._ - [rmqconn](https://github.com/sbabiv/rmqconn) - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed. - [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. -- [ydb-go-sdk](https://github.com/ydb-platform/ydb-go-sdk) - client for YDB (Yandex Database) Topic service - [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). **[⬆ back to top](#contents)** From faa0f1ae39be60a1d59f2e7b94f4467da0231772 Mon Sep 17 00:00:00 2001 From: Eugene Chernyshov Date: Sat, 17 Sep 2022 05:44:57 +0300 Subject: [PATCH 2838/3440] added asty (#4405) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3d04376250a..7de5d0b72cf 100644 --- a/README.md +++ b/README.md @@ -2909,6 +2909,7 @@ _Libraries and tools to implement Zero Trust architectures._ _Source code analysis tools, also known as Static Application Security Testing (SAST) Tools._ - [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. +- [asty](https://github.com/asty-org/asty) - Converts golang AST to JSON and JSON to AST. - [ChainJacking](https://github.com/Checkmarx/chainjacking) - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack. - [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. - [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. From 6735c6bf88d949dd7afb1838b8d5f294e8d0831c Mon Sep 17 00:00:00 2001 From: Sergio Kovtunenko Date: Sat, 17 Sep 2022 05:50:52 +0300 Subject: [PATCH 2839/3440] Add `graterm` library (#4354) Co-authored-by: skovtunenko --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7de5d0b72cf..53bf265bcd3 100644 --- a/README.md +++ b/README.md @@ -2578,6 +2578,7 @@ _General utilities and tools to make your life easier._ - [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. - [goval](https://github.com/maja42/goval) - Evaluate arbitrary expressions in Go. - [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. +- [graterm](https://github.com/skovtunenko/graterm) - Provides primitives to perform ordered (sequential/concurrent) GRAceful TERMination (aka shutdown) in Go application. - [grofer](https://github.com/pesos/grofer) - A system and resource monitoring tool written in Golang! - [gubrak](https://github.com/novalagung/gubrak) - Golang utility library with syntactic sugar. It's like lodash, but for golang. - [handy](https://github.com/miguelpragier/handy) - Many utilities and helpers like string handlers/formatters and validators. From 28af94aabd2e7dfdcdb474f420d18d58734a6af3 Mon Sep 17 00:00:00 2001 From: Thang Bui Date: Sat, 17 Sep 2022 09:54:38 +0700 Subject: [PATCH 2840/3440] Add go-workerpool (#4389) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 53bf265bcd3..80a67912e45 100644 --- a/README.md +++ b/README.md @@ -1212,6 +1212,7 @@ _Tools for managing and working with Goroutines._ - [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. - [go-trylock](https://github.com/subchen/go-trylock) - TryLock support on read-write lock for Golang. - [go-waitgroup](https://github.com/pieterclaerhout/go-waitgroup) - Like `sync.WaitGroup` with error handling and concurrency control. +- [go-workerpool](https://github.com/zenthangplus/go-workerpool) - Inspired from Java Thread Pool, Go WorkerPool aims to control heavy Go Routines. - [go-workers](https://github.com/catmullet/go-workers) - Easily and safely run workers for large data processing pipelines. - [goccm](https://github.com/zenthangplus/goccm) - Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently. - [gohive](https://github.com/loveleshsharma/gohive) - A highly performant and easy to use Goroutine pool for Go. From c5602d26bf54b3429b7949be5a189069e464937b Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 17 Sep 2022 10:54:52 +0800 Subject: [PATCH 2841/3440] Add ThreadLocal library (#4386) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 80a67912e45..a3ab3134402 100644 --- a/README.md +++ b/README.md @@ -1232,6 +1232,7 @@ _Tools for managing and working with Goroutines._ - [pond](https://github.com/alitto/pond) - Minimalistic and High-performance goroutine worker pool written in Go. - [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. - [queue](https://github.com/AnikHasibul/queue) - Gives you a `sync.WaitGroup` like queue group accessibility. Helps you to throttle and limit goroutines, wait for the end of the all goroutines and much more. +- [routine](https://github.com/timandy/routine) - `routine` is a `ThreadLocal` for go library. It encapsulates and provides some easy-to-use, non-competitive, high-performance `goroutine` context access interfaces, which can help you access coroutine context information more gracefully. - [routine](https://github.com/x-mod/routine) - go routine control with context, support: Main, Go, Pool and some useful Executors. - [semaphore](https://github.com/kamilsk/semaphore) - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. - [semaphore](https://github.com/marusama/semaphore) - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations). From 91c9a9dc5b38b98d852e399a8540686a593b6245 Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Fri, 16 Sep 2022 20:01:20 -0700 Subject: [PATCH 2842/3440] Add github.com/bobg/go-generics. (#4402) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3ab3134402..b20d15d743a 100644 --- a/README.md +++ b/README.md @@ -572,6 +572,7 @@ additional ordered map implementations. - [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). - [fsm](https://github.com/cocoonspace/fsm) - Finite-State Machine package. - [genfuncs](https://github.com/nwillc/genfuncs) - Go 1.18+ generics package inspired by Kotlin's Sequence and Map. +- [go-generics](https://github.com/bobg/go-generics) - Generic slice, map, set, iterator, and goroutine utilities. - [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. - [go-rampart](https://github.com/francesconi/go-rampart) - Determine how intervals relate to each other. - [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. From 9be0a2ad07d66177a86db291f699d1977f447832 Mon Sep 17 00:00:00 2001 From: Caruso Date: Sat, 17 Sep 2022 00:04:20 -0300 Subject: [PATCH 2843/3440] adds mooncacke (#4409) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b20d15d743a..121ee014334 100644 --- a/README.md +++ b/README.md @@ -2278,6 +2278,7 @@ _Libraries for testing codebases and generating test data._ - [mockery](https://github.com/vektra/mockery) - Tool to generate Go interfaces. - [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. - [mockit](https://github.com/pasdam/mockit) - Allows functions and method easy mocking, without defining new types; it's similar to Mockito for Java. + - [mooncake](https://github.com/GuilhermeCaruso/mooncake) - A simple way to generate mocks for multiple purposes - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. - Fuzzing and delta-debugging/reducing/shrinking. From 33a06bab2df19980f5437e6e355888c71a226d8b Mon Sep 17 00:00:00 2001 From: Alexei Shevchenko Date: Sat, 17 Sep 2022 06:06:38 +0300 Subject: [PATCH 2844/3440] add quadtree (#4421) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 121ee014334..9d3f536ecba 100644 --- a/README.md +++ b/README.md @@ -583,6 +583,7 @@ additional ordered map implementations. - [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. - [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. - [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. +- [quadtree](https://github.com/s0rg/quadtree) - Generic, zero-alloc, 100%-test covered quadtree. - [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. - [slices](https://github.com/twharmon/slices) - Pure, generic functions for slices. @@ -3450,4 +3451,3 @@ _Where to discover new Go libraries._ - [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. **[⬆ back to top](#contents)** - From 2ffa1dfb89db3318f61d1a17ec9c65b5a1f1debf Mon Sep 17 00:00:00 2001 From: Kyriacos <58787538+kkyr@users.noreply.github.com> Date: Sat, 17 Sep 2022 05:09:07 +0200 Subject: [PATCH 2845/3440] Add github.com/kkyr/go-recipe (#4415) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9d3f536ecba..e3d15a73f37 100644 --- a/README.md +++ b/README.md @@ -2374,6 +2374,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [colly](https://github.com/asciimoo/colly) - Fast and Elegant Scraping Framework for Gophers. - [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. +- [go-recipe](https://github.com/kkyr/go-recipe) - A package for scraping recipes from websites. - [GoQuery](https://github.com/PuerkitoBio/goquery) - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. - [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) - [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. From 54627d989ef86860ba4cc0712acf07547c1b6e56 Mon Sep 17 00:00:00 2001 From: Enrico Date: Sat, 17 Sep 2022 05:09:56 +0200 Subject: [PATCH 2846/3440] Add github.com/pioz/countries package (#4413) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e3d15a73f37..32c2a7d34be 100644 --- a/README.md +++ b/README.md @@ -2526,6 +2526,7 @@ _General utilities and tools to make your life easier._ - [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. - [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. - [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standards. +- [countries](https://github.com/pioz/countries) - All you need when you are working with countries in Go. - [create-go-app](https://github.com/create-go-app/cli) - A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command. - [cryptgo](https://github.com/Gituser143/cryptgo) - Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time! - [ctop](https://github.com/bcicen/ctop) - [Top-like](https://ctop.sh) interface (e.g. htop) for container metrics. From 75a9684eb74748d3be3e5408b329f2266df3a4bc Mon Sep 17 00:00:00 2001 From: Malte Wrogemann Date: Sat, 17 Sep 2022 05:12:40 +0200 Subject: [PATCH 2847/3440] add wroge/scan (#4435) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 32c2a7d34be..cc7d1f9fea8 100644 --- a/README.md +++ b/README.md @@ -2647,6 +2647,7 @@ _General utilities and tools to make your life easier._ - [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. - [rospo](https://github.com/ferama/rospo) - Simple and reliable ssh tunnels with embedded ssh server in Golang. - [scan](https://github.com/blockloop/scan) - Scan golang `sql.Rows` directly to structs, slices, or primitive types. +- [scan](https://github.com/wroge/scan) - Scan sql rows into any type powered by generics. - [scany](https://github.com/georgysavva/scany) - Library for scanning data from a database into Go structs and more. - [serve](https://github.com/syntaqx/serve) - A static http server anywhere you need. - [set](https://github.com/nofeaturesonlybugs/set) - Performant and flexible struct mapping and loose type conversion. From f4a812a6a23950cb0213337bd74fe835da0e54f8 Mon Sep 17 00:00:00 2001 From: Yichao 'Peak' Ji Date: Sat, 17 Sep 2022 11:12:51 +0800 Subject: [PATCH 2848/3440] Add Ratus (#4430) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cc7d1f9fea8..98851dd961d 100644 --- a/README.md +++ b/README.md @@ -1584,6 +1584,7 @@ _Libraries that implement messaging systems._ - [rabbus](https://github.com/rafaeljesus/rabbus) - A tiny wrapper over amqp exchanges and queues. - [rabtap](https://github.com/jandelgado/rabtap) - RabbitMQ swiss army knife cli app. - [RapidMQ](https://github.com/sybrexsys/RapidMQ) - RapidMQ is a lightweight and reliable library for managing of the local messages queue. +- [Ratus](https://github.com/hyperonym/ratus) - Ratus is a RESTful asynchronous task queue server. - [redisqueue](https://github.com/robinjoseph08/redisqueue) - redisqueue provides a producer and consumer of a queue that uses Redis streams. - [rmqconn](https://github.com/sbabiv/rmqconn) - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed. - [sarama](https://github.com/Shopify/sarama) - Go library for Apache Kafka. From ea66cbfdb421f33c5c35943eb90a9aed217c3d45 Mon Sep 17 00:00:00 2001 From: Ernest Nguyen <58267404+erni27@users.noreply.github.com> Date: Sat, 17 Sep 2022 05:13:58 +0200 Subject: [PATCH 2849/3440] Add mob (#4434) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 98851dd961d..9fefa8c2349 100644 --- a/README.md +++ b/README.md @@ -1576,6 +1576,7 @@ _Libraries that implement messaging systems._ - [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. - [Mercure](https://github.com/dunglas/mercure) - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events). - [messagebus](https://github.com/vardius/message-bus) - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. +- [mob](https://github.com/erni27/mob) - mob is a generic-based, simple mediator / event aggregator library. It supports in-process requests / events processing. - [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. From 8e2ee76bff937d43e290b6e73b80bc5bf9e0ce5c Mon Sep 17 00:00:00 2001 From: "Md. Ishtiaq Ahamed Fahim" Date: Sat, 17 Sep 2022 04:17:15 +0100 Subject: [PATCH 2850/3440] gameswithgo.org doesn't exist anymore (#4432) Replaced it with the YouTube series link https://www.youtube.com/watch?v=9D4yH7e_ea8&list=PLDZujg-VgQlZUy1iCqBbe5faZLMkA3g2x --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9fefa8c2349..c6b28799a89 100644 --- a/README.md +++ b/README.md @@ -3425,7 +3425,7 @@ _Where to discover new Go libraries._ - [Debugged.it Go patterns](https://github.com/haveyoudebuggedit/go-patterns) - Advanced Go patterns with ready-to-run examples. - [Design Patterns in Go](https://github.com/shubhamzanwar/design-patterns) - Collection of programming design patterns implemented in Go. - [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. -- [Games With Go](https://gameswithgo.org/) - A video series teaching programming and game development. +- [Games With Go](https://www.youtube.com/watch?v=9D4yH7e_ea8&list=PLDZujg-VgQlZUy1iCqBbe5faZLMkA3g2x) - A video series teaching programming and game development. - [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. - [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. - [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. From 182d10edf4c12e06fad120e404454a5c3d301c88 Mon Sep 17 00:00:00 2001 From: Shawn Wang Date: Sat, 17 Sep 2022 21:16:53 +0800 Subject: [PATCH 2851/3440] add jxsksis/mcli (#4429) Change-Id: I11acc3ada7b02d6766b9b1d8b18a32a80cdd9e4b Co-authored-by: wangshuai.backend --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c6b28799a89..7d15d2740e9 100644 --- a/README.md +++ b/README.md @@ -415,6 +415,7 @@ _Libraries for building standard or basic Command Line applications._ - [job](https://github.com/liujianping/job) - JOB, make your short-term command as a long-term job. - [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands (superseded by `kong`; see below). - [liner](https://github.com/peterh/liner) - Go readline-like library for command-line interfaces. +- [mcli](https://github.com/jxskiss/mcli) - A minimal but very powerful cli library for Go. - [mitchellh/cli](https://github.com/mitchellh/cli) - Go library for implementing command-line interfaces. - [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. - [ops](https://github.com/nanovms/ops) - Unikernel Builder/Orchestrator. From ab594ab5a202ec41ac36d7cf96b5ec04374a564f Mon Sep 17 00:00:00 2001 From: Edd Turtle Date: Sun, 18 Sep 2022 17:53:55 +0100 Subject: [PATCH 2852/3440] Change golangcode to gophercoding new site (#4442) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d15d2740e9..300c4c54a35 100644 --- a/README.md +++ b/README.md @@ -3439,7 +3439,7 @@ _Where to discover new Go libraries._ - [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. - [Golang Tutorial Guide](https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/) - A List of Free Courses to Learn the Go Programming Language. - [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. -- [GolangCode](https://golangcode.com/) - Collection of code snippets and tutorials to help tackle every day issues. +- [GopherCoding](https://gophercoding.com/) - Collection of code snippets and tutorials to help tackle every day issues. - [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. - [Gosamples](https://gosamples.dev/) - Collection of code snippets that let you solve everyday code problems. - [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. From e7835326c663b5a76eda206550ac1183b0601f3a Mon Sep 17 00:00:00 2001 From: Benjamin Schoch Date: Tue, 30 Aug 2022 23:52:53 +0200 Subject: [PATCH 2853/3440] optimize markdown parsing --- go.mod | 3 +-- go.sum | 6 ++--- make_site.go | 4 ++-- pkg/markdown/convert.go | 49 +++++++++++++++++++++++++++++++++++++++++ pkg/slug/generator.go | 13 +++++++++++ scripts.go | 26 +++++++++------------- 6 files changed, 78 insertions(+), 23 deletions(-) create mode 100644 pkg/markdown/convert.go create mode 100644 pkg/slug/generator.go diff --git a/go.mod b/go.mod index 77639f301e0..6dbeadfcb27 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,7 @@ go 1.17 require ( github.com/PuerkitoBio/goquery v1.8.0 github.com/avelino/slugify v0.0.0-20180501145920-855f152bd774 - github.com/gomarkdown/markdown v0.0.0-20211212230626-5af6ad2f47df - github.com/russross/blackfriday v1.6.0 + github.com/yuin/goldmark v1.4.13 golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 ) diff --git a/go.sum b/go.sum index b9deab970f6..df7d0ed4737 100644 --- a/go.sum +++ b/go.sum @@ -78,8 +78,6 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/gomarkdown/markdown v0.0.0-20211212230626-5af6ad2f47df h1:M7mdNDTRraBcrHZg2aOYiFP9yTDajb6fquRZRpXnbVA= -github.com/gomarkdown/markdown v0.0.0-20211212230626-5af6ad2f47df/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -114,13 +112,13 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= -github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= diff --git a/make_site.go b/make_site.go index bb2b098dec6..e1a35448172 100644 --- a/make_site.go +++ b/make_site.go @@ -10,7 +10,7 @@ import ( "text/template" "github.com/PuerkitoBio/goquery" - "github.com/avelino/slugify" + "github.com/avelino/awesome-go/pkg/slug" ) type Link struct { @@ -89,7 +89,7 @@ func makeObjById(selector string, s *goquery.Selection) (obj Object) { links = append(links, link) }) obj = Object{ - Slug: slugify.Slugify(s.Text()), + Slug: slug.Generate(s.Text()), Title: s.Text(), Description: desc.Text(), Items: links, diff --git a/pkg/markdown/convert.go b/pkg/markdown/convert.go new file mode 100644 index 00000000000..7459a54a17f --- /dev/null +++ b/pkg/markdown/convert.go @@ -0,0 +1,49 @@ +package markdown + +import ( + "bytes" + + "github.com/avelino/awesome-go/pkg/slug" + "github.com/yuin/goldmark" + "github.com/yuin/goldmark/ast" + "github.com/yuin/goldmark/extension" + "github.com/yuin/goldmark/parser" + "github.com/yuin/goldmark/renderer/html" + "github.com/yuin/goldmark/util" +) + +func ConvertMarkdownToHTML(markdown []byte) ([]byte, error) { + md := goldmark.New( + goldmark.WithExtensions(extension.GFM), + goldmark.WithParserOptions( + parser.WithAutoHeadingID(), // generate heading IDs for content navigation + ), + goldmark.WithRendererOptions( + html.WithXHTML(), + html.WithUnsafe(), // allow inline HTML + ), + ) + + ctx := parser.NewContext( + parser.WithIDs(&IDGenerator{}), // register custom ID generator + ) + + var buf bytes.Buffer + if err := md.Convert(markdown, &buf, parser.WithContext(ctx)); err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +type IDGenerator struct { + used map[string]bool +} + +func (g *IDGenerator) Generate(value []byte, _ ast.NodeKind) []byte { + return []byte(slug.Generate(string(value))) +} + +func (g *IDGenerator) Put(value []byte) { + g.used[util.BytesToReadOnlyString(value)] = true +} diff --git a/pkg/slug/generator.go b/pkg/slug/generator.go new file mode 100644 index 00000000000..bad979c15eb --- /dev/null +++ b/pkg/slug/generator.go @@ -0,0 +1,13 @@ +package slug + +import ( + "strings" + + "github.com/avelino/slugify" +) + +func Generate(text string) string { + // remove slashes to create slugs similar to GitHub's slugs on markdown parsing + s := strings.ReplaceAll(text, "/", "") + return slugify.Slugify(strings.TrimSpace(s)) +} diff --git a/scripts.go b/scripts.go index 3f93cbade22..b89c5a0f057 100644 --- a/scripts.go +++ b/scripts.go @@ -2,25 +2,24 @@ package main import ( "bytes" - "fmt" + "html/template" "io/ioutil" "os" - "text/template" "github.com/PuerkitoBio/goquery" - "github.com/gomarkdown/markdown" - "github.com/gomarkdown/markdown/parser" - "github.com/russross/blackfriday" + "github.com/avelino/awesome-go/pkg/markdown" ) func readme() []byte { - input, err := ioutil.ReadFile("./README.md") + input, err := os.ReadFile("./README.md") if err != nil { panic(err) } - html := fmt.Sprintf("%s", blackfriday.MarkdownCommon(input)) - htmlByteArray := []byte(html) - return htmlByteArray + html, err := markdown.ConvertMarkdownToHTML(input) + if err != nil { + panic(err) + } + return html } func startQuery() *goquery.Document { @@ -33,7 +32,7 @@ func startQuery() *goquery.Document { } type content struct { - Body string + Body template.HTML } // GenerateHTML generate site html (index.html) from markdown file @@ -43,11 +42,8 @@ func GenerateHTML() (err error) { tplPath := "tmpl/tmpl.html" idxPath := "tmpl/index.html" input, _ := ioutil.ReadFile(readmePath) - extensions := parser.CommonExtensions | parser.AutoHeadingIDs | parser.LaxHTMLBlocks - parser := parser.NewWithExtensions(extensions) - - body := string(markdown.ToHTML(input, parser, nil)) - c := &content{Body: body} + body, _ := markdown.ConvertMarkdownToHTML(input) + c := &content{Body: template.HTML(body)} t := template.Must(template.ParseFiles(tplPath)) f, err := os.Create(idxPath) t.Execute(f, c) From f7d903f00536b1044f43394120ffc3899ecd472b Mon Sep 17 00:00:00 2001 From: Benjamin Schoch Date: Wed, 31 Aug 2022 09:33:41 +0200 Subject: [PATCH 2854/3440] code style --- pkg/markdown/convert.go | 4 ++++ pkg/slug/generator.go | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/markdown/convert.go b/pkg/markdown/convert.go index 7459a54a17f..0a14f00da9c 100644 --- a/pkg/markdown/convert.go +++ b/pkg/markdown/convert.go @@ -12,6 +12,7 @@ import ( "github.com/yuin/goldmark/util" ) +// ConvertMarkdownToHTML converts markdown byte slice to a HTML byte slice func ConvertMarkdownToHTML(markdown []byte) ([]byte, error) { md := goldmark.New( goldmark.WithExtensions(extension.GFM), @@ -36,14 +37,17 @@ func ConvertMarkdownToHTML(markdown []byte) ([]byte, error) { return buf.Bytes(), nil } +// IDGenerator for goldmark to provide IDs more similar to GitHub's IDs on markdown parsing type IDGenerator struct { used map[string]bool } +// Generate an ID func (g *IDGenerator) Generate(value []byte, _ ast.NodeKind) []byte { return []byte(slug.Generate(string(value))) } +// Put an ID to the list of already used IDs func (g *IDGenerator) Put(value []byte) { g.used[util.BytesToReadOnlyString(value)] = true } diff --git a/pkg/slug/generator.go b/pkg/slug/generator.go index bad979c15eb..8bafcf2f7e5 100644 --- a/pkg/slug/generator.go +++ b/pkg/slug/generator.go @@ -6,8 +6,8 @@ import ( "github.com/avelino/slugify" ) +// Generate slugs similar to GitHub's slugs on markdown parsing func Generate(text string) string { - // remove slashes to create slugs similar to GitHub's slugs on markdown parsing s := strings.ReplaceAll(text, "/", "") return slugify.Slugify(strings.TrimSpace(s)) } From 3c28d28031e1ad201a7703dcc6957c77db449c57 Mon Sep 17 00:00:00 2001 From: Benjamin Schoch Date: Wed, 31 Aug 2022 17:02:21 +0200 Subject: [PATCH 2855/3440] add tests for new packages --- pkg/markdown/convert_test.go | 57 ++++++++++++++++++++++++++++++++++++ pkg/slug/generator_test.go | 39 ++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 pkg/markdown/convert_test.go create mode 100644 pkg/slug/generator_test.go diff --git a/pkg/markdown/convert_test.go b/pkg/markdown/convert_test.go new file mode 100644 index 00000000000..0efdf84e588 --- /dev/null +++ b/pkg/markdown/convert_test.go @@ -0,0 +1,57 @@ +package markdown + +import ( + "strings" + "testing" +) + +func TestConvertMarkdownToHTML(t *testing.T) { + input := []byte( + `## some headline +followed by some paragraph with [a link](https://example.local) +and some list: +- first +- second + - nested on second level + - nested on third level + - ~~strikethrough~~ + - yet another second level item, **but** with a [a link](https://example.local) +- end + +### h3 headline/header + +embedded HTML is allowed + `, + ) + expected := []byte( + `

some headline

+

followed by some paragraph with a link +and some list:

+
    +
  • first
  • +
  • second +
      +
    • nested on second level +
        +
      • nested on third level
      • +
      • strikethrough
      • +
      +
    • +
    • yet another second level item, but with a a link
    • +
    +
  • +
  • end
  • +
+

h3 headline/header

+

embedded HTML is allowed

`, + ) + + got, err := ConvertMarkdownToHTML(input) + if err != nil { + t.Errorf("ConvertMarkdownToHTML() error = %v", err) + return + } + if strings.TrimSpace(string(got)) != strings.TrimSpace(string(expected)) { + t.Errorf("ConvertMarkdownToHTML() got = %v, want %v", string(got), string(expected)) + } +} diff --git a/pkg/slug/generator_test.go b/pkg/slug/generator_test.go new file mode 100644 index 00000000000..680ee332828 --- /dev/null +++ b/pkg/slug/generator_test.go @@ -0,0 +1,39 @@ +package slug + +import "testing" + +func TestGenerate(t *testing.T) { + tests := []struct { + name string + input string + expected string + }{ + { + name: "with spaces", + input: "some string with spaces", + expected: "some-string-with-spaces", + }, + { + name: "with out any non-literal chars", + input: "inputstring", + expected: "inputstring", + }, + { + name: "with whitespace prefix and suffix", + input: " inputstring ", + expected: "inputstring", + }, + { + name: "a mix of special characters", + input: " an input string (with.special/chars,such_as:§\\?$/§&!) ", + expected: "an-input-string-with-specialchars-such-as", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := Generate(tt.input); got != tt.expected { + t.Errorf("Generate() = %v, want %v", got, tt.expected) + } + }) + } +} From 68d7e8fe8454899da4fd0a4984ba885deeab1c79 Mon Sep 17 00:00:00 2001 From: Serhii Mariiekha Date: Thu, 22 Sep 2022 15:39:32 +0200 Subject: [PATCH 2856/3440] Add github.com/heartwilltell/log to Logging section (#4420) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 300c4c54a35..52a2ba28f55 100644 --- a/README.md +++ b/README.md @@ -1453,6 +1453,7 @@ _Libraries for generating and working with log files._ - [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](https://github.com/teris-io/log) - Structured log interface for Go cleanly separates logging facade from its implementation. +- [log](https://github.com/heartwilltell/log) - Simple leveled logging wrapper around standard log package. - [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. From 183b5680a20ce51fd4348a61cd363a3b2869ef44 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 23 Sep 2022 10:37:03 -0300 Subject: [PATCH 2857/3440] Update README.md --- README.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/README.md b/README.md index 52a2ba28f55..d033b02554b 100644 --- a/README.md +++ b/README.md @@ -53,20 +53,11 @@ _Special thanks to_ - + Digital Ocean - - -cto.ai
-workflow smarter, not harder
-Make the switch from one-size-fits-all CI/CD to PaaS
-workflows & turn k8s into a powerful developer experience
-that will measurably increase developer productivity by 200% -
- From c83464b5790d080df484bce2cf8a1378268a601c Mon Sep 17 00:00:00 2001 From: Alexei Shevchenko Date: Mon, 3 Oct 2022 00:46:51 +0300 Subject: [PATCH 2858/3440] add fantasyname (#4444) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d033b02554b..b3ce8d095b6 100644 --- a/README.md +++ b/README.md @@ -1114,6 +1114,7 @@ _Awesome game development libraries._ - [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go. - [Ebitengine](https://github.com/hajimehoshi/ebiten) - dead 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. +- [fantasyname](https://github.com/s0rg/fantasyname) - Fantasy names generator. - [g3n](https://github.com/g3n/engine) - Go 3D Game Engine. - [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A\* path finding algorithm. - [go-sdl2](https://github.com/veandco/go-sdl2) - Go bindings for the [Simple DirectMedia Layer](https://www.libsdl.org/). From 5e4a7c3c1ba5c4d50b5378c637c885cfd8de9ef4 Mon Sep 17 00:00:00 2001 From: Constantine Zavezeon <31433211+Kwynto@users.noreply.github.com> Date: Mon, 3 Oct 2022 00:50:23 +0300 Subject: [PATCH 2859/3440] Add github.com/Kwynto/gosession (#4358) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3ce8d095b6..f69a7beecbe 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ _Libraries for implementing authentications schemes._ - [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. - [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. - [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. +- [gosession](http://github.com/Kwynto/gosession) - This is quick session for net/http in GoLang. This package is perhaps the best implementation of the session mechanism, at least it tries to become one. - [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. - [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure and idiomatic web session management with pluggable backends. - [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. From 6fb94d9661c26f6d39d0bbcf9a1adf663e738f2d Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Sun, 2 Oct 2022 23:53:36 +0200 Subject: [PATCH 2860/3440] Add Gont (#4431) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f69a7beecbe..12d856ef9f4 100644 --- a/README.md +++ b/README.md @@ -2238,6 +2238,7 @@ _Libraries for testing codebases and generating test data._ - [gogiven](https://github.com/corbym/gogiven) - YATSPEC-like BDD testing framework for Go. - [gomatch](https://github.com/jfilipczyk/gomatch) - library created for testing JSON against patterns. - [gomega](https://onsi.github.io/gomega/) - Rspec like matcher/assertion library. + - [Gont](https://github.com/stv0g/gont) - Go network testing toolkit for testing building complex network topologies using Linux namespaces. - [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. From 7774265c5f638e92ed62b5dc042b8ceb7063f0f5 Mon Sep 17 00:00:00 2001 From: CHIKAMATSU Naohiro Date: Mon, 3 Oct 2022 06:59:52 +0900 Subject: [PATCH 2861/3440] add package gup (#4438) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 12d856ef9f4..9620c5eb08f 100644 --- a/README.md +++ b/README.md @@ -1963,6 +1963,7 @@ _Unofficial libraries for package and dependency management._ - [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. +- [gup](https://github.com/nao1215/gup) - Update binaries installed by "go install". - [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git. - [modgv](https://github.com/lucasepe/modgv) - Converts 'go mod graph' output into Graphviz's DOT language. - [mvn-golang](https://github.com/raydac/mvn-golang) - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure. From db9c38d6fd363cd0aa10ffa85701f991ecf48d7d Mon Sep 17 00:00:00 2001 From: huykingsofm <44906193+huykingsofm@users.noreply.github.com> Date: Mon, 3 Oct 2022 05:00:10 +0700 Subject: [PATCH 2862/3440] Add xylog package (#4439) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9620c5eb08f..f453629eca4 100644 --- a/README.md +++ b/README.md @@ -1477,6 +1477,7 @@ _Libraries for generating and working with log files._ - [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. - [xlog](https://github.com/rs/xlog) - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. +- [xylog](https://github.com/xybor-x/xylog) - Leveled and structured logging, dynamic fields, high performance, zone management, simple configuration, and readable syntax. - [yell](https://github.com/jfcg/yell) - Yet another minimalistic logging library. - [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. - [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. From 75a9bf63a0536791f9964ed0ff78a450c9f46049 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Sun, 2 Oct 2022 22:01:56 +0000 Subject: [PATCH 2863/3440] replace the word 'library' with 'engine' for Ebitengine (#4455) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f453629eca4..02c295394b2 100644 --- a/README.md +++ b/README.md @@ -1113,7 +1113,7 @@ _Packages to support functional programming in Go._ _Awesome game development libraries._ - [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go. -- [Ebitengine](https://github.com/hajimehoshi/ebiten) - dead simple 2D game library in Go. +- [Ebitengine](https://github.com/hajimehoshi/ebiten) - dead simple 2D game engine 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. - [fantasyname](https://github.com/s0rg/fantasyname) - Fantasy names generator. - [g3n](https://github.com/g3n/engine) - Go 3D Game Engine. From 78a0ef8c673108b21dbaf9a524321ccebc93f44a Mon Sep 17 00:00:00 2001 From: Julian Ste <31321934+julian-st@users.noreply.github.com> Date: Mon, 3 Oct 2022 00:05:30 +0200 Subject: [PATCH 2864/3440] Updated link for restcountries (#4474) restcountries.eu is now countrylayer.com --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02c295394b2..a67be1e25c9 100644 --- a/README.md +++ b/README.md @@ -2439,7 +2439,7 @@ _Libraries for accessing third party APIs._ - [go-myanimelist](https://github.com/nstratos/go-myanimelist) - Go client library for accessing the [MyAnimeList API](https://myanimelist.net/apiconfig/references/api/v2). - [go-openproject](https://github.com/manuelbcd/go-openproject) - Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API. - [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). -- [go-restcountries](https://github.com/chriscross0/go-restcountries) - Go library for the [REST Countries API](https://restcountries.eu/). +- [go-restcountries](https://github.com/chriscross0/go-restcountries) - Go library for the [REST Countries API](https://countrylayer.com/). - [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. - [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. - [go-swagger-ui](https://github.com/esurdam/go-swagger-ui) - Go library containing precompiled [Swagger UI](https://swagger.io/tools/swagger-ui/) for serving swagger json. From 40736d0ad1fa0d3fe4eb6d6264ddf19ad5aa078f Mon Sep 17 00:00:00 2001 From: John Olheiser Date: Mon, 3 Oct 2022 02:54:07 -0500 Subject: [PATCH 2865/3440] Add woodpecker CI (#4473) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a67be1e25c9..baec4066327 100644 --- a/README.md +++ b/README.md @@ -498,6 +498,7 @@ _Tools for help with continuous integration._ - [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. +- [woodpecker](https://github.com/woodpecker-ci/woodpecker) - Woodpecker is a community fork of the Drone CI system. **[⬆ back to top](#contents)** From 8cf31975c3687d7c7e58fb9fbd100c077230e40c Mon Sep 17 00:00:00 2001 From: "A. Kai Armstrong" Date: Thu, 6 Oct 2022 13:24:20 -0500 Subject: [PATCH 2866/3440] glab moved to GitLab as the CLI (#4500) This updates the glab entry to point to the new canonical repo on GitLab. Announcement was made in https://github.com/profclems/glab/issues/983 Co-authored-by: Kai Armstrong --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index baec4066327..9dd0b6d4cbd 100644 --- a/README.md +++ b/README.md @@ -2718,11 +2718,11 @@ _Libraries for validation._ _Libraries for version control._ +- [cli](https://gitlab.com/gitlab-org/cli) - An open-source GitLab command line tool bringing GitLab's cool features to your command line. - [froggit-go](https://github.com/jfrog/froggit-go) - Froggit-Go is a Go library, allowing to perform actions on VCS providers. - [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks. - [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. - [githooks](https://github.com/gabyx/githooks) - Per-repo and shared Git hooks with version control and auto update. -- [glab](https://github.com/profclems/glab) - An open-source GitLab command line tool bringing GitLab's cool features to your command line. - [go-git](https://github.com/go-git/go-git) - highly extensible Git implementation in pure Go. - [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. - [hercules](https://github.com/src-d/hercules) - gaining advanced insights from Git repository history. From 232edeb4aef93077154f16661dd3fa75631d6f7f Mon Sep 17 00:00:00 2001 From: sanjibgirics <31872288+sanjibgirics@users.noreply.github.com> Date: Sun, 9 Oct 2022 13:22:42 +0530 Subject: [PATCH 2867/3440] fix godog repo link and description (#4518) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9dd0b6d4cbd..aaca679a351 100644 --- a/README.md +++ b/README.md @@ -2236,7 +2236,7 @@ _Libraries for testing codebases and generating test data._ - [gocheck](https://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. - [gocrest](https://github.com/corbym/gocrest) - Composable hamcrest-like matchers for Go assertions. - - [godog](https://github.com/DATA-DOG/godog) - Cucumber or Behat like BDD framework for Go. + - [godog](https://github.com/cucumber/godog) - Cucumber BDD framework for Go. - [gofight](https://github.com/appleboy/gofight) - API Handler Testing for Golang Router framework. - [gogiven](https://github.com/corbym/gogiven) - YATSPEC-like BDD testing framework for Go. - [gomatch](https://github.com/jfilipczyk/gomatch) - library created for testing JSON against patterns. From c3f24075bfe79625955229c9b161a54a8c49f86c Mon Sep 17 00:00:00 2001 From: Avelino Date: Sun, 9 Oct 2022 19:23:54 -0300 Subject: [PATCH 2868/3440] Update README.md --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index aaca679a351..9766665cadd 100644 --- a/README.md +++ b/README.md @@ -20,19 +20,13 @@ _Special thanks to_ - -
+ Doppler
Quit struggling with scattered API keys and access controls.
Keep your secrets in sync across environments, servers, and teams with Doppler.
- -x-team
-Work from anywhere in the world with top tech companies like Riot Games, Coinbase, and Google. -
-
From 8ac97ef62c83767e5e87d42408d81f4e5714e516 Mon Sep 17 00:00:00 2001 From: Jan Seidl Date: Mon, 10 Oct 2022 11:28:02 +0200 Subject: [PATCH 2869/3440] add avast/retry-go (#4507) * add avast/retry-go --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9766665cadd..cdc55e44981 100644 --- a/README.md +++ b/README.md @@ -492,7 +492,7 @@ _Tools for help with continuous integration._ - [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. -- [woodpecker](https://github.com/woodpecker-ci/woodpecker) - Woodpecker is a community fork of the Drone CI system. +- [woodpecker](https://github.com/woodpecker-ci/woodpecker) - Woodpecker is a community fork of the Drone CI system. **[⬆ back to top](#contents)** @@ -2638,6 +2638,7 @@ _General utilities and tools to make your life easier._ - [retry](https://github.com/percolate/retry) - A simple but highly configurable retry package for Go. - [retry](https://github.com/thedevsaddam/retry) - Simple and easy retry mechanism package for Go. - [retry](https://github.com/shafreeck/retry) - A pretty simple library to ensure your work to be done. +- [retry-go](https://github.com/avast/retry-go) - Simple library for retry mechanism. - [retry-go](https://github.com/rafaeljesus/retry-go) - Retrying made simple and easy for golang. - [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics. - [rospo](https://github.com/ferama/rospo) - Simple and reliable ssh tunnels with embedded ssh server in Golang. From 84beb834de915e6dfde907ab3e0e9cc8e918c1d5 Mon Sep 17 00:00:00 2001 From: vladopajic Date: Tue, 11 Oct 2022 15:26:58 +0200 Subject: [PATCH 2870/3440] add goactor (#4453) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cdc55e44981..602e046908d 100644 --- a/README.md +++ b/README.md @@ -1198,6 +1198,7 @@ _Tools for managing and working with Goroutines._ - [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. - [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. - [execpool](https://github.com/hexdigest/execpool) - A pool built around exec.Cmd that spins up a given number of processes in advance and attaches stdin and stdout to them when needed. Very similar to FastCGI or Apache Prefork MPM but works for any command. +- [go-actor](https://github.com/vladopajic/go-actor) - A tiny library for writing concurrent programs using actor model. - [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. - [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. - [go-tools/multithreading](https://github.com/nikhilsaraf/go-tools) - Manage a pool of goroutines using this lightweight library with a simple API. From 1245492b0712ccba87e422f32959bc2f5cb620c3 Mon Sep 17 00:00:00 2001 From: Janos Bonic <86970079+janosdebugs@users.noreply.github.com> Date: Thu, 13 Oct 2022 09:24:14 +0100 Subject: [PATCH 2871/3440] gotestfmt is moving to the GoTestTools org (#4544) See https://github.com/GoTestTools/gotestfmt/discussions/46 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 602e046908d..1ca77380526 100644 --- a/README.md +++ b/README.md @@ -488,7 +488,7 @@ _Tools for help with continuous integration._ - [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. - [go-fuzz-action](https://github.com/jidicula/go-fuzz-action) - Use Go 1.18's built-in fuzz testing in GitHub Actions. - [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. -- [gotestfmt](https://github.com/haveyoudebuggedit/gotestfmt) - go test output for humans. +- [gotestfmt](https://github.com/GoTestTools/gotestfmt) - go test output for humans. - [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. From 6af2e45a3c05e8a761e5fff93aeb180febc221f1 Mon Sep 17 00:00:00 2001 From: SwitchUpCB <81384235+switchupcb@users.noreply.github.com> Date: Sat, 15 Oct 2022 13:48:47 -0500 Subject: [PATCH 2872/3440] remove go-xray (#4347) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 1ca77380526..e19a94d7acf 100644 --- a/README.md +++ b/README.md @@ -1137,7 +1137,6 @@ _Tools that generate Go code._ - [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. - [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. - [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. -- [go-xray](https://github.com/pieterclaerhout/go-xray) - Helpers for making the use of reflection easier. - [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. - [gotype](https://github.com/wzshiming/gotype) - Golang source code parsing, usage like reflect package. - [goverter](https://github.com/jmattheis/goverter) - Generate converters by defining an interface. From a3c4d28d7035a7a6e7a59c71875594a2744cf827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Duy=20C=C6=B0=C6=A1ng=20=28Harry=20Tran?= =?UTF-8?q?=29?= Date: Sun, 16 Oct 2022 21:12:13 +0700 Subject: [PATCH 2873/3440] Add new tutorial: Go in 7 days (#4546) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e19a94d7acf..c5ca0275b21 100644 --- a/README.md +++ b/README.md @@ -3423,6 +3423,7 @@ _Where to discover new Go libraries._ - [Go By Example](https://gobyexample.com/) - Hands-on introduction to Go using annotated example programs. - [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - Go's reference card. - [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql. +- [Go in 7 days](https://github.com/harrytran103/7_days_of_go) - Learn everything about Go in 7 days (from a Nodejs developer). - [Go Language Tutorial](https://www.javatpoint.com/go-tutorial) - Learn Go language Tutorial. - [Go Tutorial](https://www.tutorialspoint.com/go/index.htm) - Learn Go programming. - [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) From 7ecc6a854ee3092c92af2f3b9f9e6ca650133d3b Mon Sep 17 00:00:00 2001 From: Srinivas Ramakrishna Date: Sun, 16 Oct 2022 19:42:25 +0530 Subject: [PATCH 2874/3440] Add w3basic to tutorials (#4545) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c5ca0275b21..007536668e3 100644 --- a/README.md +++ b/README.md @@ -3447,6 +3447,7 @@ _Where to discover new Go libraries._ - [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. - [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs. - [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) +- [W3basic Go Tutorials](https://www.w3basic.com/golang/) - W3Basic provides an in-depth tutorial and well-organized content to learn Golang programming. - [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. - [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. From a3301ea38b3b920af83f0f64dec2d85f8bc0b2e2 Mon Sep 17 00:00:00 2001 From: baiyutang Date: Sun, 16 Oct 2022 22:14:35 +0800 Subject: [PATCH 2875/3440] feat(Distributed Systems): add a new rpc framework (#4543) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 007536668e3..4c3a7dc25b8 100644 --- a/README.md +++ b/README.md @@ -900,6 +900,7 @@ _Packages that help with building Distributed Systems._ - [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. +- [Kitex](https://github.com/cloudwego/kitex) - A high-performance and strong-extensibility Golang RPC framework that helps developers build microservices. If the performance and extensibility are the main concerns when you develop microservices, Kitex can be a good choice. - [Kratos](https://github.com/go-kratos/kratos) - A modular-designed and easy-to-use microservices framework in Go. - [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. - [lura](https://github.com/luraproject/lura) - Ultra performant API Gateway framework with middlewares. From b810cbc888ad59c1a60464780092b6d931d225a1 Mon Sep 17 00:00:00 2001 From: Miroslav Kravec Date: Sun, 16 Oct 2022 16:18:51 +0200 Subject: [PATCH 2876/3440] add google/starlark-go (#4538) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4c3a7dc25b8..9a9ae74d5ae 100644 --- a/README.md +++ b/README.md @@ -984,6 +984,7 @@ _Embedding other languages inside your go code._ - [ngaro](https://github.com/db47h/ngaro) - Embeddable Ngaro VM implementation enabling scripting in Retro. - [prolog](https://github.com/ichiban/prolog) - Embeddable Prolog. - [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go. +- [starlark-go](https://github.com/google/starlark-go) - Go implementation of Starlark: Python-like language with deterministic evaluation and hermetic execution. - [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. **[⬆ back to top](#contents)** From 8ecd73e5c38f29846d5d816e8b3ddecf36938c8d Mon Sep 17 00:00:00 2001 From: Issac Trotts <15530+ijt@users.noreply.github.com> Date: Sun, 16 Oct 2022 08:26:33 -0600 Subject: [PATCH 2877/3440] add go-anytime (#4539) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9a9ae74d5ae..054e0204583 100644 --- a/README.md +++ b/README.md @@ -848,6 +848,7 @@ _Libraries for working with dates and times._ - [dateparse](https://github.com/araddon/dateparse) - Parse date's without knowing format in advance. - [durafmt](https://github.com/hako/durafmt) - Time duration formatting library for Go. - [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving... +- [go-anytime](https://github.com/ijt/go-anytime) - Parse dates/times like "next dec 22nd at 3pm" and ranges like "from today until next thursday" without knowing the format in advance. - [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). - [go-str2duration](https://github.com/xhit/go-str2duration) - Convert string to duration. Support time.Duration returned string and more. - [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. From 99737eb5a039e2e481685e57cdc29ad7ecdbc35d Mon Sep 17 00:00:00 2001 From: Kaarthikeyan Raghavan Date: Sun, 16 Oct 2022 23:36:26 +0530 Subject: [PATCH 2878/3440] Update robots.txt --- tmpl/robots.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tmpl/robots.txt b/tmpl/robots.txt index 72158267ba5..f6e6d1d4175 100644 --- a/tmpl/robots.txt +++ b/tmpl/robots.txt @@ -1 +1,2 @@ User-Agent: * +Allow: / From 9849652cfa5bdecedb9a9a5d76ab2ee22ead3abe Mon Sep 17 00:00:00 2001 From: harishmatheshwaran <95412458+harishmatheshwaran@users.noreply.github.com> Date: Mon, 17 Oct 2022 12:37:57 +0530 Subject: [PATCH 2879/3440] Update site-deploy.yaml --- .github/workflows/site-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/site-deploy.yaml b/.github/workflows/site-deploy.yaml index bc7a2e56ab6..a1ca2c412d1 100644 --- a/.github/workflows/site-deploy.yaml +++ b/.github/workflows/site-deploy.yaml @@ -12,7 +12,7 @@ jobs: environment: netlify container: golang:latest steps: - - uses: actions/checkout@1.0.0 + - uses: actions/checkout@v3 - name: Get dependencies run: go get -v -t -d ./... - name: Make awesome-go.com From 4a20acd85a31e1254244ce5c2aef7d351acc2ece Mon Sep 17 00:00:00 2001 From: harishmatheshwaran <95412458+harishmatheshwaran@users.noreply.github.com> Date: Mon, 17 Oct 2022 12:48:22 +0530 Subject: [PATCH 2880/3440] Update tests.yaml --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index de83e3b63a1..99e1332b201 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest container: golang:latest steps: - - uses: actions/checkout@1.0.0 + - uses: actions/checkout@v3 - name: Get dependencies run: go get -v -t -d ./... - name: Run tests From cede96faf3de31cd600d2cab8fc96644bbd5e25a Mon Sep 17 00:00:00 2001 From: harishmatheshwaran <95412458+harishmatheshwaran@users.noreply.github.com> Date: Mon, 17 Oct 2022 12:48:43 +0530 Subject: [PATCH 2881/3440] Update run-check.yaml --- .github/workflows/run-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index f9cfa9dcbe9..922e3d63f47 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest container: golang:latest steps: - - uses: actions/checkout@1.0.0 + - uses: actions/checkout@v3 - name: Get dependencies run: go get -v -t -d ./... - name: run script From 1134c2c2604477837157b6a2ffb4cacbd05e7b65 Mon Sep 17 00:00:00 2001 From: Storm_Chaser <81403270+YOGENDERSS@users.noreply.github.com> Date: Sat, 8 Oct 2022 18:30:33 +0530 Subject: [PATCH 2882/3440] removed some grammatical omission till Standard CLI in readme.md --- README.md | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 054e0204583..7065141b31c 100644 --- a/README.md +++ b/README.md @@ -57,9 +57,9 @@ _Special thanks to_
-**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community. Want to be a supporter of the project click [here](mailto:avelinorun+oss@gmail.com?subject=awesome-go%3A%20project%20support)._ +**Awesome Go has no monthly fee**_, but we have employees who **work hard** to keep it running. With money raised, we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community. Want to be a supporter of the project click [here](mailto:avelinorun+oss@gmail.com?subject=awesome-go%3A%20project%20support)._ -> A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). +> A curated list of awesome Go frameworks, libraries, and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). **Contributing:** @@ -227,30 +227,30 @@ _Libraries for manipulating audio._ ## Authentication and OAuth -_Libraries for implementing authentications schemes._ +_Libraries for implementing authentication schemes._ -- [authboss](https://github.com/volatiletech/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. +- [authboss](https://github.com/volatiletech/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure it, and start building your app without having to build an authentication system each time. - [branca](https://github.com/essentialkaos/branca) - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+. -- [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, ABAC. -- [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides parser of cookies.txt file format. -- [go-guardian](https://github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token and Certificate based authentication. +- [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, and ABAC. +- [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides a parser of cookies.txt file format. +- [go-guardian](https://github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token, and Certificate based authentication. - [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. - [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. - [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. -- [gosession](http://github.com/Kwynto/gosession) - This is quick session for net/http in GoLang. This package is perhaps the best implementation of the session mechanism, at least it tries to become one. +- [gosession](http://github.com/Kwynto/gosession) - This is quick session for net/http in GoLang. This package is perhaps the best implementation of the session mechanism, or at least it tries to become one. - [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. -- [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure and idiomatic web session management with pluggable backends. +- [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure, and idiomatic web session management with pluggable backends. - [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. -- [jwt](https://github.com/cristalhq/jwt) - Safe, simple and fast JSON Web Tokens for Go. +- [jwt](https://github.com/cristalhq/jwt) - Safe, simple, and fast JSON Web Tokens for Go. - [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. - [keto](https://github.com/ory/keto) - Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models. - [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. -- [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. +- [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support. - [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. - [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes. - [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. - [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO). -- [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. +- [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt. - [scope](https://github.com/SonicRoshan/scope) - Easily Manage OAuth2 Scopes In Go. - [scs](https://github.com/alexedwards/scs) - Session Manager for HTTP servers. - [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding. @@ -281,8 +281,8 @@ _Libraries for building and working with bots._ - [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. - [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. - [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. -- [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. -- [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. +- [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build a bot for desired chat services including LINE, Slack, Gitter, and more. +- [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router, and middleware. - [go-twitch-irc](https://github.com/gempir/go-twitch-irc) - Library to write bots for twitch.tv chat - [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. - [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library. @@ -296,7 +296,7 @@ _Libraries for building and working with bots._ - [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. - [slackscot](https://github.com/alexandre-normand/slackscot) - Another framework for building Slack bots. - [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. +- [telebot](https://github.com/tucnak/telebot) - Telegram bot framework is written in Go. - [telego](https://github.com/mymmrac/telego) - Telegram Bot API library for Golang with full one-to-one API implementation. - [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. - [teleterm](https://github.com/alfiankan/teleterm) - Telegram Bot Exec Terminal Command. @@ -307,7 +307,7 @@ _Libraries for building and working with bots._ ## Build Automation -_Libraries and tools helping with build automation._ +_Libraries and tools help with build automation._ - [1build](https://github.com/gopinath-langote/1build) - Command line tool to frictionlessly manage project-specific commands. - [anko](https://github.com/GuilhermeCaruso/anko) - Simple application watcher for multiple programming languages. @@ -316,7 +316,7 @@ _Libraries and tools helping with build automation._ - [goyek](https://github.com/goyek/goyek) - Create build pipelines in Go. - [mage](https://github.com/magefile/mage) - Mage is a make/rake-like build tool using Go. - [mmake](https://github.com/tj/mmake) - Modern Make. -- [realize](https://github.com/tockins/realize) - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths. +- [realize](https://github.com/tockins/realize) - Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths. - [Task](https://github.com/go-task/task) - simple "Make" alternative. - [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. @@ -329,7 +329,7 @@ _Libraries and tools helping with build automation._ _Libraries for building Console Applications and Console User Interfaces._ - [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. -- [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that supports fmt.Printf/Sprintf. +- [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that support fmt.Printf/Sprintf. - [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. - [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. - [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. @@ -349,7 +349,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. - [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. - [pterm](https://github.com/pterm/pterm) - A library to beautify console output on every platform with many combinable components. -- [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in terminal with Go. +- [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in a terminal with Go. - [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. - [tabby](https://github.com/cheynewallace/tabby) - A tiny library for super simple Golang tables. - [table](https://github.com/tomlazar/table) - Small library for terminal color based tables . @@ -358,7 +358,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). - [termenv](https://github.com/muesli/termenv) - Advanced ANSI style & color support for your terminal applications. - [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). -- [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in realtime. +- [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in real time. - [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications. - [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data. - [yacspin](https://github.com/theckman/yacspin) - Yet Another CLi Spinner package, for working with terminal spinners. @@ -369,7 +369,7 @@ _Libraries for building Console Applications and Console User Interfaces._ _Libraries for building standard or basic Command Line applications._ -- [acmd](https://github.com/cristalhq/acmd) - Simple, useful and opinionated CLI package in Go. +- [acmd](https://github.com/cristalhq/acmd) - Simple, useful, and opinionated CLI package in Go. - [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module. - [argv](https://github.com/cosiner/argv) - Go library to split command line string as arguments array using the bash syntax. - [carapace](https://github.com/rsteube/carapace) - Command argument completion generator for spf13/cobra. @@ -382,7 +382,7 @@ _Libraries for building standard or basic Command Line applications._ - [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idiomatic way. - [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library. - [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. -- [command-chain](https://github.com/rainu/go-command-chain) - A go library for configure and run command chains - such like pipelining in unix shells. +- [command-chain](https://github.com/rainu/go-command-chain) - A go library for configure and run command chains - such as pipelining in unix shells. - [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. - [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. - [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync. @@ -391,11 +391,11 @@ _Libraries for building standard or basic Command Line applications._ - [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand. - [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support. - [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package. -- [go-andotp](https://github.com/grijul/go-andotp) - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as library as well. +- [go-andotp](https://github.com/grijul/go-andotp) - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as a library as well. - [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go. - [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow. - [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. -- [go-getoptions](https://github.com/DavidGamba/go-getoptions) - Go option parser inspired on the flexibility of Perl’s GetOpt::Long. +- [go-getoptions](https://github.com/DavidGamba/go-getoptions) - Go option parser inspired by the flexibility of Perl’s GetOpt::Long. - [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications. - [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection. - [job](https://github.com/liujianping/job) - JOB, make your short-term command as a long-term job. @@ -407,14 +407,14 @@ _Libraries for building standard or basic Command Line applications._ - [ops](https://github.com/nanovms/ops) - Unikernel Builder/Orchestrator. - [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. - [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more. -- [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. +- [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries. - [strumt](https://github.com/antham/strumt) - Library to create prompt chain. - [subcmd](https://github.com/bobg/subcmd) - Another approach to parsing and running subcommands. Works alongside the standard `flag` package. - [ts](https://github.com/liujianping/ts) - Timestamp convert & compare tool. - [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. - [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). - [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency. -- [wmenu](https://github.com/dixonwille/wmenu) - Easy to use menu structure for cli applications that prompts users to make choices. +- [wmenu](https://github.com/dixonwille/wmenu) - Easy to use menu structure for cli applications that prompt users to make choices. **[⬆ back to top](#contents)** From bb00f8dd02b4f95fe03637f9f99d9a1670a34285 Mon Sep 17 00:00:00 2001 From: Benjamin Schoch Date: Tue, 30 Aug 2022 15:20:58 +0200 Subject: [PATCH 2883/3440] - avoid linking to non-existent pages - improve crawling for category page content --- make_site.go | 59 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/make_site.go b/make_site.go index e1a35448172..408a5d7a8a2 100644 --- a/make_site.go +++ b/make_site.go @@ -3,7 +3,6 @@ package main import ( "bytes" "fmt" - "io/ioutil" "log" "os" "strings" @@ -27,8 +26,11 @@ type Object struct { } func main() { - GenerateHTML() - input, err := ioutil.ReadFile("./tmpl/index.html") + err := GenerateHTML() + if err != nil { + panic(err) + } + input, err := os.ReadFile("./tmpl/index.html") if err != nil { panic(err) } @@ -38,22 +40,28 @@ func main() { panic(err) } - objs := []Object{} + objs := make(map[string]*Object) query.Find("body #content ul ul").First().Each(func(_ int, s *goquery.Selection) { - s.Find("li a").Each(func(_ int, s *goquery.Selection) { - selector, _ := s.Attr("href") + selector, exists := s.Attr("href") + if !exists { + return + } obj := makeObjById(selector, query.Find("body")) - objs = append(objs, obj) + if obj == nil { + return + } + objs[selector] = obj }) }) - makeSiteStruct(objs) + makeCategoryPages(objs) + linkCategoryPagesInIndex(string(input), query, objs) + makeSitemap(objs) - changeLinksInIndex(string(input), query) } -func makeSiteStruct(objs []Object) { +func makeCategoryPages(objs map[string]*Object) { for _, obj := range objs { folder := fmt.Sprintf("tmpl/%s", obj.Slug) err := os.Mkdir(folder, 0755) @@ -67,16 +75,16 @@ func makeSiteStruct(objs []Object) { } } -func makeSitemap(objs []Object) { +func makeSitemap(objs map[string]*Object) { t := template.Must(template.ParseFiles("tmpl/sitemap-tmpl.xml")) f, _ := os.Create("tmpl/sitemap.xml") t.Execute(f, objs) } -func makeObjById(selector string, s *goquery.Selection) (obj Object) { +func makeObjById(selector string, s *goquery.Selection) (obj *Object) { s.Find(selector).Each(func(_ int, s *goquery.Selection) { desc := s.NextFiltered("p") - ul := desc.NextFiltered("ul") + ul := s.NextFilteredUntil("ul", "h2") links := []Link{} ul.Find("li").Each(func(_ int, s *goquery.Selection) { @@ -88,7 +96,7 @@ func makeObjById(selector string, s *goquery.Selection) (obj Object) { } links = append(links, link) }) - obj = Object{ + obj = &Object{ Slug: slug.Generate(s.Text()), Title: s.Text(), Description: desc.Text(), @@ -98,16 +106,23 @@ func makeObjById(selector string, s *goquery.Selection) (obj Object) { return } -func changeLinksInIndex(html string, query *goquery.Document) { +func linkCategoryPagesInIndex(html string, query *goquery.Document, objs map[string]*Object) { query.Find("body #content ul li ul li a").Each(func(_ int, s *goquery.Selection) { + href, hrefExists := s.Attr("href") + if !hrefExists { + return + } - href, exists := s.Attr("href") - if exists { - uri := strings.SplitAfter(href, "#") - if len(uri) >= 2 && uri[1] != "contents" { - html = strings.ReplaceAll( - html, fmt.Sprintf(`href="%s"`, href), fmt.Sprintf(`href="%s"`, uri[1])) - } + // do not replace links if no page has been created for it + _, objExists := objs[href] + if !objExists { + return + } + + uri := strings.SplitAfter(href, "#") + if len(uri) >= 2 && uri[1] != "contents" { + html = strings.ReplaceAll( + html, fmt.Sprintf(`href="%s"`, href), fmt.Sprintf(`href="%s"`, uri[1])) } }) From 0c69a99954c3c84a0a1cafa6ad643d754fc7a003 Mon Sep 17 00:00:00 2001 From: Benjamin Schoch Date: Tue, 30 Aug 2022 16:09:19 +0200 Subject: [PATCH 2884/3440] - include "Resources" in category page rendering --- make_site.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make_site.go b/make_site.go index 408a5d7a8a2..e5b4c746d75 100644 --- a/make_site.go +++ b/make_site.go @@ -41,7 +41,7 @@ func main() { } objs := make(map[string]*Object) - query.Find("body #content ul ul").First().Each(func(_ int, s *goquery.Selection) { + query.Find("body #contents").NextFiltered("ul").Find("ul").Each(func(_ int, s *goquery.Selection) { s.Find("li a").Each(func(_ int, s *goquery.Selection) { selector, exists := s.Attr("href") if !exists { From 85a95438923d73a2acb56e7b422663fdb0097a46 Mon Sep 17 00:00:00 2001 From: Benjamin Schoch Date: Tue, 30 Aug 2022 16:14:48 +0200 Subject: [PATCH 2885/3440] - rollback naming changes to reduce diff --- make_site.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/make_site.go b/make_site.go index e5b4c746d75..1dc62a96c5e 100644 --- a/make_site.go +++ b/make_site.go @@ -55,13 +55,13 @@ func main() { }) }) - makeCategoryPages(objs) - linkCategoryPagesInIndex(string(input), query, objs) + makeSiteStruct(objs) + changeLinksInIndex(string(input), query, objs) makeSitemap(objs) } -func makeCategoryPages(objs map[string]*Object) { +func makeSiteStruct(objs map[string]*Object) { for _, obj := range objs { folder := fmt.Sprintf("tmpl/%s", obj.Slug) err := os.Mkdir(folder, 0755) @@ -106,7 +106,7 @@ func makeObjById(selector string, s *goquery.Selection) (obj *Object) { return } -func linkCategoryPagesInIndex(html string, query *goquery.Document, objs map[string]*Object) { +func changeLinksInIndex(html string, query *goquery.Document, objs map[string]*Object) { query.Find("body #content ul li ul li a").Each(func(_ int, s *goquery.Selection) { href, hrefExists := s.Attr("href") if !hrefExists { From e4c3edc0e7960658379f827a2de18a176ec06bf7 Mon Sep 17 00:00:00 2001 From: Benjamin Schoch Date: Tue, 30 Aug 2022 16:21:44 +0200 Subject: [PATCH 2886/3440] - avoid empty category pages --- make_site.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/make_site.go b/make_site.go index 1dc62a96c5e..5770bff8980 100644 --- a/make_site.go +++ b/make_site.go @@ -96,6 +96,9 @@ func makeObjById(selector string, s *goquery.Selection) (obj *Object) { } links = append(links, link) }) + if len(links) == 0 { + return + } obj = &Object{ Slug: slug.Generate(s.Text()), Title: s.Text(), From 5e734b53e03f11dc0e8d1ccfce93a8014657d015 Mon Sep 17 00:00:00 2001 From: Benjamin Schoch Date: Tue, 30 Aug 2022 19:26:14 +0200 Subject: [PATCH 2887/3440] fix code style --- make_site.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/make_site.go b/make_site.go index 5770bff8980..3811b4947a2 100644 --- a/make_site.go +++ b/make_site.go @@ -47,7 +47,7 @@ func main() { if !exists { return } - obj := makeObjById(selector, query.Find("body")) + obj := makeObjByID(selector, query.Find("body")) if obj == nil { return } @@ -81,7 +81,7 @@ func makeSitemap(objs map[string]*Object) { t.Execute(f, objs) } -func makeObjById(selector string, s *goquery.Selection) (obj *Object) { +func makeObjByID(selector string, s *goquery.Selection) (obj *Object) { s.Find(selector).Each(func(_ int, s *goquery.Selection) { desc := s.NextFiltered("p") ul := s.NextFilteredUntil("ul", "h2") From cc76243eb066536b3ab2b4926a5709caae98f450 Mon Sep 17 00:00:00 2001 From: Avelino Date: Tue, 18 Oct 2022 11:15:27 -0300 Subject: [PATCH 2888/3440] Remove stale action fixed: #4479 --- .github/workflows/stale.yml | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 .github/workflows/stale.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index 2e0869ee3ae..00000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: PR auto close, if you stay more than 8 days open - -on: - workflow_dispatch: - schedule: - - cron: '0 0 * * *' - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-pr-message: > - This PR has been automatically marked as stale because it has not had - recent activity. They will wait 15 days for your interaction, after - that the PR will be closed. - Please read more in https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md - stale-pr-label: 'stale' - days-before-stale: 15 - days-before-close: 7 From 90a7321af5dd75f701a9e0db70487846c4477a9d Mon Sep 17 00:00:00 2001 From: michaldorsett <36814114+michaldorsett@users.noreply.github.com> Date: Mon, 24 Oct 2022 20:41:56 +0300 Subject: [PATCH 2889/3440] Remove inactive projects (#4571) Co-authored-by: Michal Dorsett --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 7065141b31c..426ec584cc7 100644 --- a/README.md +++ b/README.md @@ -710,7 +710,6 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. - [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. - [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code. -- [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc. - [schema](https://github.com/adlio/schema) - Library to embed schema migrations for database/sql-compatible databases inside your Go binaries. - [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. - [soda](https://github.com/gobuffalo/pop/tree/master/soda) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. @@ -728,7 +727,6 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. - [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. - [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. Supports statement and row based replication. - [octillery](https://github.com/knocknote/octillery) - Go package for sharding databases ( Supports every ORM or raw SQL ). - [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer. - [pg_timetable](https://github.com/cybertec-postgresql/pg_timetable) - Advanced scheduling for PostgreSQL. @@ -1919,7 +1917,6 @@ _Libraries that implement Object-Relational Mapping or datamapping techniques._ - [cacheme](https://github.com/Yiling-J/cacheme-go) - Schema based, typed Redis caching/memoize framework for Go. - [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. - [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. -- [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM. - [go-sql](https://github.com/rushteam/gosql) - A easy ORM for mysql. - [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. - [go-store](https://github.com/gosuri/go-store) - Simple and fast Redis backed key-value store library for Go. From fd415d048b4cce60cc57ba27e64a86e6c92ff670 Mon Sep 17 00:00:00 2001 From: Taras Savchyn <30748114+trsvchn@users.noreply.github.com> Date: Tue, 25 Oct 2022 14:29:24 +0200 Subject: [PATCH 2890/3440] Add "Effective Go" book to resources (#4575) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 426ec584cc7..42bd798f0e1 100644 --- a/README.md +++ b/README.md @@ -3220,6 +3220,7 @@ _Where to discover new Go libraries._ - [100 Go Mistakes: How to Avoid Them](https://www.manning.com/books/100-go-mistakes-how-to-avoid-them) - [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) - [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. +- [Effective Go: Elegant, efficient, and testable code](https://www.manning.com/books/effective-go) - Unlock Go’s unique perspective on program design, and start writing simple, maintainable, and testable Go code. - [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. - [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - A guide to understanding and using generics in Go. - [The Power of Go: Tests](https://bitfieldconsulting.com/books/tests) - A guide to testing in Go. From e1ed643a8c03a635687544cadbe35d17e38817da Mon Sep 17 00:00:00 2001 From: Kevin Mulvey Date: Tue, 25 Oct 2022 06:30:02 -0600 Subject: [PATCH 2891/3440] correct spelling of 'details' in pr template (#4567) --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ec832a2a5aa..1b75643ec62 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -10,7 +10,7 @@ **Note**: _that new categories can be added only when there are 3 packages or more._ **Make sure that you've checked the boxes below that apply before you submit PR.** -_Not every repository (project) will require every option, but most projects should. Check the Contribution Guidelines for detials._ +_Not every repository (project) will require every option, but most projects should. Check the Contribution Guidelines for details._ - [ ] The package has been added to the list in alphabetical order. - [ ] The package has an appropriate description with correct grammar. From 3a70ebf7beeae2c2a484129051ead6b6e5d2c7fe Mon Sep 17 00:00:00 2001 From: jidicula Date: Wed, 26 Oct 2022 20:14:59 -0400 Subject: [PATCH 2892/3440] refactor(tests): Use net/http constants for status codes It's best to use the built-in library constants for status codes when possible as it improves readability, rather than having to look up status code definitions when otherwise changing behaviour. --- stale_repositories_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 8a992e4cc8d..dc37bffd073 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -160,17 +160,17 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s } defer resp.Body.Close() json.NewDecoder(resp.Body).Decode(&repoResp) - if resp.StatusCode == 301 { + if resp.StatusCode == http.StatusMovedPermanently { *staleRepos = append(*staleRepos, href+movedPermanently) - log.Printf("%s returned 301", href) + log.Printf("%s returned %d", href, resp.StatusCode) isRepoAdded = true } - if resp.StatusCode == 302 && !isRepoAdded { + if resp.StatusCode == http.StatusFound && !isRepoAdded { *staleRepos = append(*staleRepos, href+status302) - log.Printf("%s returned 302", href) + log.Printf("%s returned %d", href, resp.StatusCode) isRepoAdded = true } - if resp.StatusCode >= 400 && !isRepoAdded { + if resp.StatusCode >= http.StatusBadRequest && !isRepoAdded { *staleRepos = append(*staleRepos, href+deadLinkMessage) log.Printf("%s might not exist!", href) isRepoAdded = true From a99ff497f7069e622f9b33c0ddc2005dd5318bec Mon Sep 17 00:00:00 2001 From: Connor McKelvey Date: Thu, 27 Oct 2022 09:23:41 -0600 Subject: [PATCH 2893/3440] use standard dashes between project names and descriptions --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 42bd798f0e1..6fe667d0ce7 100644 --- a/README.md +++ b/README.md @@ -1465,7 +1465,7 @@ _Libraries for generating and working with log files._ - [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. - [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. - [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. -- [slog](https://github.com/gookit/slog) Lightweight, configurable, extensible logger for Go. +- [slog](https://github.com/gookit/slog) - Lightweight, configurable, extensible logger for Go. - [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. - [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. @@ -2348,7 +2348,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. - [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. - [sh](https://github.com/mvdan/sh) - Shell parser and formatter. -- [tokenizer](https://github.com/bzick/tokenizer) — Parse any string, slice or infinite buffer to any tokens. +- [tokenizer](https://github.com/bzick/tokenizer) - Parse any string, slice or infinite buffer to any tokens. - [when](https://github.com/olebedev/when) - Natural EN and RU language date/time parser with pluggable rules. - [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct. @@ -3416,7 +3416,7 @@ _Where to discover new Go libraries._ - [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. - [Caching Slow Database Queries](https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9) - How to cache slow database queries. - [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. -- [CodeCrafters Golang Track](https://app.codecrafters.io/tracks/go) — Achieve mastery in advanced Go by building your own Redis, Docker, Git, and SQLite. Featuring goroutines, systems programming, file I/O, and more. +- [CodeCrafters Golang Track](https://app.codecrafters.io/tracks/go) - Achieve mastery in advanced Go by building your own Redis, Docker, Git, and SQLite. Featuring goroutines, systems programming, file I/O, and more. - [Debugged.it Go patterns](https://github.com/haveyoudebuggedit/go-patterns) - Advanced Go patterns with ready-to-run examples. - [Design Patterns in Go](https://github.com/shubhamzanwar/design-patterns) - Collection of programming design patterns implemented in Go. - [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. From 6f52a72ee6b8015896e8d16753e268721abc93fa Mon Sep 17 00:00:00 2001 From: Hitesh Kumar <40434383+hiteshhedwig@users.noreply.github.com> Date: Mon, 10 Oct 2022 16:13:33 +0530 Subject: [PATCH 2894/3440] remove deprecated bindings --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6fe667d0ce7..a8c0fdc4dea 100644 --- a/README.md +++ b/README.md @@ -1302,7 +1302,6 @@ _Libraries for manipulating images._ - [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. - [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library. - [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. -- [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. - [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. - [go-webp](https://github.com/kolesa-team/go-webp) - Library for encode and decode webp pictures, using libwebp. - [gocv](https://github.com/hybridgroup/gocv) - Go package for computer vision using OpenCV 3.3+. From ef5bb7b99581e9052cb360e7ce98825be3dfba12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lincoln=20J=C3=BAnior?= <99145408+lincolnjpg@users.noreply.github.com> Date: Sun, 30 Oct 2022 19:02:17 -0300 Subject: [PATCH 2895/3440] add k0kubun/pp (#4585) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a8c0fdc4dea..881aa1d0c89 100644 --- a/README.md +++ b/README.md @@ -1461,6 +1461,7 @@ _Libraries for generating and working with log files._ - [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation. - [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). - [phuslu/log](https://github.com/phuslu/log) - High performance structured logging. +- [pp](https://https://github.com/k0kubun/pp) - Colored pretty printer for Go language. - [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. - [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. - [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. From 529757ee4df32cf153df9ae51d1a53e3528fc8f8 Mon Sep 17 00:00:00 2001 From: Mateusz Szostok Date: Mon, 31 Oct 2022 01:28:05 +0100 Subject: [PATCH 2896/3440] Add `go.szostok.io/version` package (#4475) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 881aa1d0c89..8eef00928c0 100644 --- a/README.md +++ b/README.md @@ -413,6 +413,7 @@ _Libraries for building standard or basic Command Line applications._ - [ts](https://github.com/liujianping/ts) - Timestamp convert & compare tool. - [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. - [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). +- [version](https://github.com/mszostok/version) - Collects and displays CLI version information in multiple formats along with upgrade notice. - [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency. - [wmenu](https://github.com/dixonwille/wmenu) - Easy to use menu structure for cli applications that prompt users to make choices. From 5d9539cb6a5c7971ce7936a9c2169f7695e41e7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lincoln=20J=C3=BAnior?= <99145408+lincolnjpg@users.noreply.github.com> Date: Sun, 30 Oct 2022 21:28:38 -0300 Subject: [PATCH 2897/3440] fix k0kubun/pp repo url (#4587) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8eef00928c0..1ce685d0e12 100644 --- a/README.md +++ b/README.md @@ -1462,7 +1462,7 @@ _Libraries for generating and working with log files._ - [onelog](https://github.com/francoispqt/onelog) - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation. - [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). - [phuslu/log](https://github.com/phuslu/log) - High performance structured logging. -- [pp](https://https://github.com/k0kubun/pp) - Colored pretty printer for Go language. +- [pp](https://github.com/k0kubun/pp) - Colored pretty printer for Go language. - [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. - [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. - [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. From 538f88b97e18ffeb5ea773814be394ead8856f14 Mon Sep 17 00:00:00 2001 From: baiyutang Date: Mon, 31 Oct 2022 08:42:27 +0800 Subject: [PATCH 2898/3440] feat(Distributed Systems): add a new rpc framework (#4446) From 6cb1a67d662ad6fbece382db00d3d16c030117b8 Mon Sep 17 00:00:00 2001 From: "Martin \"Marrow\" Rowlinson" Date: Mon, 31 Oct 2022 00:51:15 +0000 Subject: [PATCH 2899/3440] Add valix (request validator) (#4447) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1ce685d0e12..2cdfd4e4a5a 100644 --- a/README.md +++ b/README.md @@ -2707,6 +2707,7 @@ _Libraries for validation._ - [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications. - [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. - [Validator](https://github.com/go-the-way/validator) - A lightweight model validator written in Go.Contains VFs:Min, Max, MinLength, MaxLength, Length, Enum, Regex. +- [valix](https://github.com/marrow16/valix) Go package for validating requests **[⬆ back to top](#contents)** From 5cc67b2fec25a47be7fcf7961ac6314a77ff4089 Mon Sep 17 00:00:00 2001 From: Chance Date: Sun, 30 Oct 2022 20:51:28 -0400 Subject: [PATCH 2900/3440] Add caps (#4464) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2cdfd4e4a5a..34913300588 100644 --- a/README.md +++ b/README.md @@ -1653,6 +1653,7 @@ _**Unofficial** set of patterns for structuring projects._ _Libraries for working with strings._ - [bexp](https://github.com/mkungla/bexp) - Go implementation of Brace Expansion mechanism to generate arbitrary strings. +- [caps](https://github.com/chanced/caps) - A case conversion library. - [go-formatter](https://gitlab.com/tymonx/go-formatter) - Implements **replacement fields** surrounded by curly braces `{}` format strings. - [gobeam/Stringy](https://github.com/gobeam/Stringy) - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. - [strutil](https://github.com/ozgio/strutil) - String utilities. From 6ca5ad22eb53546858dd9658686f949f5393a887 Mon Sep 17 00:00:00 2001 From: Karthik Muralidharan <2356525+karthikmuralidharan@users.noreply.github.com> Date: Mon, 31 Oct 2022 06:26:54 +0530 Subject: [PATCH 2901/3440] Add etherlabsio/go-m3u8 module (#4449) Co-authored-by: Phani Rithvij --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 34913300588..13dfee14b3e 100644 --- a/README.md +++ b/README.md @@ -2735,7 +2735,7 @@ _Libraries for manipulating video._ - [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. - [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). - [go-astits](https://github.com/asticode/go-astits) - Parse and demux MPEG Transport Streams (.ts) natively in GO. -- [go-m3u8](https://github.com/quangngotan95/go-m3u8) - Parser and generator library for Apple m3u8 playlists. +- [go-m3u8](https://github.com/etherlabsio/go-m3u8) - Parser and generator library for Apple m3u8 playlists. Actively maintained version of quangngotan95/go-m3u8 with improvements and latest HLS playlist parsing compatibility. - [go-mpd](https://github.com/unki2aut/go-mpd) - Parser and generator library for MPEG-DASH manifest files. - [goav](https://github.com/giorgisio/goav) - Comprehensive Go bindings for FFmpeg. - [gortsplib](https://github.com/aler9/gortsplib) - Pure Go RTSP server and client library. From bbbe6467452b59ebbf3affa12054a5db1a652b66 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 31 Oct 2022 03:17:17 +0200 Subject: [PATCH 2902/3440] GitHub Workflows security hardening (#4586) --- .github/workflows/run-check.yaml | 4 ++++ .github/workflows/site-deploy.yaml | 3 +++ .github/workflows/tests.yaml | 3 +++ 3 files changed, 10 insertions(+) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index 922e3d63f47..82534906a4f 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -3,6 +3,10 @@ on: workflow_dispatch: schedule: - cron: '0 0 * * 0' + +permissions: + contents: read # to fetch code (actions/checkout) + jobs: build: name: Running test diff --git a/.github/workflows/site-deploy.yaml b/.github/workflows/site-deploy.yaml index a1ca2c412d1..c92b7f19779 100644 --- a/.github/workflows/site-deploy.yaml +++ b/.github/workflows/site-deploy.yaml @@ -5,6 +5,9 @@ on: branches: - 'main' +permissions: + contents: read # to fetch code (actions/checkout) + jobs: build: name: Make and Deploy site diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 99e1332b201..d5f247affa4 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -6,6 +6,9 @@ on: - 'main' pull_request: +permissions: + contents: read # to fetch code (actions/checkout) + jobs: build: name: Running test From e79a15f1210a3aa5dc5fb5cc05d38f527fbc44b9 Mon Sep 17 00:00:00 2001 From: Edwin Candinegara <6941596+edocsss@users.noreply.github.com> Date: Mon, 31 Oct 2022 10:55:14 +0800 Subject: [PATCH 2903/3440] Add `GoFreeDB` (#4552) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 13dfee14b3e..ed6d9616bc1 100644 --- a/README.md +++ b/README.md @@ -2449,6 +2449,7 @@ _Libraries for accessing third party APIs._ - [go-yapla](https://git.iglou.eu/Production/go-yapla) - Go client library for the Yapla v2.0 API. - [goagi](https://github.com/staskobzar/goagi) - Go library to build Asterisk PBX agi/fastagi applications. - [goami2](https://github.com/staskobzar/goami2) - AMI v2 library for Asterisk PBX. +- [GoFreeDB](https://github.com/FreeLeh/GoFreeDB) - Golang library providing common and simple database abstractions on top of Google Sheets. - [gogtrends](https://github.com/groovili/gogtrends) - Google Trends Unofficial API. - [golang-tmdb](https://github.com/cyruzin/golang-tmdb) - Golang wrapper for The Movie Database API v3. - [golyrics](https://github.com/mamal72/golyrics) - Golyrics is a Go library to fetch music lyrics data from the Wikia website. From eec34ad4fbce3bc2db4a69a5d62db4691592159f Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Mon, 31 Oct 2022 15:56:15 +1300 Subject: [PATCH 2904/3440] Add Mailpit (#4437) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed6d9616bc1..1cf7f97dcc7 100644 --- a/README.md +++ b/README.md @@ -953,6 +953,7 @@ _Libraries and tools that implement email creation and sending._ - [mailchain](https://github.com/mailchain/mailchain) - Send encrypted emails to blockchain addresses written in Go. - [mailgun-go](https://github.com/mailgun/mailgun-go) - Go library for sending mail with the Mailgun API. - [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface. +- [Mailpit](https://github.com/axllent/mailpit) - Email and SMTP testing tool for developers. - [mailx](https://github.com/valord577/mailx) - Mailx is a library that makes it easier to send email via SMTP. It is an enhancement of the golang standard library `net/smtp`. - [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. From 6d655020685fca0866453ff68029c0150dc9143f Mon Sep 17 00:00:00 2001 From: chai2010 Date: Mon, 31 Oct 2022 11:04:38 +0800 Subject: [PATCH 2905/3440] add Go ast book (#4512) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1cf7f97dcc7..b728dbc1f2a 100644 --- a/README.md +++ b/README.md @@ -3240,6 +3240,7 @@ _Where to discover new Go libraries._ - [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) - [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) - [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. +- [Go AST Book (Chinese)](https://github.com/chai2010/go-ast-book) - A book focusing on Go `go/*` packages. - [Go Bootcamp](http://golangbootcamp.com) - [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. - [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. From a9c2f6ce3bdd8061f1610dd65bac55eab6541015 Mon Sep 17 00:00:00 2001 From: Said Neder <62523210+crazyc4t@users.noreply.github.com> Date: Mon, 31 Oct 2022 03:25:54 +0000 Subject: [PATCH 2906/3440] added new ebooks for purchase (#4505) Co-authored-by: Phani Rithvij --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b728dbc1f2a..f5d8d32588a 100644 --- a/README.md +++ b/README.md @@ -3223,8 +3223,10 @@ _Where to discover new Go libraries._ ### E-books for purchase - [100 Go Mistakes: How to Avoid Them](https://www.manning.com/books/100-go-mistakes-how-to-avoid-them) +- [Black Hat Go](https://nostarch.com/blackhatgo) - Go programming for hackers and pentesters. - [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) - [Continuous Delivery in Go](https://www.manning.com/books/continuous-delivery-in-go) - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. +- [Creative DIY Microcontroller Project With TinyGo and WebAssembly](https://www.packtpub.com/product/creative-diy-microcontroller-projects-with-tinygo-and-webassembly/9781800560208) - An introduction into the TinyGo compiler with projects involving Arduino and WebAssembly. - [Effective Go: Elegant, efficient, and testable code](https://www.manning.com/books/effective-go) - Unlock Go’s unique perspective on program design, and start writing simple, maintainable, and testable Go code. - [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. - [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - A guide to understanding and using generics in Go. From 04b1a4049415a2275a2dd379cb31b3f662c463bd Mon Sep 17 00:00:00 2001 From: Aman Jha Date: Mon, 31 Oct 2022 09:03:32 +0530 Subject: [PATCH 2907/3440] Add Atruego in Web Frameworks (#4466) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f5d8d32588a..e62ed10aa02 100644 --- a/README.md +++ b/README.md @@ -2758,6 +2758,7 @@ _Full stack web frameworks._ - [Air](https://github.com/aofei/air) - An ideally refined web framework for Go. - [anoweb](https://github.com/go-the-way/anoweb) - The lightweight and powerful web framework using the new way for Go.Another go the way. - [appy](https://github.com/appist/appy) - An opinionated productive web framework that helps scaling business easier. +- [Atreugo](https://github.com/savsgio/atreugo) - High performance and extensible micro web framework with zero memory allocations in hot paths. - [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go. - [Beego](https://github.com/beego/beego) - beego is an open-source, high-performance web framework for the Go programming language. - [Buffalo](https://gobuffalo.io) - Bringing the productivity of Rails to Go! From 9234b1f0286afb5064f3874705e5eeeca0b9f2fe Mon Sep 17 00:00:00 2001 From: Anna Ivahnenko <91467067+ivahnenkoAnna@users.noreply.github.com> Date: Mon, 31 Oct 2022 04:37:57 +0100 Subject: [PATCH 2908/3440] Add ObjectBox Go to Databases (#4459) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e62ed10aa02..f3891ac1d17 100644 --- a/README.md +++ b/README.md @@ -680,6 +680,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. - [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. - [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. +- [objectbox-go](https://github.com/objectbox/objectbox-go) - High-performance embedded Object Database (NoSQL) with Go API. - [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. - [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. - [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. From 827fa4e1a898216accb7762be24759a8c4bb3464 Mon Sep 17 00:00:00 2001 From: Vaibhav <95699355+crsdvaibhav@users.noreply.github.com> Date: Mon, 31 Oct 2022 09:09:33 +0530 Subject: [PATCH 2909/3440] Add 'Microservices with Go' in the Tutorials section (#4458) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f3891ac1d17..36a50cce62b 100644 --- a/README.md +++ b/README.md @@ -3454,6 +3454,7 @@ _Where to discover new Go libraries._ - [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes. - [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. - [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example. +- [Microservices with Go](https://www.youtube.com/playlist?list=PLmD8u-IFdreyh6EUfevBcbiuCKzFk0EW_) - Dive deep into building microservices using Go, including gRPC. - [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. - [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. - [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs. From ccba350512ce46c7f63040416106d563ee847496 Mon Sep 17 00:00:00 2001 From: NoviewsOne <91729931+boidlo@users.noreply.github.com> Date: Mon, 31 Oct 2022 11:30:42 +0100 Subject: [PATCH 2910/3440] Added Harfang3D engine (#4578) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 36a50cce62b..1a187ca8ea3 100644 --- a/README.md +++ b/README.md @@ -1121,6 +1121,7 @@ _Awesome game development libraries._ - [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. - [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping. +- [Harfang3D](https://github.com/harfang3d/harfang3d) - 3D engine for the Go language, works on Windows and Linux ([Harfang on Go.dev](github.com/harfang3d/harfang-go)). - [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. - [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework. - [Oak](https://github.com/oakmound/oak) - Pure Go game engine. From 877b2caa6f43aa1982d92a1086e8ae1114098181 Mon Sep 17 00:00:00 2001 From: Pandey-utkarsh <91661580+Pandey-utkarsh@users.noreply.github.com> Date: Mon, 31 Oct 2022 16:04:23 +0530 Subject: [PATCH 2911/3440] fix grammar (#4584) --- CONTRIBUTING.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2c325478218..4c138a836e9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ We appreciate and recognize [all contributors](https://github.com/avelino/awesom > Please be aware that we want to accept your contribution, but we have **some rules to keep the minimum quality** of the packages listed here. All reviews are **not personal feedback**, -even if you are a _developer reviewing your contribution_. **Sorry if we can't meet your expectations, we do our best**. +even if you are a _developer reviewing your contribution_. **Sorry if we can't meet your expectations; we do our best**. - **To add, remove, or change things on the list:** Submit a pull request @@ -16,7 +16,7 @@ Please contribute links to packages/projects you have used or are familiar with. ## Quality standards -To be on the list, project repositories should adhere to the following quality standards +To be on the list, project repositories should adhere to the following quality standards. (https://goreportcard.com/report/github.com/ **github_user** / **github_repo**): - have an **open source license**, [see list of allowed licenses](https://opensource.org/licenses/alphabetical); @@ -26,9 +26,9 @@ To be on the list, project repositories should adhere to the following quality s - regular, recent commits; - or, for finished projects, issues and pull requests are responded to generally within 2 weeks; - be stable or progressing toward stable; -- be thoroughly documented (README, pkg.go.dev doc comments, etc.) in the english language, so everyone is able to understand the project's intention and how it works. All public functions and types should have a Go style documentation header; -- if the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data related packages. (**Note**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark results); -- have at least one official version-numbered release that allows go.mod files to list the file by version number, of the form vX.X.X. +- be thoroughly documented (README, pkg.go.dev doc comments, etc.) in the English language, so everyone is able to understand the project's intention and how it works. All public functions and types should have a Go-style documentation header; +- if the library/program is testable, then coverage should be >= 80% for non-data-related packages and >=90% for data-related packages. (**Note**: the tests will be reviewed too. We will check your coverage manually if your package's coverage is just a benchmark result); +- have at least one official version-numbered release that allows go.mod files to list the file by version number of the form vX.X.X. Categories must have at least 3 items. @@ -54,8 +54,8 @@ Open a pull request against the README.md document that adds the repository to t - The added item should be in alphabetical order within its category. - 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 and end with a punctuation mark. -- Remember to put a period `.` at end of the project description. +- Descriptions should follow the link on the same line and end with a punctuation mark. +- Remember to put a period `.` at the end of the project description. If you are creating a new category, move the projects that apply to the new category, ensuring that the resulting list has at least 3 projects in every category and that the categories are alphabetized. @@ -75,36 +75,36 @@ You are an awesome project now! Feel encouraged to tell others about it by addin ## Maintenance expectations for projects listed here To prevent removal from awesome-go, your project must maintain the following quality standards. -- Development should be on-going and maintain code quality. Official releases should be at least once a year if the project is ongoing. +- Development should be ongoing and maintain code quality. Official releases should be at least once a year if the project is ongoing. - Or, if development has halted because the project is mature and stable, that can be demonstrated by having no bug reports in the Issues list that are older than 6 months. - All links to quality reports should be to the most recent official release or current ongoing development. Highly recommended but not required: - A continuous integration process be part of the ongoing development process -- That the project uses a pull-request process and the owners do not commit directly to the repository +- That the project uses a pull-request process, and the owners do not commit directly to the repository - That the pull-request process requires the continuous-integration tests pass before a pull request can be merged ## How to remove an item from the list - Open a pull request that deletes the line of the project in question. - Delete the submission template and substitute a description of which criteria the project is not meeting. It should be a combination of the following. - - The project has not made an official release within the last year and it has open issues. + - The project has not made an official release within the last year and has open issues. - The project is not responding to bug reports issued within 6 months of submission. - The project is not meeting quality standards as indicated by the Go Report Card or Code Coverage tests. - The quality standard links have been removed from the documentation. - The project is no longer open-sourced. - - The project is not compatible with any Go version issued within the last year (there is hopefully an open PR about this at the project). + - The project is incompatible with any Go version issued within the last year (there is hopefully an open PR about this at the project). -If the project is hosted on Github, include a link to the project's submitter and/or author so +If the project is hosted on GitHub, include a link to the project's submitter and/or author so that they will be notified of the desire to remove the project and have an opportunity to respond. The link should be of the form @githubID. -If the project is not hosted on Github, open an issue at the project in question's repository linking to the PR +If the project is not hosted on GitHub, open an issue at the project in question's repository linking to the PR and stating the following: >This project is currently listed at awesome-go at https://github.com/avelino/awesome-go. However, it appears that the project is not maintaining the quality standards required to continue to be listed at the awesome-go project. -This project is schedule to be removed within 2 weeks of this posting. To continue to be listed at awesome-go, please respond at: +This project is scheduled to be removed within 2 weeks of this posting. To continue to be listed at awesome-go, please respond at: -- link to above PR -- Then, comment on your PR at awesome-go with a link to the removal issue at the project. @@ -124,7 +124,7 @@ Please open an issue if you would like to discuss anything that could be improve Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition but are otherwise worthy of being on the list. -Thanks everyone! +Thanks, everyone! ## How decision are made From fdc933fa4693a53929a1af5f50d2ebde153b8764 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Mon, 31 Oct 2022 03:42:08 -0700 Subject: [PATCH 2912/3440] Add `diff` (#4555) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1a187ca8ea3..53ee51bcb0e 100644 --- a/README.md +++ b/README.md @@ -2212,6 +2212,7 @@ _Libraries for testing codebases and generating test data._ - [covergates](https://github.com/covergates/covergates) - Self-hosted code coverage report review and management service. - [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. + - [diff](https://github.com/terrastruct/diff) - Beautiful Git-style diffs to easily compare expected vs actual. - [dsunit](https://github.com/viant/dsunit) - Datastore testing for SQL, NoSQL, structured files. - [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. - [endly](https://github.com/viant/endly) - Declarative end to end functional testing. From de0b340907d15d8eb1e35845c5da42a461f7d21e Mon Sep 17 00:00:00 2001 From: LanLanceYuan <92938836+L2ncE@users.noreply.github.com> Date: Mon, 31 Oct 2022 18:47:57 +0800 Subject: [PATCH 2913/3440] feat(Web Frameworks): add a new web framework (#4588) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 53ee51bcb0e..c60e129caf3 100644 --- a/README.md +++ b/README.md @@ -2787,6 +2787,7 @@ _Full stack web frameworks._ - [GoTuna](https://github.com/gotuna/gotuna) - Minimalistic web framework for Go with mux router, middlewares, sessions, templates, embedded views and static files. - [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. - [Goyave](https://github.com/go-goyave/goyave) - Feature-complete REST API framework aimed at clean code and fast development, with powerful built-in functionalities. +- [Hertz](https://github.com/cloudwego/hertz) - A high-performance and strong-extensibility Go HTTP framework that helps developers build microservices. - [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. - [Huma](https://github.com/danielgtaylor/huma/) - Framework for modern REST/GraphQL APIs with built-in OpenAPI 3, generated documentation, and a CLI. - [Macaron](https://github.com/go-macaron/macaron) - Macaron is a high productive and modular design web framework in Go. From 549fd81a6e955861eeb722d347a72775ca9fc034 Mon Sep 17 00:00:00 2001 From: skdevgig07 <114621648+skdevgig07@users.noreply.github.com> Date: Mon, 31 Oct 2022 16:24:21 +0530 Subject: [PATCH 2914/3440] add kandi.openweaver.com (#4530) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c60e129caf3..46bc2845301 100644 --- a/README.md +++ b/README.md @@ -3388,6 +3388,7 @@ _Where to discover new Go libraries._ - [Code with Mukesh](https://codewithmukesh.com/blog/category/golang) - Software Engineer and Blogs @ codewithmukesh.com. - [Coding Mystery](https://codingmystery.com) - Solve exciting escape-room-inspired programming challenges using Go. - [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. +- [Explore Go Libraries & Projects](https://kandi.openweaver.com/explore/go) - Discover & find a curated list of popular & new Go libraries, top authors, trending project kits, discussions, tutorials & learning resources on kandi. - [Go Blog](https://blog.golang.org) - The official Go blog. - [Go Code Club](https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3) - A group of Gophers read and discuss a different Go project every week. - [Go Community on Hashnode](https://hashnode.com/n/go) - Community of Gophers on Hashnode. From 789af82584905481c736af79ce03fc03242e7b25 Mon Sep 17 00:00:00 2001 From: Ben Lechlitner <30903912+asphaltbuffet@users.noreply.github.com> Date: Tue, 1 Nov 2022 04:44:22 -0400 Subject: [PATCH 2915/3440] remove music-theory from Audio and Music (#4495) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 46bc2845301..d6b18913569 100644 --- a/README.md +++ b/README.md @@ -219,7 +219,6 @@ _Libraries for manipulating audio._ - [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go. - [malgo](https://github.com/gen2brain/malgo) - Mini audio library. - [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library. -- [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. - [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms. - [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. From 1e6d81257b88d9f553f1ab410905725b0634782e Mon Sep 17 00:00:00 2001 From: zc Date: Wed, 2 Nov 2022 21:37:28 +0800 Subject: [PATCH 2916/3440] Add swag to Third-party APIs (#4582) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d6b18913569..ee57aaa290c 100644 --- a/README.md +++ b/README.md @@ -2491,6 +2491,7 @@ _Libraries for accessing third party APIs._ - [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. +- [swag](https://github.com/zc2638/swag) - No comments, simple go wrapper to create swagger 2.0 compatible APIs. Support most routing frameworks, such as built-in, gin, chi, mux, echo, httprouter, fasthttp and more. - [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API. - [translate](https://github.com/poorny/translate) - Go online translation package. - [Trello](https://github.com/adlio/trello) - Go wrapper for the Trello API. From 8eccf5feaba38665105af724133ab3e7fc5afb5f Mon Sep 17 00:00:00 2001 From: Arthur Mingard Date: Tue, 8 Nov 2022 18:15:01 +0000 Subject: [PATCH 2917/3440] docs: add sitemap-format (#4591) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ee57aaa290c..1b92abfaa09 100644 --- a/README.md +++ b/README.md @@ -1716,6 +1716,7 @@ _These libraries were placed here because none of the other categories seemed to - [shellwords](https://github.com/Wing924/shellwords) - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. - [shortid](https://github.com/teris-io/shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. - [shoutrrr](https://github.com/containrrr/shoutrrr) - Notification library providing easy access to various messaging services like slack, mattermost, gotify and smtp among others. +- [sitemap-format](https://github.com/mingard/sitemap-format) - A simple sitemap generator, with a little syntactic sugar. - [stateless](https://github.com/qmuntal/stateless) - A fluent library for creating state machines. - [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... - [turtle](https://github.com/hackebrot/turtle) - Emojis for Go. From 1e52160458016940241037c517cd82810e386978 Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Fri, 11 Nov 2022 05:04:37 +0800 Subject: [PATCH 2918/3440] Update README.md (#4596) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1b92abfaa09..9e4696bd7b3 100644 --- a/README.md +++ b/README.md @@ -1975,6 +1975,7 @@ _Unofficial libraries for package and dependency management._ ## Performance +- [go-instrument](https://github.com/nikolaydubina/go-instrument) - Automatically add spans to all methods and functions. - [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. - [pixie](https://github.com/pixie-labs/pixie) - No instrumentation tracing for Golang applications via eBPF. - [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. From 1f0c3bacd49cbb79869152b628c47b822c41eca0 Mon Sep 17 00:00:00 2001 From: James Goodhouse Date: Fri, 11 Nov 2022 14:46:31 -0800 Subject: [PATCH 2919/3440] fix(GUI): update wails link (#4597) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9e4696bd7b3..26291f2e4dd 100644 --- a/README.md +++ b/README.md @@ -1256,7 +1256,7 @@ _Toolkits_ - [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). - [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. Cross platform. -- [Wails](https://wails.app) - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer. +- [Wails](https://wails.io) - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer. - [walk](https://github.com/lxn/walk) - Windows application library kit for Go. - [webview](https://github.com/zserge/webview) - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux). From c003607b9bb341d9ddb60056b3c2476125e22152 Mon Sep 17 00:00:00 2001 From: astrofra Date: Sat, 12 Nov 2022 05:52:48 +0100 Subject: [PATCH 2920/3440] Fixed the Harfang Go.dev URL (#4595) Fixed the Harfang Go.dev URL, missing HTTPS caused a 404 error. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 26291f2e4dd..bd642ed2e6d 100644 --- a/README.md +++ b/README.md @@ -1120,7 +1120,7 @@ _Awesome game development libraries._ - [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. - [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping. -- [Harfang3D](https://github.com/harfang3d/harfang3d) - 3D engine for the Go language, works on Windows and Linux ([Harfang on Go.dev](github.com/harfang3d/harfang-go)). +- [Harfang3D](https://github.com/harfang3d/harfang3d) - 3D engine for the Go language, works on Windows and Linux ([Harfang on Go.dev](https://github.com/harfang3d/harfang-go)). - [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. - [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework. - [Oak](https://github.com/oakmound/oak) - Pure Go game engine. From 8b2e556a6f8bb0c827ab3f220520fb62520d2ddd Mon Sep 17 00:00:00 2001 From: "B.E" Date: Tue, 15 Nov 2022 07:45:46 +0000 Subject: [PATCH 2921/3440] Add https://github.com/charmbracelet/bubbletea (#4601) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bd642ed2e6d..d66fe4b288a 100644 --- a/README.md +++ b/README.md @@ -330,6 +330,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. - [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that support fmt.Printf/Sprintf. - [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. +- [bubbletea](https://github.com/charmbracelet/bubbletea) - Go framework to build terminal apps, based on The Elm Architecture. - [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. - [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. - [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. From ec684ba3509abadd196d34bdaf20e232c1830c2a Mon Sep 17 00:00:00 2001 From: Oleg Kovalov Date: Tue, 15 Nov 2022 17:34:50 +0100 Subject: [PATCH 2922/3440] Add cristalhq/builq (#4602) * Add cristalhq/builq --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d66fe4b288a..85af55e0cef 100644 --- a/README.md +++ b/README.md @@ -744,6 +744,7 @@ _Libraries for building and using SQL._ - [bqb](https://github.com/nullism/bqb) - Lightweight and easy to learn query builder. - [buildsqlx](https://github.com/arthurkushman/buildsqlx) - Go database query builder library for PostgreSQL. +- [builq](https://github.com/cristalhq/builq) - Easily build SQL queries in Go. - [dbq](https://github.com/rocketlaunchr/dbq) - Zero boilerplate database operations for Go. - [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use them with ease. - [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder. From c21eea4a6022892cb739399e44191f6e71735df8 Mon Sep 17 00:00:00 2001 From: "B.E" Date: Wed, 23 Nov 2022 12:56:32 +0000 Subject: [PATCH 2923/3440] Add https://github.com/charmbracelet/lipgloss (#4603) --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 85af55e0cef..322d3a01902 100644 --- a/README.md +++ b/README.md @@ -345,6 +345,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. - [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. - [gookit/color](https://github.com/gookit/color) - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. +- [lipgloss](https://github.com/charmbracelet/lipgloss) - Declaratively define styles for color, format and layout in the terminal. - [marker](https://github.com/cyucelen/marker) - Easiest way to match and mark strings for colorful terminal outputs. - [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications. - [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS. @@ -651,7 +652,6 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [ttlcache](https://github.com/jellydator/ttlcache) - An in-memory cache with item expiration and generics. - [ttlcache](https://github.com/cheshir/ttlcache) - In-memory key value storage with TTL for each record. - ### Databases Implemented in Go - [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go. @@ -1122,7 +1122,7 @@ _Awesome game development libraries._ - [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. - [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping. -- [Harfang3D](https://github.com/harfang3d/harfang3d) - 3D engine for the Go language, works on Windows and Linux ([Harfang on Go.dev](https://github.com/harfang3d/harfang-go)). +- [Harfang3D](https://github.com/harfang3d/harfang3d) - 3D engine for the Go language, works on Windows and Linux ([Harfang on Go.dev](https://github.com/harfang3d/harfang-go)). - [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. - [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework. - [Oak](https://github.com/oakmound/oak) - Pure Go game engine. @@ -2833,7 +2833,6 @@ _Full stack web frameworks._ - [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler. - [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends. - #### Libraries for creating HTTP middlewares - [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. From a9ff89b3b4ebf16d948962db40f4772a925d64fa Mon Sep 17 00:00:00 2001 From: ka Date: Wed, 23 Nov 2022 14:00:18 +0100 Subject: [PATCH 2924/3440] Drop project that archived. (#4609) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 322d3a01902..426952516ae 100644 --- a/README.md +++ b/README.md @@ -1891,7 +1891,6 @@ _Libraries for making HTTP requests._ - [go-zoox/fetch](https://github.com/go-zoox/fetch) - A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API. - [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library. - [heimdall](https://github.com/gojektech/heimdall) - An enhanced http client with retry and hystrix capabilities. -- [httpc](https://github.com/valord577/httpc) - A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. - [httpretry](https://github.com/ybbus/httpretry) - Enriches the default go HTTP client with retry functionality. - [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. - [req](https://github.com/imroc/req) - Simple Go HTTP client with Black Magic (Less code and More efficiency). From 42ed0c948846ecbe5f1f5120863db52ebf755fbe Mon Sep 17 00:00:00 2001 From: Jeroen de Kok <4716348+jeroendk@users.noreply.github.com> Date: Fri, 25 Nov 2022 08:27:02 +0100 Subject: [PATCH 2925/3440] Update README.md (#4612) Add Golang Rotterdam Meetup --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 426952516ae..f45e894f795 100644 --- a/README.md +++ b/README.md @@ -3325,6 +3325,7 @@ _Where to discover new Go libraries._ - [Golang Paris](https://www.meetup.com/Golang-Paris/) - [Golang Poland](https://www.meetup.com/Golang-Poland/) - [Golang Pune](https://www.meetup.com/Golang-Pune/) +- [Golang Rotterdam](https://www.meetup.com/golang-rotterdam/) - [Golang Singapore](https://www.meetup.com/golangsg/) - [Golang Stockholm](https://www.meetup.com/Go-Stockholm/) - [Golang Sydney, AU](https://www.meetup.com/golang-syd/) From 6fc0e8fb9ff828f8e2967aeed2d060ebff280d9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lincoln=20J=C3=BAnior?= <99145408+lincolnjpg@users.noreply.github.com> Date: Mon, 28 Nov 2022 15:43:57 -0300 Subject: [PATCH 2926/3440] add google's go style guide (#4620) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f45e894f795..43d8e382b5e 100644 --- a/README.md +++ b/README.md @@ -3354,6 +3354,7 @@ _Where to discover new Go libraries._ - [bahlo/go-styleguide](https://github.com/bahlo/go-styleguide) - [CockroachDB](https://github.com/cockroachdb/cockroach/blob/master/docs/style.md) - [GitLab](https://docs.gitlab.com/ee/development/go_guide/) +- [Google](https://google.github.io/styleguide/go/) - [Hyperledger](https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/style-guides/go-style.rst) - [Magnetico](https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification) - [Sourcegraph](https://about.sourcegraph.com/handbook/engineering/go_style_guide) From 4b98322fb54d6dbe1ef2d48ef55a46744864b5fb Mon Sep 17 00:00:00 2001 From: Trent Millar Date: Sat, 3 Dec 2022 13:11:06 -0700 Subject: [PATCH 2927/3440] Adding - jwt-go (#4509) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 43d8e382b5e..cf5dc84679e 100644 --- a/README.md +++ b/README.md @@ -242,6 +242,7 @@ _Libraries for implementing authentication schemes._ - [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library. - [jwt](https://github.com/cristalhq/jwt) - Safe, simple, and fast JSON Web Tokens for Go. - [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. +- [jwt-go](https://github.com/golang-jwt/jwt) - A full featured implementation of JSON Web Tokens (JWT). This library supports the parsing and verification as well as the generation and signing of JWTs. - [keto](https://github.com/ory/keto) - Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models. - [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. - [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support. From 93ad73f19ef6d17c8211824f4e8728a657ea96a6 Mon Sep 17 00:00:00 2001 From: Thibault Hazelart Date: Sun, 18 Dec 2022 05:28:34 +0100 Subject: [PATCH 2928/3440] remove: terraform-validator (#4649) --- README.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index cf5dc84679e..118794595d1 100644 --- a/README.md +++ b/README.md @@ -634,7 +634,7 @@ additional ordered map implementations. _Data stores with expiring records, in-memory distributed data stores, or in-memory subsets of file-based databases._ - [2q](https://github.com/floatdrop/2q) - 2Q in-memory cache implementation. -- [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. +- [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library. - [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data. - [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. - [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. @@ -680,7 +680,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. - [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. - [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. -- [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. +- [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. - [objectbox-go](https://github.com/objectbox/objectbox-go) - High-performance embedded Object Database (NoSQL) with Go API. - [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. - [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. @@ -691,7 +691,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. - [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. - [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. -- [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. +- [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. - [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. - [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. @@ -709,7 +709,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [goose](https://github.com/pressly/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. - [gorm-seeder](https://github.com/Kachit/gorm-seeder) - Simple database seeder for Gorm ORM. - [gormigrate](https://github.com/go-gormigrate/gormigrate) - Database schema migration helper for Gorm ORM. -- [libschema](https://github.com/muir/libschema) - Define your migrations separately in each library. Migrations for open source libraries. MySQL & PostgreSQL. +- [libschema](https://github.com/muir/libschema) - Define your migrations separately in each library. Migrations for open source libraries. MySQL & PostgreSQL. - [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library. - [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library. - [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code. @@ -741,6 +741,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. ### SQL Query Builders + _Libraries for building and using SQL._ - [bqb](https://github.com/nullism/bqb) - Lightweight and easy to learn query builder. @@ -1039,7 +1040,7 @@ _Libraries for handling files and file systems._ - [pathtype](https://github.com/jonchun/pathtype) - Treat paths as their own type instead of using strings. - [pdfcpu](https://github.com/pdfcpu/pdfcpu) - PDF processor. - [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. -- [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. +- [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. - [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. - [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [_todo.txt_](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [_todo.txt_ format](https://github.com/todotxt/todo.txt). - [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. @@ -1473,7 +1474,7 @@ _Libraries for generating and working with log files._ - [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. - [slog](https://github.com/gookit/slog) - Lightweight, configurable, extensible logger for Go. - [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. -- [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage. +- [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing \*sql.DB stdlib usage. - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. - [structy/log](https://github.com/structy/log) - A simple to use log system, minimalist but with features for debugging and differentiation of messages. - [tail](https://github.com/hpcloud/tail) - Go package striving to emulate the features of the BSD tail program. @@ -1779,7 +1780,7 @@ See also [Text Processing](#text-processing) and [Text Analysis](#text-analysis) - [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm. - [prose](https://github.com/jdkato/prose) - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only. - [segment](https://github.com/blevesearch/segment) - Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/) -- [sentences](https://github.com/neurosnap/sentences) - Sentence tokenizer: converts text into a list of sentences. +- [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. - [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. @@ -2092,7 +2093,7 @@ _Libraries that are used to help make your application more secure._ - [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. - [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. - [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. -- [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std* etc. +- [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std\* etc. - [secure](https://github.com/unrolled/secure) - HTTP middleware for Go that facilitates some quick security wins. - [secureio](https://github.com/xaionaro-go/secureio) - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519. - [simple-scrypt](https://github.com/elithrar/simple-scrypt) - Scrypt package with a simple, obvious API and automatic cost calibration built-in. @@ -2204,6 +2205,7 @@ _Libraries and tools for templating and lexing._ _Libraries for testing codebases and generating test data._ - Testing Frameworks + - [apitest](https://apitest.dev) - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams. - [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. @@ -2269,6 +2271,7 @@ _Libraries for testing codebases and generating test data._ - [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. - [genmock](https://gitlab.com/so_literate/genmock) - Go mocking system with code generator for building calls of the interface methods. - [go-localstack](https://github.com/elgohr/go-localstack) - Tool for using localstack in AWS testing. @@ -2287,11 +2290,13 @@ _Libraries for testing codebases and generating test data._ - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. - 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. + - [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. - [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. @@ -2620,7 +2625,7 @@ _General utilities and tools to make your life easier._ - [minquery](https://github.com/icza/minquery) - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off). - [moldova](https://github.com/StabbyCutyou/moldova) - Utility for generating random data based on an input template. - [mole](https://github.com/davrodpin/mole) - cli app to easily create ssh tunnels. -- [mongo-go-pagination](https://github.com/gobeam/mongo-go-pagination) - Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines. +- [mongo-go-pagination](https://github.com/gobeam/mongo-go-pagination) - Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines. - [mssqlx](https://github.com/linxGnu/mssqlx) - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind. - [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers. - [myhttp](https://github.com/inancgumus/myhttp) - Simple API to make HTTP GET requests with timeout support. @@ -2712,7 +2717,6 @@ _Libraries for validation._ - [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. - [jio](https://github.com/faceair/jio) - jio is a json schema validator similar to [joi](https://github.com/hapijs/joi). - [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. -- [terraform-validator](https://github.com/thazelart/terraform-validator) - A norms and conventions validator for Terraform. - [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. - [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications. - [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. @@ -3346,7 +3350,7 @@ _Where to discover new Go libraries._ - [Utah Go User Group](https://www.meetup.com/utahgophers/) - [Women Who Go - San Francisco, CA](https://www.meetup.com/Women-Who-Go/) -*Add the group of your city/country here (send **PR**)* +_Add the group of your city/country here (send **PR**)_ **[⬆ back to top](#contents)** @@ -3415,7 +3419,7 @@ _Where to discover new Go libraries._ - [Gophercises](https://gophercises.com/) - Free coding exercises for budding gophers. - [gowalker.org](https://gowalker.org) - Go Project API documentation. - [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. -- [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). +- [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). - [Learn Go Programming](https://blog.learngoprogramming.com) - Learn Go concepts with illustrations. - [Made with Golang](https://madewithgolang.com/?ref=awesome-go) - [r/Golang](https://www.reddit.com/r/golang) - News about Go. From 794bc34593a258afd63e8d3eecef51f0687e5516 Mon Sep 17 00:00:00 2001 From: Wu Tingfeng Date: Thu, 22 Dec 2022 03:10:27 +0800 Subject: [PATCH 2929/3440] Update go-fasttld description (#4656) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 118794595d1..2415489c5f7 100644 --- a/README.md +++ b/README.md @@ -2349,7 +2349,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [doi](https://github.com/hscells/doi) - Document object identifier (doi) parser in Go. - [editorconfig-core-go](https://github.com/editorconfig/editorconfig-core-go) - Editorconfig file parser and manipulator for Go. - [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decoders. -- [go-fasttld](https://github.com/elliotwutingfeng/go-fasttld) - High performance top level domains (TLD) extraction module. +- [go-fasttld](https://github.com/elliotwutingfeng/go-fasttld) - High performance effective top level domains (eTLD) extraction module. - [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. - [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. From 4fced54b267489ccbc55e05a0b9662fd7f1ec985 Mon Sep 17 00:00:00 2001 From: Joseph Gilley Date: Wed, 28 Dec 2022 18:07:11 -0800 Subject: [PATCH 2930/3440] fix link to h3-go entry (#4665) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2415489c5f7..df67829c9e1 100644 --- a/README.md +++ b/README.md @@ -1162,7 +1162,7 @@ _Geographic tools and servers_ - [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. - [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver. - [godal](https://github.com/airbusgeo/godal) - Go wrapper for GDAL. -- [h3-go] - Go bindings for H3, a hierarchical hexagonal geospatial indexing system. +- [H3](https://github.com/uber/h3-go) - Go bindings for H3, a hierarchical hexagonal geospatial indexing system. - [H3 GeoJSON](https://github.com/mmadfox/go-geojson2h3) - Conversion utilities between H3 indexes and GeoJSON. - [H3GeoDist](https://github.com/mmadfox/go-h3geo-dist) - Distribution of Uber H3geo cells by virtual nodes. - [mbtileserver](https://github.com/consbio/mbtileserver) - A simple Go-based server for map tiles stored in mbtiles format. From 4179b58567b77b2b6e2fe37b7b63e49dc97a4de4 Mon Sep 17 00:00:00 2001 From: Khafid Prayoga Date: Sat, 7 Jan 2023 01:48:42 +0700 Subject: [PATCH 2931/3440] add conc (#4675) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index df67829c9e1..0cfe9ebf689 100644 --- a/README.md +++ b/README.md @@ -1201,6 +1201,7 @@ _Tools for managing and working with Goroutines._ - [async-job](https://github.com/lab210-dev/async-job) - AsyncJob is an asynchronous queue job manager with light code, clear and speed. - [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. - [channelify](https://github.com/ddelizia/channelify) - Transform your function to return channels for easy and powerful parallel processing. +- [conc](https://github.com/sourcegraph/conc) - `conc` is your toolbelt for structured concurrency in go, making common tasks easier and safer. - [concurrency-limiter](https://github.com/vivek-ng/concurrency-limiter) - Concurrency limiter with support for timeouts , dynamic priority and context cancellation of goroutines. - [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. - [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. From e221234703faccacbcbc6bd9612ee220c1a0acab Mon Sep 17 00:00:00 2001 From: Bray Almini Date: Sat, 7 Jan 2023 14:53:42 -0800 Subject: [PATCH 2932/3440] Add go-survey/survey (#4676) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0cfe9ebf689..55e7c5a9704 100644 --- a/README.md +++ b/README.md @@ -412,6 +412,7 @@ _Libraries for building standard or basic Command Line applications._ - [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries. - [strumt](https://github.com/antham/strumt) - Library to create prompt chain. - [subcmd](https://github.com/bobg/subcmd) - Another approach to parsing and running subcommands. Works alongside the standard `flag` package. +- [survey](https://github.com/go-survey/survey) - Build interactive and accessible prompts with full support for windows and posix terminals. - [ts](https://github.com/liujianping/ts) - Timestamp convert & compare tool. - [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. - [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). From bd11e74d36c9820a66caba17b2039565cbd1af91 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 12 Jan 2023 22:24:01 -0300 Subject: [PATCH 2933/3440] pr template: remove gocover.io ref: https://github.com/vieux/gocover.io/commit/6ef5fb11adef14bff5a513a52492ec8fc77927aa --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1b75643ec62..72e891bfefe 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,7 +5,7 @@ - repo link (github.com, gitlab.com, etc): - pkg.go.dev: - goreportcard.com: -- coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), [gocover](http://gocover.io/) etc.): +- coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), etc.): **Note**: _that new categories can be added only when there are 3 packages or more._ From 103b68ec94172ad1b3c20a92ef45fae1479c8e5f Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 12 Jan 2023 22:25:38 -0300 Subject: [PATCH 2934/3440] remove gocover.io ref: https://github.com/vieux/gocover.io/commit/6ef5fb11adef14bff5a513a52492ec8fc77927aa --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 55e7c5a9704..99aed7e3e46 100644 --- a/README.md +++ b/README.md @@ -2944,7 +2944,6 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [go-mod-outdated](https://github.com/psampaz/go-mod-outdated) - An easy way to find outdated dependencies of your Go projects. - [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. - [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. -- [GoCover.io](https://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. - [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. - [golang-ifood-sdk](https://github.com/arxdsilva/golang-ifood-sdk) - iFood API SDK. - [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. From 6e8440925fc618316a2b88a7552726dd2f561759 Mon Sep 17 00:00:00 2001 From: oussama02 Date: Sat, 8 Oct 2022 11:05:17 +0200 Subject: [PATCH 2935/3440] Adding favicon, android-chrome and apple-touch icons, also the manifest.json file --- .../assets/favicon/android-chrome-192x192.png | Bin 0 -> 39436 bytes .../assets/favicon/android-chrome-512x512.png | Bin 0 -> 175483 bytes tmpl/assets/favicon/apple-touch-icon.png | Bin 0 -> 35655 bytes tmpl/assets/favicon/favicon.ico | Bin 0 -> 15406 bytes tmpl/assets/favicon/manifest.json | 19 ++++++++++++++++++ tmpl/cat-tmpl.html | 6 ++++++ tmpl/tmpl.html | 6 ++++++ 7 files changed, 31 insertions(+) create mode 100644 tmpl/assets/favicon/android-chrome-192x192.png create mode 100644 tmpl/assets/favicon/android-chrome-512x512.png create mode 100644 tmpl/assets/favicon/apple-touch-icon.png create mode 100644 tmpl/assets/favicon/favicon.ico create mode 100644 tmpl/assets/favicon/manifest.json diff --git a/tmpl/assets/favicon/android-chrome-192x192.png b/tmpl/assets/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..9596cfcbc6b28695e0eda35785df34d21e8b0e15 GIT binary patch literal 39436 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%0A4^1qSgL5Gb& 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 z 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

|&3f_Zx_9Cgyi9gjRvQ%aZg&z`*QBjM^ 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

@?$N5N+1%S0+1>SNhWQgn*9zuV1#YvH_;Z#w%(1 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%0Du4itX;fTxx0HIydT11i))AmbS%2m-93z4H*`Dx z1m7x`lQE7tmj5k)78fUYXICC_PEL-zsi}#%w8>M5L}KdqXu*upADK8);^jAP8vyF}6raSh^a($@zuiQx?FA<0b8z>cW@&MpAZ zb&Yf9&Xw)lxf9? z9D?#xQc@B*_C%=BKwfLVp8J0@p!;>AzCYP_V+Q^o+i^SX82akS00000NkvXXu0mjf D*BR2v literal 0 HcmV?d00001 diff --git a/tmpl/assets/favicon/favicon.ico b/tmpl/assets/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1eba1ab979e0fb39d5d8412882e00d8daad78a4a GIT binary patch literal 15406 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 literal 0 HcmV?d00001 diff --git a/tmpl/assets/favicon/manifest.json b/tmpl/assets/favicon/manifest.json new file mode 100644 index 00000000000..2d423ac6598 --- /dev/null +++ b/tmpl/assets/favicon/manifest.json @@ -0,0 +1,19 @@ +{ + "name": "Awesome Go", + "short_name": "Awesome-Go", + "icons": [ + { + "src": "./android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "./android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index aede5c619be..63d53064363 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -21,6 +21,12 @@ + + + + + + diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index dcc35c8c746..3a87a1553ef 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -21,6 +21,12 @@ + + + + + + From 53e0b8e303be3f04212f65009c7eae3ef2b33660 Mon Sep 17 00:00:00 2001 From: Dwi Siswanto Date: Tue, 17 Jan 2023 14:02:39 +0700 Subject: [PATCH 2936/3440] add teler-waf (#4701) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 99aed7e3e46..b31798469d6 100644 --- a/README.md +++ b/README.md @@ -2101,6 +2101,7 @@ _Libraries that are used to help make your application more secure._ - [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. - [sslmgr](https://github.com/adrianosela/sslmgr) - SSL certificates made easy with a high level wrapper around acme/autocert. +- [teler-waf](https://github.com/kitabisa/teler-waf) - teler-waf is a Go HTTP middleware that provide teler IDS functionality to protect against web-based attacks and improve the security of Go-based web applications. It is highly configurable and easy to integrate into existing Go applications. - [themis](https://github.com/cossacklabs/themis) - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps. **[⬆ back to top](#contents)** From 6771a102fe7ff1cb4479573358c8168daaf5bedd Mon Sep 17 00:00:00 2001 From: Ochi Daiki Date: Sat, 21 Jan 2023 16:58:48 +0900 Subject: [PATCH 2937/3440] update ddddddO/gtree (#4677) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b31798469d6..127c38fc768 100644 --- a/README.md +++ b/README.md @@ -1704,7 +1704,7 @@ _These libraries were placed here because none of the other categories seemed to - [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. - [gotoprom](https://github.com/cabify/gotoprom) - Type-safe metrics builder wrapper library for the official Prometheus client. - [gountries](https://github.com/pariz/gountries) - Package that exposes country and subdivision data. -- [gtree](https://github.com/ddddddO/gtree) - Provide CLI and Package for tree output and directories creation from Markdown or programmatically. +- [gtree](https://github.com/ddddddO/gtree) - Provide CLI, Package and Web for tree output and directories creation from Markdown or programmatically. - [health](https://github.com/alexliesenfeld/health) - A simple and flexible health check library for Go. - [health](https://github.com/dimiro1/health) - Easy to use, extensible health check library. - [healthcheck](https://github.com/etherlabsio/healthcheck) - An opinionated and concurrent health-check HTTP handler for RESTful services. From f6974df413ea1e57aa202f4b9ad89a492377ade3 Mon Sep 17 00:00:00 2001 From: Ollie Phillips Date: Fri, 3 Feb 2023 09:22:23 +0000 Subject: [PATCH 2938/3440] Add 'Go Faster' book to ebooks (paid) section (#4644) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 127c38fc768..71f9923067a 100644 --- a/README.md +++ b/README.md @@ -3243,6 +3243,7 @@ _Where to discover new Go libraries._ - [Creative DIY Microcontroller Project With TinyGo and WebAssembly](https://www.packtpub.com/product/creative-diy-microcontroller-projects-with-tinygo-and-webassembly/9781800560208) - An introduction into the TinyGo compiler with projects involving Arduino and WebAssembly. - [Effective Go: Elegant, efficient, and testable code](https://www.manning.com/books/effective-go) - Unlock Go’s unique perspective on program design, and start writing simple, maintainable, and testable Go code. - [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. +- [Go Faster](https://leanpub.com/gofaster) - This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster. - [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - A guide to understanding and using generics in Go. - [The Power of Go: Tests](https://bitfieldconsulting.com/books/tests) - A guide to testing in Go. - [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) - A guide to writing command-line tools in Go. From 4184768ed07ec8afa166ce040f8d181044e47e3c Mon Sep 17 00:00:00 2001 From: dmitrij-onoffapp Date: Sat, 4 Feb 2023 19:06:54 +0200 Subject: [PATCH 2939/3440] remove gohooks (#4708) Co-authored-by: Dmytro Skliarov --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 71f9923067a..949228e396d 100644 --- a/README.md +++ b/README.md @@ -1837,7 +1837,6 @@ _Libraries for working with various layers of the network._ - [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. - [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. -- [gohooks](https://github.com/averageflow/gohooks) - GoHooks make it easy to send and consume secured web-hooks from a Go application. Inspired by Spatie's Laravel Webhook Client and Server. - [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. From 62dcc19d12352cebb3a34762368024bcd964dccb Mon Sep 17 00:00:00 2001 From: Gaius Date: Mon, 6 Feb 2023 05:27:00 +0800 Subject: [PATCH 2940/3440] docs: add dragonfly to distributed systems (#4707) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 949228e396d..7ee6e6805ef 100644 --- a/README.md +++ b/README.md @@ -882,6 +882,7 @@ _Packages that help with building Distributed Systems._ - [dot](https://github.com/dotchain/dot/) - distributed sync using operational transformation/OT. - [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash. - [dragonboat](https://github.com/lni/dragonboat) - A feature complete and high performance multi-group Raft library in Go. +- [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology to be the best practice and standard solution in cloud native architectures. - [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. - [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation. - [dynatomic](https://github.com/tylfin/dynatomic) - A library for using DynamoDB as an atomic counter. From e8e1bd93774cf700832b521ae12b2d47a5b6cca5 Mon Sep 17 00:00:00 2001 From: Endre Simo Date: Thu, 9 Feb 2023 20:03:48 +0200 Subject: [PATCH 2941/3440] doc: add gogu to utility function libraries (#4741) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ee6e6805ef..115e74fdf91 100644 --- a/README.md +++ b/README.md @@ -571,6 +571,7 @@ additional ordered map implementations. - [go-tuple](https://github.com/barweiss/go-tuple) - Generic tuple implementation for Go 1.18+. - [go18ds](https://github.com/daichi-m/go18ds) - Go Data Structures using Go 1.18 generics. - [gofal](https://github.com/xxjwxc/gofal) - fractional api for Go. +- [gogu](https://github.com/esimov/gogu) - A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library. - [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go. - [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. - [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. From 12c9780310912a8fb4f62b82e6cb32167d25d6fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Miranda?= Date: Sat, 11 Feb 2023 06:10:53 +0000 Subject: [PATCH 2942/3440] add ebook: lets-go (#4716) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 115e74fdf91..b00549691ee 100644 --- a/README.md +++ b/README.md @@ -3246,6 +3246,7 @@ _Where to discover new Go libraries._ - [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. - [Go Faster](https://leanpub.com/gofaster) - This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster. - [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - A guide to understanding and using generics in Go. +- [Lets-Go](https://lets-go.alexedwards.net) - A step-by-step guide to creating fast, secure and maintanable web applications with Go. - [The Power of Go: Tests](https://bitfieldconsulting.com/books/tests) - A guide to testing in Go. - [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) - A guide to writing command-line tools in Go. - [Writing A Compiler In Go](https://compilerbook.com) From fb45779c402e2c483e1869e8c0bbd7b32ac3558f Mon Sep 17 00:00:00 2001 From: Ilia Sergunin Date: Sun, 12 Feb 2023 13:50:21 +0300 Subject: [PATCH 2943/3440] add trm (#4614) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b00549691ee..0ef8a3fbd8c 100644 --- a/README.md +++ b/README.md @@ -778,6 +778,7 @@ _Libraries for building and using SQL._ - [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. +- [go-transaction-manager](https://github.com/avito-tech/go-transaction-manager) - Transaction manager with multiple adapters (sql, sqlx, gorm, mongo, ...) controls transaction boundaries. - [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more). ### Relational Database Drivers From a4bdbb9dc90f83743371169f0378f1377776f029 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Sat, 18 Feb 2023 18:14:45 +0530 Subject: [PATCH 2944/3440] diff: remove --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0ef8a3fbd8c..965d8ffd221 100644 --- a/README.md +++ b/README.md @@ -2222,7 +2222,6 @@ _Libraries for testing codebases and generating test data._ - [covergates](https://github.com/covergates/covergates) - Self-hosted code coverage report review and management service. - [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. - - [diff](https://github.com/terrastruct/diff) - Beautiful Git-style diffs to easily compare expected vs actual. - [dsunit](https://github.com/viant/dsunit) - Datastore testing for SQL, NoSQL, structured files. - [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. - [endly](https://github.com/viant/endly) - Declarative end to end functional testing. From 3abad26f2b05cbc96995b9d012dd936c54be460b Mon Sep 17 00:00:00 2001 From: frederikhors <41120635+frederikhors@users.noreply.github.com> Date: Sun, 19 Feb 2023 18:29:44 +0100 Subject: [PATCH 2945/3440] add watermill (#4179) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 965d8ffd221..ee491b50ccb 100644 --- a/README.md +++ b/README.md @@ -1594,6 +1594,7 @@ _Libraries that implement messaging systems._ - [rmqconn](https://github.com/sbabiv/rmqconn) - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed. - [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. +- [Watermill](https://github.com/ThreeDotsLabs/watermill) - Working efficiently with message streams. Building event driven applications, enabling event sourcing, RPC over messages, sagas. Can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog. - [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). **[⬆ back to top](#contents)** From 7538ef76acd7d699c4df94b077221b71350482c0 Mon Sep 17 00:00:00 2001 From: Edwin Date: Mon, 20 Feb 2023 01:30:54 +0800 Subject: [PATCH 2946/3440] wuid: update description (#4757) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee491b50ccb..df2459e92e4 100644 --- a/README.md +++ b/README.md @@ -2706,7 +2706,7 @@ _Libraries for working with UUIDs._ - [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. - [uuid](https://github.com/gofrs/uuid) - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid. - [uuid](https://github.com/google/uuid) - Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. -- [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID. +- [wuid](https://github.com/edwingeng/wuid) - An extremely fast globally unique number generator. - [xid](https://github.com/rs/xid) - Xid is a globally unique id generator library, ready to be safely used directly in your server code. **[⬆ back to top](#contents)** From 435857e2e31ad5398b2eae64f65b8309f65971af Mon Sep 17 00:00:00 2001 From: Edwin Date: Mon, 20 Feb 2023 01:32:11 +0800 Subject: [PATCH 2947/3440] add github.com/edwingeng/hotswap (#4758) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index df2459e92e4..801e2a9c667 100644 --- a/README.md +++ b/README.md @@ -3147,6 +3147,7 @@ _Software written in Go._ - [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. - [Guora](https://github.com/meloalright/guora) - A self-hosted Quora like web application written in Go. - [hoofli](https://github.com/dnnrly/hoofli) - Generate PlantUML diagrams from Chrome or Firefox network inspections. +- [hotswap](https://github.com/edwingeng/hotswap) - A complete solution to reload your go code without restarting your server, interrupting or blocking any ongoing procedure. - [hugo](https://gohugo.io/) - Fast and Modern Static Website Engine. - [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. - [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. From 8b79940d74d2522359cd1c58fd85639cdea48885 Mon Sep 17 00:00:00 2001 From: Jonathan Hall Date: Sun, 19 Feb 2023 18:34:04 +0100 Subject: [PATCH 2948/3440] kivik: mv to nosql (#4729) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 801e2a9c667..99131331d19 100644 --- a/README.md +++ b/README.md @@ -793,7 +793,6 @@ _Libraries for building and using SQL._ - [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql. - [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver. - [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org). -- [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. - [KSQL](https://github.com/VinGarcia/ksql) - A Simple and Powerful Golang SQL Library - [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. - [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. @@ -819,6 +818,7 @@ _Libraries for building and using SQL._ - [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. +- [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. - [mgm](https://github.com/kamva/mgm) - MongoDB model-based ODM for Go (based on official MongoDB driver). - [mgo](https://github.com/globalsign/mgo) - (unmaintained) 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. - [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. From 3fd7e9715113f72b1cabb80a9159748c64d908b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Sun, 19 Feb 2023 18:38:25 +0100 Subject: [PATCH 2949/3440] docs: add Testcontainers for Go (#4730) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 99131331d19..d4d3ccd8b0f 100644 --- a/README.md +++ b/README.md @@ -2266,6 +2266,7 @@ _Libraries for testing codebases and generating test data._ - [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. - [stop-and-go](https://github.com/elgohr/stop-and-go) - Testing helper for concurrency. - [testcase](https://github.com/adamluzsi/testcase) - Idiomatic testing framework for Behavior Driven Development. + - [testcontainers-go](https://github.com/testcontainers/testcontainers-go) - A Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done. - [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. - [testmd](https://godoc.org/github.com/tvastar/test/cmd/testmd) - Convert markdown snippets into testable go code. From da6175484fe1e713fdcb7dfb3aef53fd0b974b36 Mon Sep 17 00:00:00 2001 From: Joe Davidson Date: Mon, 20 Feb 2023 04:33:50 +0000 Subject: [PATCH 2950/3440] add xc (#4720) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d4d3ccd8b0f..a7c1e901dbd 100644 --- a/README.md +++ b/README.md @@ -319,6 +319,7 @@ _Libraries and tools help with build automation._ - [realize](https://github.com/tockins/realize) - Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths. - [Task](https://github.com/go-task/task) - simple "Make" alternative. - [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner. +- [xc](https://github.com/joerdav/xc) - Task runner with README.md defined tasks, executable markdown. **[⬆ back to top](#contents)** From 5ee1c3fb525064d7bbbb8f6b72522154be7d3949 Mon Sep 17 00:00:00 2001 From: Julian Li Date: Mon, 20 Feb 2023 15:40:04 +1100 Subject: [PATCH 2951/3440] add onedump (#4700) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a7c1e901dbd..6e703508854 100644 --- a/README.md +++ b/README.md @@ -734,6 +734,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. - [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. - [octillery](https://github.com/knocknote/octillery) - Go package for sharding databases ( Supports every ORM or raw SQL ). +- [onedump](https://github.com/liweiyi88/onedump) - Database backup from different drivers to different destinations with one command and configuration. - [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer. - [pg_timetable](https://github.com/cybertec-postgresql/pg_timetable) - Advanced scheduling for PostgreSQL. - [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. From 97e89489c97b9fbe51e3a785565f795b93efada3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Miranda?= Date: Mon, 20 Feb 2023 04:52:24 +0000 Subject: [PATCH 2952/3440] add paid ebook let's-go-further (#4742) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6e703508854..568ebccfba6 100644 --- a/README.md +++ b/README.md @@ -3252,6 +3252,7 @@ _Where to discover new Go libraries._ - [Go Faster](https://leanpub.com/gofaster) - This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster. - [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - A guide to understanding and using generics in Go. - [Lets-Go](https://lets-go.alexedwards.net) - A step-by-step guide to creating fast, secure and maintanable web applications with Go. +- [Lets-Go-Further](https://lets-go-further.alexedwards.net) - Advanced patterns for building APIs and web applications in Go. - [The Power of Go: Tests](https://bitfieldconsulting.com/books/tests) - A guide to testing in Go. - [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) - A guide to writing command-line tools in Go. - [Writing A Compiler In Go](https://compilerbook.com) From 7f69f7d83ca9e3bfbee22686fb1441a7fc2dba96 Mon Sep 17 00:00:00 2001 From: Barnaby Keene Date: Mon, 20 Feb 2023 06:06:31 +0100 Subject: [PATCH 2953/3440] add fault (#4721) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 568ebccfba6..2c495963916 100644 --- a/README.md +++ b/README.md @@ -1016,6 +1016,7 @@ _Libraries for handling errors._ - [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. - [exception](https://github.com/rbrahul/exception) - A simple utility package for exception handling with try-catch in Golang. - [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. +- [Fault](https://github.com/Southclaws/fault) - An ergonomic mechanism for wrapping errors in order to facilitate structured metadata and context for error values. - [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. - [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. From ca83e468b7674fb3ddb9472eb8fa6de1347bbfee Mon Sep 17 00:00:00 2001 From: Andrew Privalov Date: Mon, 20 Feb 2023 08:09:17 +0300 Subject: [PATCH 2954/3440] add go-telegram/bot to Bot Building section (#4709) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c495963916..8ce4538a1a5 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ _Tools for building blockchains._ _Libraries for building and working with bots._ +- [bot](https://github.com/go-telegram/bot) - Zero-dependencies Telegram Bot library with additional UI components - [echotron](https://github.com/NicoNex/echotron) - An elegant and concurrent library for Telegram Bots in Go. - [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence. - [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. From b801ffeefe8eb284276157206515aaa7a506e90e Mon Sep 17 00:00:00 2001 From: Anatol Pomozov Date: Sun, 19 Feb 2023 23:57:04 -0800 Subject: [PATCH 2955/3440] add booster (#4719) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ce4538a1a5..377951d467f 100644 --- a/README.md +++ b/README.md @@ -2084,6 +2084,7 @@ _Libraries that are used to help make your application more secure._ - [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. - [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. - [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. +- [booster](https://github.com/anatol/booster) - Fast initramfs generator with full-disk encryption support. - [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. - [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. - [CertMagic](https://github.com/caddyserver/certmagic) - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal. From d07d32c16c7615179edaf69145b31e0f70e53fe3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Feb 2023 07:05:10 +0000 Subject: [PATCH 2956/3440] Bump golang.org/x/text from 0.3.6 to 0.3.8 Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.6 to 0.3.8. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.3.6...v0.3.8) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 6dbeadfcb27..8ec13b7d6f7 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/andybalholm/cascadia v1.3.1 // indirect github.com/golang/protobuf v1.4.2 // indirect golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 // indirect - golang.org/x/text v0.3.6 // indirect + golang.org/x/text v0.3.8 // indirect google.golang.org/appengine v1.6.6 // indirect google.golang.org/protobuf v1.25.0 // indirect ) diff --git a/go.sum b/go.sum index df7d0ed4737..f68b24a98c0 100644 --- a/go.sum +++ b/go.sum @@ -129,6 +129,7 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -159,6 +160,7 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -185,8 +187,11 @@ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 h1:/6y1LfuqNuQdHAm0jjtPtgRcxIxjVZgm5OTu8/QhZvk= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -202,6 +207,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -229,14 +235,20 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -280,6 +292,7 @@ golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From b34da59923f582b52a956cd4c8603ed80ed4c469 Mon Sep 17 00:00:00 2001 From: ka Date: Thu, 23 Feb 2023 23:45:22 +0100 Subject: [PATCH 2957/3440] Link does not available. Domain on sale Domain golangbootcamp.com on parking --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 377951d467f..64eacbf2dfe 100644 --- a/README.md +++ b/README.md @@ -3269,7 +3269,6 @@ _Where to discover new Go libraries._ - [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) - [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. - [Go AST Book (Chinese)](https://github.com/chai2010/go-ast-book) - A book focusing on Go `go/*` packages. -- [Go Bootcamp](http://golangbootcamp.com) - [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. - [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. - [How To Code in Go eBook](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) - A 600 page introduction to Go aimed at first time developers. From 80b5ff4e67e38056efc47c8ba342ba44d785abf8 Mon Sep 17 00:00:00 2001 From: Adrian Macneil Date: Tue, 28 Feb 2023 12:05:58 -0800 Subject: [PATCH 2958/3440] add dbmate (#4775) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 64eacbf2dfe..2722be78f95 100644 --- a/README.md +++ b/README.md @@ -705,6 +705,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes. - [bytebase](https://github.com/bytebase/bytebase) - Safe database schema change and version control for DevOps teams. - [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go. +- [dbmate](https://github.com/amacneil/dbmate) - A lightweight, framework-agnostic database migration tool. - [go-fixtures](https://github.com/RichardKnop/go-fixtures) - Django style fixtures for Golang's excellent built-in database/sql library. - [go-pg-migrate](https://github.com/lawzava/go-pg-migrate) - CLI-friendly package for go-pg migrations management. - [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg. From fa6474a45f33988d5c70022d78fe0334c2fbe2aa Mon Sep 17 00:00:00 2001 From: Abhishek Somani Date: Mon, 6 Mar 2023 00:45:37 +0530 Subject: [PATCH 2959/3440] Add go-palette --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2722be78f95..0cfde32d6a3 100644 --- a/README.md +++ b/README.md @@ -344,6 +344,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. - [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. - [go-isatty](https://github.com/mattn/go-isatty) - isatty for golang. +- [go-palette](https://github.com/abusomani/go-palette) - Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible & wraps the [fmt library](https://pkg.go.dev/fmt) for nice terminal layouts. - [go-prompt](https://github.com/c-bata/go-prompt) - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit). - [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. - [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. From a11143c2f72fd921781cdf7905ec9efaf6dbd994 Mon Sep 17 00:00:00 2001 From: Hiromu OCHIAI Date: Mon, 6 Mar 2023 21:27:57 +0900 Subject: [PATCH 2960/3440] Add openaigo (#4777) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0cfde32d6a3..87611de1aec 100644 --- a/README.md +++ b/README.md @@ -2500,6 +2500,7 @@ _Libraries for accessing third party APIs._ - [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. - [newsapi-go](https://github.com/jellydator/newsapi-go) - Go client for [NewsAPI](https://newsapi.org/). +- [openaigo](https://github.com/otiai10/openaigo) - OpenAI GPT3/GPT3.5 ChatGPT API client library for Go. - [patreon-go](https://github.com/mxpv/patreon-go) - Go library for Patreon API. - [paypal](https://github.com/logpacker/PayPal-Go-SDK) - Wrapper for PayPal payment API. - [playlyfe](https://github.com/playlyfe/playlyfe-go-sdk) - The Playlyfe Rest API Go SDK. From cf98682a3a87a8edf17c8d0293effd4a5cea7df4 Mon Sep 17 00:00:00 2001 From: Abhishek Somani Date: Thu, 9 Mar 2023 16:04:04 +0530 Subject: [PATCH 2961/3440] Add jsonhandlers --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87611de1aec..8ae436c8c5e 100644 --- a/README.md +++ b/README.md @@ -1422,6 +1422,7 @@ _Libraries for working with JSON._ - [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. - [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. +- [jsonhandlers](https://github.com/abusomani/jsonhandlers) - JSON library to expose simple handlers that lets you easily read and write json from various sources. - [jsonic](https://github.com/sinhashubham95/jsonic) - Utilities to handle and query JSON without defining structs in a type safe manner. - [jzon](https://github.com/zerosnake0/jzon) - JSON library with standard compatible API/behavior. - [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. From c057f9e68b87d02f2dc69a2844634aec0aeda09e Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 12 Mar 2023 10:14:07 +0100 Subject: [PATCH 2962/3440] added kazhuravlev/options-gen (#4793) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ae436c8c5e..b2d97ef133d 100644 --- a/README.md +++ b/README.md @@ -3011,6 +3011,7 @@ _Plugin for text editors and IDEs._ - [gotests](https://github.com/cweill/gotests) - Generate Go tests from your source code. - [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. - [hasgo](https://github.com/DylanMeeus/hasgo) - Generate Haskell inspired functions for your slices. +- [options-gen](https://github.com/kazhuravlev/options-gen) - Functional options described by Dave Cheney's post "Functional options for friendly APIs". - [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. - [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly. - [xgen](https://github.com/xuri/xgen) - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator. From b953426f06ba69be727db53506e70e324381d84a Mon Sep 17 00:00:00 2001 From: sashabaranov <677093+sashabaranov@users.noreply.github.com> Date: Mon, 13 Mar 2023 21:53:28 +0400 Subject: [PATCH 2963/3440] add go-openai (#4787) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b2d97ef133d..24fb2712418 100644 --- a/README.md +++ b/README.md @@ -2460,6 +2460,7 @@ _Libraries for accessing third party APIs._ - [go-lark](https://github.com/go-lark/lark) - An easy-to-use unofficial SDK for [Feishu](https://open.feishu.cn/) and [Lark](https://open.larksuite.com/) Open Platform. - [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](https://myanimelist.net/apiconfig/references/api/v2). +- [go-openai](https://github.com/sashabaranov/go-openai) - OpenAI ChatGPT, DALL·E, Whisper API library for Go. - [go-openproject](https://github.com/manuelbcd/go-openproject) - Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API. - [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). - [go-restcountries](https://github.com/chriscross0/go-restcountries) - Go library for the [REST Countries API](https://countrylayer.com/). From dbf6c9e0105547df16db41b9d80e24ce5e8ef9ac Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 07:42:41 -0300 Subject: [PATCH 2964/3440] Update README.md Remove old sponsor --- README.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/README.md b/README.md index 24fb2712418..931efb5e19e 100644 --- a/README.md +++ b/README.md @@ -20,15 +20,6 @@ _Special thanks to_ - - -
- -Doppler
-Quit struggling with scattered API keys and access controls.
-Keep your secrets in sync across environments, servers, and teams with Doppler. -
-
WorkOS
From 83af0e6e4eea4dc27f4a79b469fc96d2481a2301 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 07:48:46 -0300 Subject: [PATCH 2965/3440] workflow: check issue spammy fixed: #4772 --- .github/workflows/check-for-spammy-issues.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/workflows/check-for-spammy-issues.yml diff --git a/.github/workflows/check-for-spammy-issues.yml b/.github/workflows/check-for-spammy-issues.yml new file mode 100644 index 00000000000..66d3b0be666 --- /dev/null +++ b/.github/workflows/check-for-spammy-issues.yml @@ -0,0 +1,15 @@ +name: Check for Spammy Issues + +on: + issue: + types: [opened] + +jobs: + mark-as-spam: + name: Remove issues with spammy + runs-on: ubuntu-latest + steps: + - name: close issue + uses: balevine/mark-as-spam@v1.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 3f05b9f2421fdc8762d2e4a39df6d33d42b01bb1 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 07:53:05 -0300 Subject: [PATCH 2966/3440] go-jose update repo #4794 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 931efb5e19e..1a57d5ebb19 100644 --- a/README.md +++ b/README.md @@ -224,7 +224,7 @@ _Libraries for implementing authentication schemes._ - [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, and ABAC. - [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides a parser of cookies.txt file format. - [go-guardian](https://github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token, and Certificate based authentication. -- [go-jose](https://github.com/square/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. +- [go-jose](https://github.com/go-jose/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. - [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. - [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. - [gosession](http://github.com/Kwynto/gosession) - This is quick session for net/http in GoLang. This package is perhaps the best implementation of the session mechanism, or at least it tries to become one. From fd091ebf0d704dfd3c1cf1c34a8b1cad76507088 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 00:11:04 +0000 Subject: [PATCH 2967/3440] Bump golang.org/x/net from 0.0.0-20210916014120-12bc252f5db8 to 0.7.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20210916014120-12bc252f5db8 to 0.7.0. - [Release notes](https://github.com/golang/net/releases) - [Commits](https://github.com/golang/net/commits/v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 8ec13b7d6f7..4e61d2c736b 100644 --- a/go.mod +++ b/go.mod @@ -12,8 +12,8 @@ require ( require ( github.com/andybalholm/cascadia v1.3.1 // indirect github.com/golang/protobuf v1.4.2 // indirect - golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 // indirect - golang.org/x/text v0.3.8 // indirect + golang.org/x/net v0.7.0 // indirect + golang.org/x/text v0.7.0 // indirect google.golang.org/appengine v1.6.6 // indirect google.golang.org/protobuf v1.25.0 // indirect ) diff --git a/go.sum b/go.sum index f68b24a98c0..4565a4b5529 100644 --- a/go.sum +++ b/go.sum @@ -188,10 +188,10 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 h1:/6y1LfuqNuQdHAm0jjtPtgRcxIxjVZgm5OTu8/QhZvk= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -238,8 +238,10 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -247,8 +249,8 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 201783b8fb5ac2e9edb018ddb83edc0a70e7ecec Mon Sep 17 00:00:00 2001 From: Alexandre Thibault Date: Fri, 17 Mar 2023 09:12:22 +0100 Subject: [PATCH 2968/3440] update redis repo link Signed-off-by: Alexandre Thibault --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1a57d5ebb19..af27a02d3df 100644 --- a/README.md +++ b/README.md @@ -824,7 +824,7 @@ _Libraries for building and using SQL._ - [qmgo](https://github.com/qiniu/qmgo) - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. - [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. - [redigo](https://github.com/gomodule/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/redis/go-redis) - Redis client for Golang. - [rueidis](http://github.com/rueian/rueidis) - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching. - [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. From 0a5d4fb9ed216fa06694fcf24acac4e887a2dee1 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 08:37:22 -0300 Subject: [PATCH 2969/3440] auto msg first comment in PR --- .../workflows/pull-request-first-comment.yaml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/pull-request-first-comment.yaml diff --git a/.github/workflows/pull-request-first-comment.yaml b/.github/workflows/pull-request-first-comment.yaml new file mode 100644 index 00000000000..e2b104410d4 --- /dev/null +++ b/.github/workflows/pull-request-first-comment.yaml @@ -0,0 +1,24 @@ +name: Fist comment in new pull request + +on: + pull_request: + types: [opened] + +jobs: + commentCreated: + runs-on: ubuntu-latest + steps: + - name: first comment + uses: peter-evans/create-or-update-comment@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: 1 + body: | + Thank you for contributing with [awesome-go](https://awesome-go.com/), we will revise your contribution as soon as possible. + + Make sure you add the links in the body of the pull request that are requested in the [contribution guide](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md): + - godoc.org or pkg.go.dev + - goreportcard.com + - coverage + + > your project is about to be approved, it's under revision, it may take a few days From 1a97fcf8bc30122c8b809c548331b6f31cedbca5 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 08:46:33 -0300 Subject: [PATCH 2970/3440] improve grammar of the contribution guide --- CONTRIBUTING.md | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4c138a836e9..26e2ce1eb0e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,14 +3,12 @@ We appreciate and recognize [all contributors](https://github.com/avelino/awesom # Contribution Guidelines -> Please be aware that we want to accept your contribution, but we have **some rules to keep the minimum quality** -of the packages listed here. All reviews are **not personal feedback**, -even if you are a _developer reviewing your contribution_. **Sorry if we can't meet your expectations; we do our best**. +> Please be aware that we want to accept your contribution, but we have **some rules to keep the minimum quality** of the packages listed here. All reviews are **not personal feedback**, even if you are a _developer reviewing your contribution_. **Sorry, if we can't meet your expectations; we do our best**. - **To add, remove, or change things on the list:** Submit a pull request To set this list apart from and complement the excellent [Go wiki Projects page](https://golang.org/wiki/Projects), -and other lists, awesome-go is a specially curated list for high-quality, actively maintained Go packages and resources. +and other lists, awesome-go is a specially curated list of high-quality, actively maintained Go packages and resources. Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. @@ -43,7 +41,7 @@ to provide them. One way to accomplish the above is to add badges to your project's README file. - Use https://pkg.go.dev/badge/ to create the pkg.go.dev link. -- Go to https://goreportcard.com/ to generate a Go Report Card report, then click on the report badge in the upper right corner to see details on how to add the badge to your README. +- Go to https://goreportcard.com/ to generate a Go Report Card report, then click on the report badge in the upper-right corner to see details on how to add the badge to your README. - Codecov, coveralls, and gocover all offer ways to create badges for code coverage reports. Another option is to generate a badge as part of a continuous integration process. See [Code Coverage](COVERAGE.md) for an example. ## How to add an item to the list @@ -58,13 +56,13 @@ Open a pull request against the README.md document that adds the repository to t - Remember to put a period `.` at the end of the project description. If you are creating a new category, move the projects that apply to the new category, ensuring -that the resulting list has at least 3 projects in every category and that the categories are alphabetized. +that the resulting list has at least 3 projects in every category, and that the categories are alphabetized. Fill out the template in your PR with the links asked for. If you accidentally remove the PR template from the submission, you can find it [here](https://github.com/avelino/awesome-go/blob/main/.github/PULL_REQUEST_TEMPLATE.md). ## Congrats, your project got accepted - what now? -You are an awesome project now! Feel encouraged to tell others about it by adding one of these badges: +You are an outstanding project now! Feel encouraged to tell others about it by adding one of these badges: [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go) [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go) @@ -80,9 +78,9 @@ To prevent removal from awesome-go, your project must maintain the following qua - All links to quality reports should be to the most recent official release or current ongoing development. Highly recommended but not required: -- A continuous integration process be part of the ongoing development process +- A continuous integration process to be part of the ongoing development process - That the project uses a pull-request process, and the owners do not commit directly to the repository -- That the pull-request process requires the continuous-integration tests pass before a pull request can be merged +- That the pull-request process requires the continuous-integration tests to pass before a pull request can be merged ## How to remove an item from the list @@ -120,12 +118,12 @@ that the PR will be closed. ## Reporting issues -Please open an issue if you would like to discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. +Please open an issue if you would like to discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing, or please let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. -Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition but are otherwise worthy of being on the list. +Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition, but are otherwise worthy of being on the list. Thanks, everyone! -## How decision are made +## How decisions are made The official group of maintainers has the final decision on what PRs are accepted. Discussions are made openly in issues. Decisions are made by consensus. From 78d3bcd2157ee6e900e9a7db1804422c4761cf09 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 08:49:50 -0300 Subject: [PATCH 2971/3440] Code Coverage: improve grammar --- COVERAGE.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/COVERAGE.md b/COVERAGE.md index 62f4931fdd7..dfba16a3d5b 100644 --- a/COVERAGE.md +++ b/COVERAGE.md @@ -1,15 +1,10 @@ # Code Coverage -While we recommend using one of the free websites available for monitoring code coverage -during your continuous integration process, below is an example of how you can incorporate -code coverage during the continuous integration process provided by github actions and -generate a code coverage report without one of those services. +While we recommend using one of the free websites available for monitoring code coverage during your continuous integration process, below is an example of how you can incorporate code coverage during the continuous integration process provided by GitHub actions and generate a code coverage report without one of those services. -This yaml file will run tests on multiple system configurations, but will produce -a code coverage report on only one of those. It will then create a code coverage badge -and add it to the README file. +This `yaml` file will run tests on multiple system configurations, but will produce a code coverage report on only one of those. It will then create a code coverage badge and add it to the README file. -This file should be put in the `.github/workflows` directory of your repo. +This file should be put in the `.github/workflows` directory of your repo: ```yaml name: Go # The name of the workflow that will appear on Github From 0ee17e87a6d96c40ec0da431d66b9b06de414f74 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 08:53:02 -0300 Subject: [PATCH 2972/3440] Update CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9807c1ff464..5b85b915e72 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -12,7 +12,7 @@ We invite all those who participate in Awesome Go to help us create safe and pos A supplemental goal of this Code of Conduct is to increase open source citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community. -Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society. +Communities mirror the societies in which they exist, and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society. If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know. @@ -20,28 +20,28 @@ If you see someone who is making an extra effort to ensure our community is welc The following behaviors are expected and requested of all community members: -* Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community. -* Exercise consideration and respect in your speech and actions. -* Attempt collaboration before conflict. -* Refrain from demeaning, discriminatory, or harassing behavior and speech. -* Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential. -* Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations. +* Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community. +* Exercise consideration and respect in your speech and actions. +* Attempt collaboration before conflict. +* Refrain from demeaning, discriminatory, or harassing behavior and speech. +* Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone distressed, or violations of this Code of Conduct, even if they seem inconsequential. +* Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations. ## 4. Unacceptable Behavior The following behaviors are considered harassment and are unacceptable within our community: -* Violence, threats of violence or violent language directed against another person. -* Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. -* Posting or displaying sexually explicit or violent material. -* Posting or threatening to post other people’s personally identifying information ("doxing"). -* Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability. -* Inappropriate photography or recording. -* Inappropriate physical contact. You should have someone’s consent before touching them. -* Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances. -* Deliberate intimidation, stalking or following (online or in person). -* Advocating for, or encouraging, any of the above behavior. -* Sustained disruption of community events, including talks and presentations. +* Violence, threats of violence or violent language directed against another person. +* Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. +* Posting or displaying sexually explicit or violent material. +* Posting or threatening to post other people’s personally identifying information ("doxing"). +* Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability. +* Inappropriate photography or recording. +* Inappropriate physical contact. You should have someone’s consent before touching them. +* Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances. +* Deliberate intimidation, stalking or following (online or in person). +* Advocating for, or encouraging, any of the above behavior. +* Sustained disruption of community events, including talks and presentations. ## 5. Consequences of Unacceptable Behavior @@ -49,11 +49,11 @@ Unacceptable behavior from any community member, including sponsors and those wi Anyone asked to stop unacceptable behavior is expected to comply immediately. -If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event). +If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community unexpected (and without refund in the case of a paid event). ## 6. Reporting Guidelines -If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. t@avelino.xxx. +If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. [Reporting Guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#contribution-guidelines) @@ -73,7 +73,7 @@ This code of conduct and its related procedures also applies to unacceptable beh ## 9. Contact info -t@avelino.xxx +avelinorun AT gmail DOT com ## 10. License and attribution @@ -81,4 +81,4 @@ This Code of Conduct is distributed under a [Creative Commons Attribution-ShareA Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy). -Retrieved on November 22, 2016 from [http://citizencodeofconduct.org/](http://citizencodeofconduct.org/) +Retrieved on November 22, 2016 From 8d7a558a6e3cbb8ecb8c7067249f5f93254125d2 Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Sat, 18 Mar 2023 19:32:44 +0800 Subject: [PATCH 2973/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af27a02d3df..6712406ae42 100644 --- a/README.md +++ b/README.md @@ -1401,6 +1401,7 @@ _Libraries for working with JSON._ - [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. - [gojq](https://github.com/elgs/gojq) - JSON query in Golang. - [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. +- [htmljson](https://github.com/nikolaydubina/htmljson) - Rich rendering of JSON as HTML in Go. - [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go. - [jettison](https://github.com/wI2L/jettison) - Fast and flexible JSON encoder for Go. - [jscan](https://github.com/romshark/jscan) - High performance zero-allocation JSON iterator. From 9b9591ec368a087600c527721f53f424d26521fb Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Sat, 18 Mar 2023 19:35:21 +0800 Subject: [PATCH 2974/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6712406ae42..f30066ce420 100644 --- a/README.md +++ b/README.md @@ -2690,6 +2690,7 @@ _General utilities and tools to make your life easier._ - [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, ...). +- [watchhttp](https://github.com/nikolaydubina/watchhttp) - Run command periodically and expose latest STDOUT or its rich delta as HTTP endpoint. - [wifiqr](https://github.com/reugn/wifiqr) - Wi-Fi QR Code Generator. - [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. From cdd775a74528f145e116a607f09a489dea5e8576 Mon Sep 17 00:00:00 2001 From: Hamed Yousefi Date: Tue, 14 Mar 2023 00:38:42 +0330 Subject: [PATCH 2975/3440] added hmdsefi/gograph --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f30066ce420..2b14492c7b0 100644 --- a/README.md +++ b/README.md @@ -2046,6 +2046,7 @@ _Libraries for scientific computing and data analyzing._ - [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. - [godesim](https://github.com/soypat/godesim) - Extended/multivariable ODE solver framework for event-based simulations with simple API. - [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures. +- [gograph](https://github.com/hmdsefi/gograph) - A golang generic graph library that provides mathematical graph-theory and algorithms. - [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. - [gonum](https://github.com/gonum/gonum) - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. - [gonum/plot](https://github.com/gonum/plot) - gonum/plot provides an API for building and drawing plots in Go. From 30cb6ca3cefc9f899fcdc0c3885220c24af8a01e Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 09:53:03 -0300 Subject: [PATCH 2976/3440] Update check-for-spammy-issues.yml --- .github/workflows/check-for-spammy-issues.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/check-for-spammy-issues.yml b/.github/workflows/check-for-spammy-issues.yml index 66d3b0be666..10fa6a98515 100644 --- a/.github/workflows/check-for-spammy-issues.yml +++ b/.github/workflows/check-for-spammy-issues.yml @@ -1,5 +1,3 @@ -name: Check for Spammy Issues - on: issue: types: [opened] From edf427a2de73e50634c6f4d42b79e2a5e8346adc Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 11:03:46 -0300 Subject: [PATCH 2977/3440] Update check-for-spammy-issues.yml --- .github/workflows/check-for-spammy-issues.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-for-spammy-issues.yml b/.github/workflows/check-for-spammy-issues.yml index 10fa6a98515..871ecc39bb7 100644 --- a/.github/workflows/check-for-spammy-issues.yml +++ b/.github/workflows/check-for-spammy-issues.yml @@ -1,5 +1,6 @@ +name: Issues spammy check on: - issue: + issues: types: [opened] jobs: From b57bf84621a207cd89abdc1af7c50f70585e770c Mon Sep 17 00:00:00 2001 From: n0trace Date: Mon, 26 Sep 2022 17:16:29 +0800 Subject: [PATCH 2978/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2b14492c7b0..518eaf88604 100644 --- a/README.md +++ b/README.md @@ -2695,6 +2695,7 @@ _General utilities and tools to make your life easier._ - [wifiqr](https://github.com/reugn/wifiqr) - Wi-Fi QR Code Generator. - [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. +- [contextplus](https://github.com/contextplus/contextplus) - Package contextplus provide more easy to use functions for contexts. **[⬆ back to top](#contents)** From afe17a31a6b73a0e9aa7984ec7c9ff74e2653eed Mon Sep 17 00:00:00 2001 From: n0trace Date: Mon, 26 Sep 2022 17:46:48 +0800 Subject: [PATCH 2979/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 518eaf88604..0a994041e01 100644 --- a/README.md +++ b/README.md @@ -2543,6 +2543,7 @@ _General utilities and tools to make your life easier._ - [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. - [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. - [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. +- [contextplus](https://github.com/contextplus/contextplus) - Package contextplus provide more easy to use functions for contexts. - [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. - [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. - [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standards. @@ -2695,7 +2696,6 @@ _General utilities and tools to make your life easier._ - [wifiqr](https://github.com/reugn/wifiqr) - Wi-Fi QR Code Generator. - [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. -- [contextplus](https://github.com/contextplus/contextplus) - Package contextplus provide more easy to use functions for contexts. **[⬆ back to top](#contents)** From 0d6073a588b27508bac9f4297658ecbbdb2779cc Mon Sep 17 00:00:00 2001 From: mstmdev Date: Mon, 27 Mar 2023 15:11:38 +0800 Subject: [PATCH 2980/3440] Update the contribution guidelines link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a994041e01..b8830649833 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ _Special thanks to_ **Contributing:** -Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! +Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! > _If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!_ From 448880d54c6dd30023833634cc23955333213328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Sat, 22 Oct 2022 23:40:16 +0200 Subject: [PATCH 2981/3440] Add fluentassert to Testing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b8830649833..659318e0b01 100644 --- a/README.md +++ b/README.md @@ -2228,6 +2228,7 @@ _Libraries for testing codebases and generating test data._ - [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. - [endly](https://github.com/viant/endly) - Declarative end to end functional testing. - [fixenv](https://github.com/rekby/fixenv) - Fixture manage engine, inspired by pytest fixtures. + - [fluentassert](https://github.com/fluentassert/verify) - Extensible, type-safe, fluent assertion Go library. - [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. - [frisby](https://github.com/verdverm/frisby) - REST API testing framework. - [gherkingen](https://github.com/hedhyw/gherkingen) - BDD boilerplate generator and framework. From 11bbec4d9aa9e49ea2e4b733917515f68acfaec3 Mon Sep 17 00:00:00 2001 From: Nondzu Date: Fri, 31 Mar 2023 06:16:32 +0000 Subject: [PATCH 2982/3440] Remove dead repos --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 659318e0b01..90727ecbd00 100644 --- a/README.md +++ b/README.md @@ -1058,10 +1058,8 @@ _Packages for accounting and finance._ - [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. - [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. - [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. -- [fastme](https://github.com/newity/fastme) - Fast extensible matching engine Go implementation. - [fpdecimal](https://github.com/nikolaydubina/fpdecimal) - Fast and precise serialization and arithmetic for small fixed-point decimals - [fpmoney](https://github.com/nikolaydubina/fpmoney) - Fast and simple ISO4217 fixed-point decimal money. -- [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. - [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. - [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. - [go-finnhub](https://github.com/m1/go-finnhub) - Client for stock market, forex and crypto data from finnhub.io. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges. @@ -2463,7 +2461,6 @@ _Libraries for accessing third party APIs._ - [go-swagger-ui](https://github.com/esurdam/go-swagger-ui) - Go library containing precompiled [Swagger UI](https://swagger.io/tools/swagger-ui/) for serving swagger json. - [go-telegraph](https://gitlab.com/toby3d/telegraph) - Telegraph publishing platform API client. - [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. -- [go-twitch](https://github.com/knspriggs/go-twitch) - Go client for interacting with the Twitch v3 API. - [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. - [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. - [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. @@ -2586,7 +2583,6 @@ _General utilities and tools to make your life easier._ - [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. - [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. - [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. -- [go-safe](https://github.com/kenkyu392/go-safe) - Panic-safe sandbox. - [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. - [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. - [go-type](https://github.com/mikekonan/go-types) - Library providing Go types for store/validation and transfer of ISO-4217, ISO-3166, and other types. @@ -2854,7 +2850,6 @@ _Full stack web frameworks._ - [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. - [catena](https://github.com/codemodus/catena) - http.Handler wrapper catenation (same API as "chain"). - [chain](https://github.com/codemodus/chain) - Handler wrapper chaining with scoped data (net/context-based "middleware"). -- [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. - [gores](https://github.com/alioygur/gores) - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs. - [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang. - [mediary](https://github.com/HereMobilityDevelopers/mediary) - add interceptors to `http.Client` to allow dumping/shaping/tracing/... of requests/responses. @@ -3020,7 +3015,6 @@ _Plugin for text editors and IDEs._ - [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. - [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. - [docs](https://github.com/go-oas/docs) - Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard. -- [generator-go-lang](https://github.com/axelspringer/generator-go-lang) - A [Yeoman](https://yeoman.io) generator to get new Go projects started. - [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. - [go-james](https://github.com/pieterclaerhout/go-james) - Go project skeleton creator, builds and tests your projects without the manual setup. - [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. From 39525944c66451163fca9572f25e366d16541da1 Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Mon, 3 Apr 2023 04:17:19 +0800 Subject: [PATCH 2983/3440] Update README.md (#4822) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 90727ecbd00..68bbf481379 100644 --- a/README.md +++ b/README.md @@ -2343,6 +2343,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [goq](https://github.com/andrewstuart/goq) - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery). - [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. - [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. +- [htmlyaml](https://github.com/nikolaydubina/htmlyaml) - Rich rendering of YAML as HTML in Go - [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. - [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). From 5b7bb43e527482e1c39248f1ac92d0f28dfcf2c6 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 19:44:07 +0100 Subject: [PATCH 2984/3440] ignore out dir --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9a7c1cec19a..dd2f819f0f7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -tmpl/index.html +out/ awesome-go vendor From 59372e1e843cd5ed014ee718f9d9cf819604137d Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sat, 4 Feb 2023 02:39:51 +0100 Subject: [PATCH 2985/3440] change code that works with filenames --- make_site.go => main.go | 75 +++++++++++++++++++++++++++++------- repo_test.go => main_test.go | 2 +- scripts.go | 32 ++++++++++----- 3 files changed, 85 insertions(+), 24 deletions(-) rename make_site.go => main.go (62%) rename repo_test.go => main_test.go (98%) diff --git a/make_site.go b/main.go similarity index 62% rename from make_site.go rename to main.go index 3811b4947a2..6c269b42f68 100644 --- a/make_site.go +++ b/main.go @@ -3,8 +3,8 @@ package main import ( "bytes" "fmt" - "log" "os" + "path/filepath" "strings" "text/template" @@ -25,15 +25,30 @@ type Object struct { Items []Link } +// Source +const readmePath = "README.md" + +// Templates +const tmplCategory = "tmpl/cat-tmpl.html" +const tmplSitemap = "tmpl/sitemap-tmpl.xml" + +// Output +const outDir = "out/" +const outIndexFile = "index.html" +const outSitemapFile = "sitemap.xml" + func main() { - err := GenerateHTML() + outIndexAbs := filepath.Join(outDir, outIndexFile) + err := GenerateHTML(readmePath, outIndexAbs) if err != nil { panic(err) } - input, err := os.ReadFile("./tmpl/index.html") + + input, err := os.ReadFile(outIndexAbs) if err != nil { panic(err) } + buf := bytes.NewBuffer(input) query, err := goquery.NewDocumentFromReader(buf) if err != nil { @@ -55,29 +70,61 @@ func main() { }) }) - makeSiteStruct(objs) + if err := makeSiteStruct(objs); err != nil { + // FIXME: remove all panics + panic(err) + } changeLinksInIndex(string(input), query, objs) makeSitemap(objs) } -func makeSiteStruct(objs map[string]*Object) { +func mkdirAll(path string) error { + _, err := os.Stat(path) + // NOTE: directory is exists + if err == nil { + return nil + } + + // NOTE: unknown error + if !os.IsNotExist(err) { + return err + } + + // NOTE: directory is not exists + if err := os.MkdirAll(path, 0o755); err != nil { + return err + } + + return nil +} + +func makeSiteStruct(objs map[string]*Object) error { for _, obj := range objs { - folder := fmt.Sprintf("tmpl/%s", obj.Slug) - err := os.Mkdir(folder, 0755) + outDir := filepath.Join(outDir, obj.Slug) + if err := mkdirAll(outDir); err != nil { + return err + } + + // FIXME: embed templates + // FIXME: parse templates once at start + t := template.Must(template.ParseFiles(tmplCategory)) + f, err := os.Create(filepath.Join(outDir, "index.html")) if err != nil { - log.Println(err) + return err } - t := template.Must(template.ParseFiles("tmpl/cat-tmpl.html")) - f, _ := os.Create(fmt.Sprintf("%s/index.html", folder)) - t.Execute(f, obj) + if err := t.Execute(f, obj); err != nil { + return err + } } + + return nil } func makeSitemap(objs map[string]*Object) { - t := template.Must(template.ParseFiles("tmpl/sitemap-tmpl.xml")) - f, _ := os.Create("tmpl/sitemap.xml") + t := template.Must(template.ParseFiles(tmplSitemap)) + f, _ := os.Create(filepath.Join(outDir, outSitemapFile)) t.Execute(f, objs) } @@ -129,5 +176,5 @@ func changeLinksInIndex(html string, query *goquery.Document, objs map[string]*O } }) - os.WriteFile("./tmpl/index.html", []byte(html), 0644) + os.WriteFile(filepath.Join(outDir, outIndexFile), []byte(html), 0644) } diff --git a/repo_test.go b/main_test.go similarity index 98% rename from repo_test.go rename to main_test.go index 39717369fec..18184ca20c3 100644 --- a/repo_test.go +++ b/main_test.go @@ -70,7 +70,7 @@ func TestSeparator(t *testing.T) { } } func TestGenerateHTML(t *testing.T) { - err := GenerateHTML() + err := GenerateHTML(readmePath, outIndexFile) if err != nil { t.Errorf("html generate error '%s'", err.Error()) } diff --git a/scripts.go b/scripts.go index b89c5a0f057..072e60c20bd 100644 --- a/scripts.go +++ b/scripts.go @@ -36,16 +36,30 @@ type content struct { } // GenerateHTML generate site html (index.html) from markdown file -func GenerateHTML() (err error) { +func GenerateHTML(srcFilename, outFilename string) error { // options - readmePath := "./README.md" - tplPath := "tmpl/tmpl.html" - idxPath := "tmpl/index.html" - input, _ := ioutil.ReadFile(readmePath) - body, _ := markdown.ConvertMarkdownToHTML(input) + const tplPath = "tmpl/tmpl.html" + + input, err := ioutil.ReadFile(srcFilename) + if err != nil { + return err + } + + body, err := markdown.ConvertMarkdownToHTML(input) + if err != nil { + return err + } + c := &content{Body: template.HTML(body)} t := template.Must(template.ParseFiles(tplPath)) - f, err := os.Create(idxPath) - t.Execute(f, c) - return + f, err := os.Create(outFilename) + if err != nil { + return err + } + + if err := t.Execute(f, c); err != nil { + return err + } + + return nil } From 6d74c3aed9fbfe94f6b9ac4c7759a311aca01fa7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 3 Apr 2023 08:16:02 -0300 Subject: [PATCH 2986/3440] extract file and dir constants Signed-off-by: Avelino --- go.mod | 1 + go.sum | 7 +++++++ main.go | 27 +++++++++++++++++++-------- main_test.go | 1 + scripts.go | 3 --- 5 files changed, 28 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 4e61d2c736b..cc888d978bd 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.17 require ( github.com/PuerkitoBio/goquery v1.8.0 github.com/avelino/slugify v0.0.0-20180501145920-855f152bd774 + github.com/otiai10/copy v1.9.0 github.com/yuin/goldmark v1.4.13 golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 ) diff --git a/go.sum b/go.sum index 4565a4b5529..8c0ebb96bef 100644 --- a/go.sum +++ b/go.sum @@ -109,6 +109,13 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/otiai10/copy v1.9.0 h1:7KFNiCgZ91Ru4qW4CWPf/7jqtxLagGRmIxWldPP9VY4= +github.com/otiai10/copy v1.9.0/go.mod h1:hsfX19wcn0UWIHUQ3/4fHuehhk2UyArQ9dVFAn3FczI= +github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= +github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= +github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= +github.com/otiai10/mint v1.4.0 h1:umwcf7gbpEwf7WFzqmWwSv0CzbeMsae2u9ZvpP8j2q4= +github.com/otiai10/mint v1.4.0/go.mod h1:gifjb2MYOoULtKLqUAEILUG/9KONW6f7YsJ6vQLTlFI= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= diff --git a/main.go b/main.go index 6c269b42f68..5c0bf81a41d 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "bytes" "fmt" + cp "github.com/otiai10/copy" "os" "path/filepath" "strings" @@ -27,15 +28,21 @@ type Object struct { // Source const readmePath = "README.md" +const assetsDir = "tmpl/assets" // Templates +const tplPath = "tmpl/tmpl.html" const tmplCategory = "tmpl/cat-tmpl.html" const tmplSitemap = "tmpl/sitemap-tmpl.xml" // Output + +// NOTE: trailing slash is required const outDir = "out/" -const outIndexFile = "index.html" -const outSitemapFile = "sitemap.xml" + +var outAssetsDir = filepath.Join(outDir, "assets") +var outIndexFile = filepath.Join(outDir, "index.html") +var outSitemapFile = filepath.Join(outDir, "sitemap.xml") func main() { outIndexAbs := filepath.Join(outDir, outIndexFile) @@ -44,7 +51,7 @@ func main() { panic(err) } - input, err := os.ReadFile(outIndexAbs) + input, err := os.ReadFile(outIndexFile) if err != nil { panic(err) } @@ -77,6 +84,10 @@ func main() { changeLinksInIndex(string(input), query, objs) makeSitemap(objs) + + if err := cp.Copy(assetsDir, outAssetsDir); err != nil { + panic(err) + } } func mkdirAll(path string) error { @@ -101,15 +112,15 @@ func mkdirAll(path string) error { func makeSiteStruct(objs map[string]*Object) error { for _, obj := range objs { - outDir := filepath.Join(outDir, obj.Slug) - if err := mkdirAll(outDir); err != nil { + categoryDir := filepath.Join(outDir, obj.Slug) + if err := mkdirAll(categoryDir); err != nil { return err } // FIXME: embed templates // FIXME: parse templates once at start t := template.Must(template.ParseFiles(tmplCategory)) - f, err := os.Create(filepath.Join(outDir, "index.html")) + f, err := os.Create(filepath.Join(categoryDir, "index.html")) if err != nil { return err } @@ -124,7 +135,7 @@ func makeSiteStruct(objs map[string]*Object) error { func makeSitemap(objs map[string]*Object) { t := template.Must(template.ParseFiles(tmplSitemap)) - f, _ := os.Create(filepath.Join(outDir, outSitemapFile)) + f, _ := os.Create(outSitemapFile) t.Execute(f, objs) } @@ -176,5 +187,5 @@ func changeLinksInIndex(html string, query *goquery.Document, objs map[string]*O } }) - os.WriteFile(filepath.Join(outDir, outIndexFile), []byte(html), 0644) + os.WriteFile(outIndexFile, []byte(html), 0644) } diff --git a/main_test.go b/main_test.go index 18184ca20c3..6e3a8ebd7c9 100644 --- a/main_test.go +++ b/main_test.go @@ -69,6 +69,7 @@ func TestSeparator(t *testing.T) { } } } + func TestGenerateHTML(t *testing.T) { err := GenerateHTML(readmePath, outIndexFile) if err != nil { diff --git a/scripts.go b/scripts.go index 072e60c20bd..dc9735116b4 100644 --- a/scripts.go +++ b/scripts.go @@ -37,9 +37,6 @@ type content struct { // GenerateHTML generate site html (index.html) from markdown file func GenerateHTML(srcFilename, outFilename string) error { - // options - const tplPath = "tmpl/tmpl.html" - input, err := ioutil.ReadFile(srcFilename) if err != nil { return err From 91dadcb21ed47a8fbf02780785cd378e5993f9db Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sat, 4 Feb 2023 03:01:22 +0100 Subject: [PATCH 2987/3440] cleanup output dir at start --- main.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 5c0bf81a41d..2994681d892 100644 --- a/main.go +++ b/main.go @@ -45,8 +45,18 @@ var outIndexFile = filepath.Join(outDir, "index.html") var outSitemapFile = filepath.Join(outDir, "sitemap.xml") func main() { - outIndexAbs := filepath.Join(outDir, outIndexFile) - err := GenerateHTML(readmePath, outIndexAbs) + // Cleanup and re-create output directory + { + if err := os.RemoveAll(outDir); err != nil { + panic(err) + } + + if err := mkdirAll(outDir); err != nil { + panic(err) + } + } + + err := GenerateHTML(readmePath, outIndexFile) if err != nil { panic(err) } From 13af8333b1a0c554545fb574dd385465652db1ea Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:30:51 +0100 Subject: [PATCH 2988/3440] ioutil.ReadFile -> os.ReadFile + use constant for README --- main_test.go | 4 ++-- scripts.go | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/main_test.go b/main_test.go index 6e3a8ebd7c9..8a943a0bc86 100644 --- a/main_test.go +++ b/main_test.go @@ -1,7 +1,7 @@ package main import ( - "io/ioutil" + "os" "regexp" "sort" "strings" @@ -49,7 +49,7 @@ func TestDuplicatedLinks(t *testing.T) { // Test if an entry has description, it must be separated from link with ` - ` func TestSeparator(t *testing.T) { var matched, containsLink, noDescription bool - input, err := ioutil.ReadFile("./README.md") + input, err := os.ReadFile(readmePath) if err != nil { panic(err) } diff --git a/scripts.go b/scripts.go index dc9735116b4..db78831608f 100644 --- a/scripts.go +++ b/scripts.go @@ -3,7 +3,6 @@ package main import ( "bytes" "html/template" - "io/ioutil" "os" "github.com/PuerkitoBio/goquery" @@ -11,7 +10,7 @@ import ( ) func readme() []byte { - input, err := os.ReadFile("./README.md") + input, err := os.ReadFile(readmePath) if err != nil { panic(err) } @@ -37,7 +36,7 @@ type content struct { // GenerateHTML generate site html (index.html) from markdown file func GenerateHTML(srcFilename, outFilename string) error { - input, err := ioutil.ReadFile(srcFilename) + input, err := os.ReadFile(srcFilename) if err != nil { return err } From f0dbbd1d3ae360eac67c3cf9e0573d398b841325 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:49:59 +0100 Subject: [PATCH 2989/3440] assets dir is part of staticFiles slice --- main.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index 2994681d892..f4e56112895 100644 --- a/main.go +++ b/main.go @@ -28,7 +28,13 @@ type Object struct { // Source const readmePath = "README.md" -const assetsDir = "tmpl/assets" + +// NOTE: this files should be copied as is to outDir directory +var staticFiles = []string{ + "tmpl/assets", + "tmpl/_redirects", + "tmpl/robots.txt", +} // Templates const tplPath = "tmpl/tmpl.html" @@ -40,7 +46,6 @@ const tmplSitemap = "tmpl/sitemap-tmpl.xml" // NOTE: trailing slash is required const outDir = "out/" -var outAssetsDir = filepath.Join(outDir, "assets") var outIndexFile = filepath.Join(outDir, "index.html") var outSitemapFile = filepath.Join(outDir, "sitemap.xml") @@ -95,8 +100,12 @@ func main() { makeSitemap(objs) - if err := cp.Copy(assetsDir, outAssetsDir); err != nil { - panic(err) + for _, srcFilename := range staticFiles { + dstFilename := filepath.Join(outDir, filepath.Base(srcFilename)) + fmt.Printf("Copy static file: %s -> %s\n", srcFilename, dstFilename) + if err := cp.Copy(srcFilename, dstFilename); err != nil { + panic(err) + } } } From d90b18f998afd730d243319650238c43f522004d Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:50:14 +0100 Subject: [PATCH 2990/3440] log execution steps --- main.go | 13 ++++++++++--- scripts.go | 2 ++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index f4e56112895..a2a3a1737c5 100644 --- a/main.go +++ b/main.go @@ -139,11 +139,14 @@ func makeSiteStruct(objs map[string]*Object) error { // FIXME: embed templates // FIXME: parse templates once at start t := template.Must(template.ParseFiles(tmplCategory)) - f, err := os.Create(filepath.Join(categoryDir, "index.html")) + categoryIndexFilename := filepath.Join(categoryDir, "index.html") + f, err := os.Create(categoryIndexFilename) if err != nil { return err } + fmt.Printf("Write category Index file: %s\n", categoryIndexFilename) + if err := t.Execute(f, obj); err != nil { return err } @@ -154,8 +157,11 @@ func makeSiteStruct(objs map[string]*Object) error { func makeSitemap(objs map[string]*Object) { t := template.Must(template.ParseFiles(tmplSitemap)) + // FIXME: handle error f, _ := os.Create(outSitemapFile) - t.Execute(f, objs) + fmt.Printf("Render Sitemap to: %s\n", outSitemapFile) + + _ = t.Execute(f, objs) } func makeObjByID(selector string, s *goquery.Selection) (obj *Object) { @@ -206,5 +212,6 @@ func changeLinksInIndex(html string, query *goquery.Document, objs map[string]*O } }) - os.WriteFile(outIndexFile, []byte(html), 0644) + fmt.Printf("Rewrite links in Index file: %s\n", outIndexFile) + _ = os.WriteFile(outIndexFile, []byte(html), 0644) } diff --git a/scripts.go b/scripts.go index db78831608f..876c881b732 100644 --- a/scripts.go +++ b/scripts.go @@ -2,6 +2,7 @@ package main import ( "bytes" + "fmt" "html/template" "os" @@ -53,6 +54,7 @@ func GenerateHTML(srcFilename, outFilename string) error { return err } + fmt.Printf("Write Index file: %s\n", outIndexFile) if err := t.Execute(f, c); err != nil { return err } From a1c59cdab623382ec109996faad8927c4d95fcb1 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:58:31 +0100 Subject: [PATCH 2991/3440] remove unnecessary lines --- .codeclimate.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.codeclimate.yml b/.codeclimate.yml index afc2bb1f684..0b6935d2979 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -18,5 +18,3 @@ engines: ratings: paths: - "**.go" -exclude_paths: -- vendor/ From 20324b3b195ca222c677f8d7b34d32dcfdc357d6 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:58:36 +0100 Subject: [PATCH 2992/3440] change comments --- main.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index a2a3a1737c5..a92e1eda076 100644 --- a/main.go +++ b/main.go @@ -26,25 +26,23 @@ type Object struct { Items []Link } -// Source +// Source files const readmePath = "README.md" -// NOTE: this files should be copied as is to outDir directory +// This files should be copied 'as is' to outDir directory var staticFiles = []string{ "tmpl/assets", "tmpl/_redirects", "tmpl/robots.txt", } -// Templates +// Template files const tplPath = "tmpl/tmpl.html" const tmplCategory = "tmpl/cat-tmpl.html" const tmplSitemap = "tmpl/sitemap-tmpl.xml" -// Output - -// NOTE: trailing slash is required -const outDir = "out/" +// Output files +const outDir = "out/" // NOTE: trailing slash is required var outIndexFile = filepath.Join(outDir, "index.html") var outSitemapFile = filepath.Join(outDir, "sitemap.xml") From ea7e632578bb8e7d6031b3c0b74eb4215fc81f2c Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:00:38 +0100 Subject: [PATCH 2993/3440] remove vendor from .gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index dd2f819f0f7..93865a2a097 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ out/ awesome-go -vendor # Folders .idea From f26c5f205ede52a83aaae98e7cd38abb806e1673 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:12:57 +0100 Subject: [PATCH 2994/3440] use template.Must at program starts --- main.go | 18 ++++++++---------- scripts.go | 3 +-- stale_repositories_test.go | 15 ++++++--------- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/main.go b/main.go index a92e1eda076..b879d475869 100644 --- a/main.go +++ b/main.go @@ -36,10 +36,11 @@ var staticFiles = []string{ "tmpl/robots.txt", } -// Template files -const tplPath = "tmpl/tmpl.html" -const tmplCategory = "tmpl/cat-tmpl.html" -const tmplSitemap = "tmpl/sitemap-tmpl.xml" +// TODO: embed +// Templates +var tplIndex = template.Must(template.ParseFiles("tmpl/tmpl.html")) +var tplCategoryIndex = template.Must(template.ParseFiles("tmpl/cat-tmpl.html")) +var tplSitemap = template.Must(template.ParseFiles("tmpl/sitemap-tmpl.xml")) // Output files const outDir = "out/" // NOTE: trailing slash is required @@ -69,8 +70,7 @@ func main() { panic(err) } - buf := bytes.NewBuffer(input) - query, err := goquery.NewDocumentFromReader(buf) + query, err := goquery.NewDocumentFromReader(bytes.NewReader(input)) if err != nil { panic(err) } @@ -136,7 +136,6 @@ func makeSiteStruct(objs map[string]*Object) error { // FIXME: embed templates // FIXME: parse templates once at start - t := template.Must(template.ParseFiles(tmplCategory)) categoryIndexFilename := filepath.Join(categoryDir, "index.html") f, err := os.Create(categoryIndexFilename) if err != nil { @@ -145,7 +144,7 @@ func makeSiteStruct(objs map[string]*Object) error { fmt.Printf("Write category Index file: %s\n", categoryIndexFilename) - if err := t.Execute(f, obj); err != nil { + if err := tplCategoryIndex.Execute(f, obj); err != nil { return err } } @@ -154,12 +153,11 @@ func makeSiteStruct(objs map[string]*Object) error { } func makeSitemap(objs map[string]*Object) { - t := template.Must(template.ParseFiles(tmplSitemap)) // FIXME: handle error f, _ := os.Create(outSitemapFile) fmt.Printf("Render Sitemap to: %s\n", outSitemapFile) - _ = t.Execute(f, objs) + _ = tplSitemap.Execute(f, objs) } func makeObjByID(selector string, s *goquery.Selection) (obj *Object) { diff --git a/scripts.go b/scripts.go index 876c881b732..b810dc7b81f 100644 --- a/scripts.go +++ b/scripts.go @@ -48,14 +48,13 @@ func GenerateHTML(srcFilename, outFilename string) error { } c := &content{Body: template.HTML(body)} - t := template.Must(template.ParseFiles(tplPath)) f, err := os.Create(outFilename) if err != nil { return err } fmt.Printf("Write Index file: %s\n", outIndexFile) - if err := t.Execute(f, c); err != nil { + if err := tplIndex.Execute(f, c); err != nil { return err } diff --git a/stale_repositories_test.go b/stale_repositories_test.go index dc37bffd073..8bfbd64ca6d 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -18,12 +18,14 @@ import ( "golang.org/x/oauth2" ) -const issueTemplate = ` +const issueTemplateContent = ` {{range .}} - [ ] {{.}} {{end}} ` +var issueTemplate = template.Must(template.New("issue").Parse(issueTemplateContent)) + var reGithubRepo = regexp.MustCompile("https://github.com/[a-zA-Z0-9-._]+/[a-zA-Z0-9-._]+$") var githubGETREPO = "https://api.github.com/repos%s" var githubGETCOMMITS = "https://api.github.com/repos%s/commits" @@ -38,7 +40,7 @@ const movedPermanently = " status code 301 received" const status302 = " status code 302 received" const archived = " repository has been archived" -//LIMIT specifies the max number of repositories that are added in a single run of the script +// LIMIT specifies the max number of repositories that are added in a single run of the script var LIMIT = 10 var ctr = 0 @@ -77,13 +79,8 @@ func getRepositoriesFromBody(body string) []string { } func generateIssueBody(repositories []string) (string, error) { var writer bytes.Buffer - t := template.New("issue") - temp, err := t.Parse(issueTemplate) - if err != nil { - log.Print("Failed to generate template") - return "", err - } - err = temp.Execute(&writer, repositories) + + err := issueTemplate.Execute(&writer, repositories) if err != nil { log.Print("Failed to generate template") return "", err From 821eb457bf5651c0758214376a287df38421e1d9 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:46:42 +0100 Subject: [PATCH 2995/3440] all assets urls in one style --- tmpl/cat-tmpl.html | 6 +++--- tmpl/tmpl.html | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index 63d53064363..b6d57b8dae5 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -23,9 +23,9 @@ - - - + + + diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index 3a87a1553ef..eab18e4c11a 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -23,9 +23,9 @@ - - - + + + From be52079b82d82d9cd779fc267599b0a7fa92e2aa Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:46:53 +0100 Subject: [PATCH 2996/3440] notes --- main.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index b879d475869..cca9ed6bf58 100644 --- a/main.go +++ b/main.go @@ -192,6 +192,8 @@ func changeLinksInIndex(html string, query *goquery.Document, objs map[string]*O query.Find("body #content ul li ul li a").Each(func(_ int, s *goquery.Selection) { href, hrefExists := s.Attr("href") if !hrefExists { + // FIXME: looks like is an error. Tag `a` in our case always + // should have `href` attr. return } @@ -201,10 +203,15 @@ func changeLinksInIndex(html string, query *goquery.Document, objs map[string]*O return } + // FIXME: parse url uri := strings.SplitAfter(href, "#") if len(uri) >= 2 && uri[1] != "contents" { + // FIXME: use s.SetAttr html = strings.ReplaceAll( - html, fmt.Sprintf(`href="%s"`, href), fmt.Sprintf(`href="%s"`, uri[1])) + html, + fmt.Sprintf(`href="%s"`, href), + fmt.Sprintf(`href="%s"`, uri[1]), + ) } }) From 0355285938e4057b6c8455d8e7e15676e6327842 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:56:32 +0100 Subject: [PATCH 2997/3440] remove unnecessary pointers --- main.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index cca9ed6bf58..f01172aa8dd 100644 --- a/main.go +++ b/main.go @@ -75,7 +75,7 @@ func main() { panic(err) } - objs := make(map[string]*Object) + objs := make(map[string]Object) query.Find("body #contents").NextFiltered("ul").Find("ul").Each(func(_ int, s *goquery.Selection) { s.Find("li a").Each(func(_ int, s *goquery.Selection) { selector, exists := s.Attr("href") @@ -86,7 +86,7 @@ func main() { if obj == nil { return } - objs[selector] = obj + objs[selector] = *obj }) }) @@ -127,7 +127,7 @@ func mkdirAll(path string) error { return nil } -func makeSiteStruct(objs map[string]*Object) error { +func makeSiteStruct(objs map[string]Object) error { for _, obj := range objs { categoryDir := filepath.Join(outDir, obj.Slug) if err := mkdirAll(categoryDir); err != nil { @@ -152,7 +152,7 @@ func makeSiteStruct(objs map[string]*Object) error { return nil } -func makeSitemap(objs map[string]*Object) { +func makeSitemap(objs map[string]Object) { // FIXME: handle error f, _ := os.Create(outSitemapFile) fmt.Printf("Render Sitemap to: %s\n", outSitemapFile) @@ -188,7 +188,7 @@ func makeObjByID(selector string, s *goquery.Selection) (obj *Object) { return } -func changeLinksInIndex(html string, query *goquery.Document, objs map[string]*Object) { +func changeLinksInIndex(html string, query *goquery.Document, objs map[string]Object) { query.Find("body #content ul li ul li a").Each(func(_ int, s *goquery.Selection) { href, hrefExists := s.Attr("href") if !hrefExists { From fa037598a3df43a0ab7c88b96fdc0070225dce6b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 20:06:46 +0100 Subject: [PATCH 2998/3440] simple makeObjByID refactoring --- main.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index f01172aa8dd..68aaf9218cc 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "bytes" + "errors" "fmt" cp "github.com/otiai10/copy" "os" @@ -82,10 +83,11 @@ func main() { if !exists { return } - obj := makeObjByID(selector, query.Find("body")) - if obj == nil { + obj, err := makeObjByID(selector, query.Find("body")) + if err != nil { return } + objs[selector] = *obj }) }) @@ -160,12 +162,15 @@ func makeSitemap(objs map[string]Object) { _ = tplSitemap.Execute(f, objs) } -func makeObjByID(selector string, s *goquery.Selection) (obj *Object) { +func makeObjByID(selector string, s *goquery.Selection) (*Object, error) { + var obj Object + var err error + s.Find(selector).Each(func(_ int, s *goquery.Selection) { desc := s.NextFiltered("p") ul := s.NextFilteredUntil("ul", "h2") - links := []Link{} + var links []Link ul.Find("li").Each(func(_ int, s *goquery.Selection) { url, _ := s.Find("a").Attr("href") link := Link{ @@ -175,17 +180,24 @@ func makeObjByID(selector string, s *goquery.Selection) (obj *Object) { } links = append(links, link) }) + // FIXME: In this case we would have an empty category in main index.html with link to 404 page. if len(links) == 0 { + err = errors.New("object has no links") return } - obj = &Object{ + obj = Object{ Slug: slug.Generate(s.Text()), Title: s.Text(), Description: desc.Text(), Items: links, } }) - return + + if err != nil { + return nil, fmt.Errorf("unable to build an object: %w", err) + } + + return &obj, nil } func changeLinksInIndex(html string, query *goquery.Document, objs map[string]Object) { From 65dc56e40fc4e76241a59c9bbe6102a62dffc1e3 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 20:24:30 +0100 Subject: [PATCH 2999/3440] add notes --- main.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index 68aaf9218cc..4deed39da9f 100644 --- a/main.go +++ b/main.go @@ -166,16 +166,21 @@ func makeObjByID(selector string, s *goquery.Selection) (*Object, error) { var obj Object var err error - s.Find(selector).Each(func(_ int, s *goquery.Selection) { - desc := s.NextFiltered("p") - ul := s.NextFilteredUntil("ul", "h2") + s.Find(selector).Each(func(_ int, selCatHeader *goquery.Selection) { + selDescr := selCatHeader.NextFiltered("p") + // FIXME: bug. this would select links from all neighboring + // sub-categories until the next category. To prevent this we should + // find only first ul + ul := selCatHeader.NextFilteredUntil("ul", "h2") var links []Link - ul.Find("li").Each(func(_ int, s *goquery.Selection) { - url, _ := s.Find("a").Attr("href") + ul.Find("li").Each(func(_ int, selLi *goquery.Selection) { + selLink := selLi.Find("a") + url, _ := selLink.Attr("href") link := Link{ - Title: s.Find("a").Text(), - Description: s.Text(), + Title: selLink.Text(), + // FIXME: Title contains only title but description contains Title + description + Description: selLi.Text(), Url: url, } links = append(links, link) @@ -186,9 +191,9 @@ func makeObjByID(selector string, s *goquery.Selection) (*Object, error) { return } obj = Object{ - Slug: slug.Generate(s.Text()), - Title: s.Text(), - Description: desc.Text(), + Slug: slug.Generate(selCatHeader.Text()), + Title: selCatHeader.Text(), + Description: selDescr.Text(), Items: links, } }) From 60f3e1295f0648943aa45d2cf8f2367097b32c07 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 21:26:32 +0100 Subject: [PATCH 3000/3440] rename --- pkg/markdown/convert.go | 4 ++-- pkg/markdown/convert_test.go | 8 ++++---- scripts.go | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/markdown/convert.go b/pkg/markdown/convert.go index 0a14f00da9c..31a77e5e508 100644 --- a/pkg/markdown/convert.go +++ b/pkg/markdown/convert.go @@ -12,8 +12,8 @@ import ( "github.com/yuin/goldmark/util" ) -// ConvertMarkdownToHTML converts markdown byte slice to a HTML byte slice -func ConvertMarkdownToHTML(markdown []byte) ([]byte, error) { +// ToHTML converts markdown byte slice to a HTML byte slice +func ToHTML(markdown []byte) ([]byte, error) { md := goldmark.New( goldmark.WithExtensions(extension.GFM), goldmark.WithParserOptions( diff --git a/pkg/markdown/convert_test.go b/pkg/markdown/convert_test.go index 0efdf84e588..9f2c58c25bc 100644 --- a/pkg/markdown/convert_test.go +++ b/pkg/markdown/convert_test.go @@ -5,7 +5,7 @@ import ( "testing" ) -func TestConvertMarkdownToHTML(t *testing.T) { +func TestToHTML(t *testing.T) { input := []byte( `## some headline followed by some paragraph with [a link](https://example.local) @@ -46,12 +46,12 @@ and some list:

embedded HTML is allowed

`, ) - got, err := ConvertMarkdownToHTML(input) + got, err := ToHTML(input) if err != nil { - t.Errorf("ConvertMarkdownToHTML() error = %v", err) + t.Errorf("ToHTML() error = %v", err) return } if strings.TrimSpace(string(got)) != strings.TrimSpace(string(expected)) { - t.Errorf("ConvertMarkdownToHTML() got = %v, want %v", string(got), string(expected)) + t.Errorf("ToHTML() got = %v, want %v", string(got), string(expected)) } } diff --git a/scripts.go b/scripts.go index b810dc7b81f..9d185b58371 100644 --- a/scripts.go +++ b/scripts.go @@ -15,7 +15,7 @@ func readme() []byte { if err != nil { panic(err) } - html, err := markdown.ConvertMarkdownToHTML(input) + html, err := markdown.ToHTML(input) if err != nil { panic(err) } @@ -42,7 +42,7 @@ func GenerateHTML(srcFilename, outFilename string) error { return err } - body, err := markdown.ConvertMarkdownToHTML(input) + body, err := markdown.ToHTML(input) if err != nil { return err } From 537fa15d0204c2901bd1a3b26fb59a5a9024390b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 21:26:37 +0100 Subject: [PATCH 3001/3440] fixme --- main.go | 1 + pkg/slug/generator.go | 1 + 2 files changed, 2 insertions(+) diff --git a/main.go b/main.go index 4deed39da9f..bcd355e7c89 100644 --- a/main.go +++ b/main.go @@ -122,6 +122,7 @@ func mkdirAll(path string) error { } // NOTE: directory is not exists + // FIXME: fix rights if err := os.MkdirAll(path, 0o755); err != nil { return err } diff --git a/pkg/slug/generator.go b/pkg/slug/generator.go index 8bafcf2f7e5..d2f79403c84 100644 --- a/pkg/slug/generator.go +++ b/pkg/slug/generator.go @@ -8,6 +8,7 @@ import ( // Generate slugs similar to GitHub's slugs on markdown parsing func Generate(text string) string { + // FIXME: this is should be like regexp.Replace(`[^-a-zA-Z\d]+`, ``) s := strings.ReplaceAll(text, "/", "") return slugify.Slugify(strings.TrimSpace(s)) } From ed81c04cbdeb7310995e060002b4ac6c35246115 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 22:34:53 +0100 Subject: [PATCH 3002/3440] fix html markup --- tmpl/cat-tmpl.html | 45 ++++++++++++++++++++++----------------------- tmpl/tmpl.html | 29 ++++++++++++++--------------- 2 files changed, 36 insertions(+), 38 deletions(-) diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index b6d57b8dae5..b0031c88adf 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -1,31 +1,30 @@ - + - - - - + + + {{.Title}} - Awesome Go / Golang - - - + + + - + - - - + + + - - - + + + @@ -42,11 +41,11 @@

{{.Description}}

- Build Status - Awesome - Slack Widget - Netlify Status - Track Awesome List + Build Status + Awesome + Slack Widget + Netlify Status + Track Awesome List

@@ -62,20 +61,20 @@

Sponsorships

- Doppler + Doppler
Quit struggling with scattered API keys and access controls.

- x-team + x-team
Work from anywhere in the world with top tech companies like Riot Games, Coinbase, and Google.

- Digital Ocean + Digital Ocean

diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index eab18e4c11a..8436559f79e 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -1,31 +1,30 @@ - + - - - - + + + A curated list of awesome Go frameworks, libraries and software - Awesome Go / Golang - - - + + + - + - - - + + + - - - + + + From 653675d7b9d14ed03fa3cdb248a9f86660d843de Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 22:55:40 +0100 Subject: [PATCH 3003/3440] move test functions to test file --- main_test.go | 27 +++++++++++++++++++++++++-- scripts.go | 23 ----------------------- stale_repositories_test.go | 2 +- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/main_test.go b/main_test.go index 8a943a0bc86..8aa43fe6851 100644 --- a/main_test.go +++ b/main_test.go @@ -1,6 +1,8 @@ package main import ( + "bytes" + "github.com/avelino/awesome-go/pkg/markdown" "os" "regexp" "sort" @@ -16,8 +18,29 @@ var ( reLinkWithDescription = regexp.MustCompile(`\* \[.*\]\(.*\) - \S.*[\.\!]`) ) +func helpGetReadmeHTML() []byte { + input, err := os.ReadFile(readmePath) + if err != nil { + panic(err) + } + html, err := markdown.ToHTML(input) + if err != nil { + panic(err) + } + return html +} + +func helpBuildQuery() *goquery.Document { + buf := bytes.NewBuffer(helpGetReadmeHTML()) + query, err := goquery.NewDocumentFromReader(buf) + if err != nil { + panic(err) + } + return query +} + func TestAlpha(t *testing.T) { - query := startQuery() + query := helpBuildQuery() query.Find("body > ul").Each(func(i int, s *goquery.Selection) { if i != 0 { // skip content menu @@ -30,7 +53,7 @@ func TestAlpha(t *testing.T) { } func TestDuplicatedLinks(t *testing.T) { - query := startQuery() + query := helpBuildQuery() links := make(map[string]bool, 0) query.Find("body li > a:first-child").Each(func(_ int, s *goquery.Selection) { t.Run(s.Text(), func(t *testing.T) { diff --git a/scripts.go b/scripts.go index 9d185b58371..75063bb0dba 100644 --- a/scripts.go +++ b/scripts.go @@ -1,36 +1,13 @@ package main import ( - "bytes" "fmt" "html/template" "os" - "github.com/PuerkitoBio/goquery" "github.com/avelino/awesome-go/pkg/markdown" ) -func readme() []byte { - input, err := os.ReadFile(readmePath) - if err != nil { - panic(err) - } - html, err := markdown.ToHTML(input) - if err != nil { - panic(err) - } - return html -} - -func startQuery() *goquery.Document { - buf := bytes.NewBuffer(readme()) - query, err := goquery.NewDocumentFromReader(buf) - if err != nil { - panic(err) - } - return query -} - type content struct { Body template.HTML } diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 8bfbd64ca6d..55823aed53b 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -215,7 +215,7 @@ func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]s return false } func testStaleRepository() { - query := startQuery() + query := helpBuildQuery() var staleRepos []string addressedRepositories := make(map[string]bool) oauth := os.Getenv("OAUTH_TOKEN") From e462832b4f0c75dc81c80f0e8a72d80d5515b614 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 22:55:56 +0100 Subject: [PATCH 3004/3440] rename fn --- main.go | 2 +- main_test.go | 2 +- scripts.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index bcd355e7c89..77e7388aa77 100644 --- a/main.go +++ b/main.go @@ -61,7 +61,7 @@ func main() { } } - err := GenerateHTML(readmePath, outIndexFile) + err := ConvertAndRenderIndex(readmePath, outIndexFile) if err != nil { panic(err) } diff --git a/main_test.go b/main_test.go index 8aa43fe6851..b4431e20d72 100644 --- a/main_test.go +++ b/main_test.go @@ -94,7 +94,7 @@ func TestSeparator(t *testing.T) { } func TestGenerateHTML(t *testing.T) { - err := GenerateHTML(readmePath, outIndexFile) + err := ConvertAndRenderIndex(readmePath, outIndexFile) if err != nil { t.Errorf("html generate error '%s'", err.Error()) } diff --git a/scripts.go b/scripts.go index 75063bb0dba..a7162811feb 100644 --- a/scripts.go +++ b/scripts.go @@ -12,8 +12,8 @@ type content struct { Body template.HTML } -// GenerateHTML generate site html (index.html) from markdown file -func GenerateHTML(srcFilename, outFilename string) error { +// ConvertAndRenderIndex generate site html (index.html) from markdown file +func ConvertAndRenderIndex(srcFilename, outFilename string) error { input, err := os.ReadFile(srcFilename) if err != nil { return err From 1472201cf6f49e10fa0020bf422481e4903edfb7 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 22:59:11 +0100 Subject: [PATCH 3005/3440] simplify template context --- scripts.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/scripts.go b/scripts.go index a7162811feb..30726e1e8d2 100644 --- a/scripts.go +++ b/scripts.go @@ -8,10 +8,6 @@ import ( "github.com/avelino/awesome-go/pkg/markdown" ) -type content struct { - Body template.HTML -} - // ConvertAndRenderIndex generate site html (index.html) from markdown file func ConvertAndRenderIndex(srcFilename, outFilename string) error { input, err := os.ReadFile(srcFilename) @@ -24,14 +20,16 @@ func ConvertAndRenderIndex(srcFilename, outFilename string) error { return err } - c := &content{Body: template.HTML(body)} f, err := os.Create(outFilename) if err != nil { return err } fmt.Printf("Write Index file: %s\n", outIndexFile) - if err := tplIndex.Execute(f, c); err != nil { + data := map[string]interface{}{ + "Body": template.HTML(body), + } + if err := tplIndex.Execute(f, data); err != nil { return err } From 4b75831c25d4518ff5ba742fb531097d44e46888 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:00:00 +0100 Subject: [PATCH 3006/3440] rename test fn --- main_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main_test.go b/main_test.go index b4431e20d72..1fa5ebf2426 100644 --- a/main_test.go +++ b/main_test.go @@ -93,7 +93,7 @@ func TestSeparator(t *testing.T) { } } -func TestGenerateHTML(t *testing.T) { +func TestConvertAndRenderIndex(t *testing.T) { err := ConvertAndRenderIndex(readmePath, outIndexFile) if err != nil { t.Errorf("html generate error '%s'", err.Error()) From 023a8a8de3bb9ba9d4577f0318abe741844b3a7a Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:10:50 +0100 Subject: [PATCH 3007/3440] panics -> errors with explanation --- main.go | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 77e7388aa77..97d793a1af1 100644 --- a/main.go +++ b/main.go @@ -50,30 +50,37 @@ var outIndexFile = filepath.Join(outDir, "index.html") var outSitemapFile = filepath.Join(outDir, "sitemap.xml") func main() { + if err := renderAll(); err != nil { + panic(err) + } +} + +// FIXME: choose a better name +func renderAll() error { // Cleanup and re-create output directory { if err := os.RemoveAll(outDir); err != nil { - panic(err) + return fmt.Errorf("unable to remove target dir: %w", err) } if err := mkdirAll(outDir); err != nil { - panic(err) + return fmt.Errorf("unable to create target dir: %w", err) } } err := ConvertAndRenderIndex(readmePath, outIndexFile) if err != nil { - panic(err) + return fmt.Errorf("unable to convert markdown to html: %w", err) } input, err := os.ReadFile(outIndexFile) if err != nil { - panic(err) + return fmt.Errorf("unable to read converted html: %w", err) } query, err := goquery.NewDocumentFromReader(bytes.NewReader(input)) if err != nil { - panic(err) + return fmt.Errorf("unable to create goquery instance: %w", err) } objs := make(map[string]Object) @@ -83,6 +90,7 @@ func main() { if !exists { return } + obj, err := makeObjByID(selector, query.Find("body")) if err != nil { return @@ -94,7 +102,7 @@ func main() { if err := makeSiteStruct(objs); err != nil { // FIXME: remove all panics - panic(err) + return fmt.Errorf("unable to render categories: %w", err) } changeLinksInIndex(string(input), query, objs) @@ -104,9 +112,11 @@ func main() { dstFilename := filepath.Join(outDir, filepath.Base(srcFilename)) fmt.Printf("Copy static file: %s -> %s\n", srcFilename, dstFilename) if err := cp.Copy(srcFilename, dstFilename); err != nil { - panic(err) + return fmt.Errorf("unable to copy static file `%s` to `%s`: %w", srcFilename, dstFilename, err) } } + + return nil } func mkdirAll(path string) error { From 2a02310fbb23c3b0c6da7e5890685163627f0ee8 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:26:55 +0100 Subject: [PATCH 3008/3440] change unsafe strings.Replace to goquery.SetAttr --- main.go | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index 97d793a1af1..aabfea14eb8 100644 --- a/main.go +++ b/main.go @@ -104,7 +104,10 @@ func renderAll() error { // FIXME: remove all panics return fmt.Errorf("unable to render categories: %w", err) } - changeLinksInIndex(string(input), query, objs) + + if err := rewriteLinksInIndex(query, objs); err != nil { + return fmt.Errorf("unable to rewrite links in index: %w", err) + } makeSitemap(objs) @@ -216,7 +219,7 @@ func makeObjByID(selector string, s *goquery.Selection) (*Object, error) { return &obj, nil } -func changeLinksInIndex(html string, query *goquery.Document, objs map[string]Object) { +func rewriteLinksInIndex(query *goquery.Document, objs map[string]Object) error { query.Find("body #content ul li ul li a").Each(func(_ int, s *goquery.Selection) { href, hrefExists := s.Attr("href") if !hrefExists { @@ -234,15 +237,19 @@ func changeLinksInIndex(html string, query *goquery.Document, objs map[string]Ob // FIXME: parse url uri := strings.SplitAfter(href, "#") if len(uri) >= 2 && uri[1] != "contents" { - // FIXME: use s.SetAttr - html = strings.ReplaceAll( - html, - fmt.Sprintf(`href="%s"`, href), - fmt.Sprintf(`href="%s"`, uri[1]), - ) + s.SetAttr("href", uri[1]) } }) fmt.Printf("Rewrite links in Index file: %s\n", outIndexFile) - _ = os.WriteFile(outIndexFile, []byte(html), 0644) + resultHtml, err := query.Html() + if err != nil { + return fmt.Errorf("unable to render html: %w", err) + } + + if err := os.WriteFile(outIndexFile, []byte(resultHtml), 0644); err != nil { + return fmt.Errorf("unable to rewrite index file: %w", err) + } + + return nil } From b72fea4a9268919f5ca7a7c196c22b4817a8cefe Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:50:57 +0100 Subject: [PATCH 3009/3440] rename function --- main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index aabfea14eb8..48e31475a47 100644 --- a/main.go +++ b/main.go @@ -100,7 +100,7 @@ func renderAll() error { }) }) - if err := makeSiteStruct(objs); err != nil { + if err := renderCategories(objs); err != nil { // FIXME: remove all panics return fmt.Errorf("unable to render categories: %w", err) } @@ -143,7 +143,7 @@ func mkdirAll(path string) error { return nil } -func makeSiteStruct(objs map[string]Object) error { +func renderCategories(objs map[string]Object) error { for _, obj := range objs { categoryDir := filepath.Join(outDir, obj.Slug) if err := mkdirAll(categoryDir); err != nil { From 6355fbab4a5478c643153b787339892aec86b4c1 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:58:11 +0100 Subject: [PATCH 3010/3440] pass all html's through goquery --- main.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 48e31475a47..f1b9da26c2a 100644 --- a/main.go +++ b/main.go @@ -153,15 +153,29 @@ func renderCategories(objs map[string]Object) error { // FIXME: embed templates // FIXME: parse templates once at start categoryIndexFilename := filepath.Join(categoryDir, "index.html") - f, err := os.Create(categoryIndexFilename) - if err != nil { + fmt.Printf("Write category Index file: %s\n", categoryIndexFilename) + + buf := bytes.NewBuffer(nil) + if err := tplCategoryIndex.Execute(buf, obj); err != nil { return err } - fmt.Printf("Write category Index file: %s\n", categoryIndexFilename) + // Sanitize HTML. This is not necessary, but allows to have content + // of all html files in same style. + { + query, err := goquery.NewDocumentFromReader(buf) + if err != nil { + return err + } - if err := tplCategoryIndex.Execute(f, obj); err != nil { - return err + html, err := query.Html() + if err != nil { + return err + } + + if err := os.WriteFile(categoryIndexFilename, []byte(html), 0644); err != nil { + return err + } } } From daf8a606ee3a8d8bea5f57232c9195b5b6965087 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:02:32 +0100 Subject: [PATCH 3011/3440] replace p to div --- tmpl/cat-tmpl.html | 4 ++-- tmpl/tmpl.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index b0031c88adf..614f42d77d7 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -55,10 +55,10 @@

Sponsorships

-

+

-

+

Doppler diff --git a/tmpl/tmpl.html b/tmpl/tmpl.html index 8436559f79e..3142c956f86 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -30,10 +30,10 @@

-

+

-

+
{{.Body}} From bd9ede91f21c88e31b3febe54900984f5f68a6dd Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:05:16 +0100 Subject: [PATCH 3012/3440] all panics removed from main package --- main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/main.go b/main.go index f1b9da26c2a..ceea371bf97 100644 --- a/main.go +++ b/main.go @@ -101,7 +101,6 @@ func renderAll() error { }) if err := renderCategories(objs); err != nil { - // FIXME: remove all panics return fmt.Errorf("unable to render categories: %w", err) } From ad5b2c7fc4734b98aa5e3531551c5d962744d879 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:05:31 +0100 Subject: [PATCH 3013/3440] handle errors on render sitemap --- main.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index ceea371bf97..d14fc59b356 100644 --- a/main.go +++ b/main.go @@ -108,7 +108,9 @@ func renderAll() error { return fmt.Errorf("unable to rewrite links in index: %w", err) } - makeSitemap(objs) + if err := renderSitemap(objs); err != nil { + return fmt.Errorf("unable to render sitemap: %w", err) + } for _, srcFilename := range staticFiles { dstFilename := filepath.Join(outDir, filepath.Base(srcFilename)) @@ -181,12 +183,20 @@ func renderCategories(objs map[string]Object) error { return nil } -func makeSitemap(objs map[string]Object) { +func renderSitemap(objs map[string]Object) error { // FIXME: handle error - f, _ := os.Create(outSitemapFile) + f, err := os.Create(outSitemapFile) + if err != nil { + return fmt.Errorf("unable to create sitemap file `%s`: %w", outSitemapFile, err) + } + fmt.Printf("Render Sitemap to: %s\n", outSitemapFile) - _ = tplSitemap.Execute(f, objs) + if err := tplSitemap.Execute(f, objs); err != nil { + return fmt.Errorf("unable to render sitemap: %w", err) + } + + return nil } func makeObjByID(selector string, s *goquery.Selection) (*Object, error) { From cdad1137cf23fa595324d2ba0d0227471b9743cf Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:13:56 +0100 Subject: [PATCH 3014/3440] add paddings to table with sponsors --- tmpl/assets/awesome-go.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tmpl/assets/awesome-go.css b/tmpl/assets/awesome-go.css index eae76812a5e..f5f1298879a 100644 --- a/tmpl/assets/awesome-go.css +++ b/tmpl/assets/awesome-go.css @@ -114,3 +114,7 @@ h1 > a img { font-size: 9px; line-height: 1; } + +td{ + padding: 6px; +} From 341d509f5adc4d39d346a01a14d2564a3b2f329b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:19:35 +0100 Subject: [PATCH 3015/3440] make function private as others --- main.go | 2 +- main_test.go | 2 +- scripts.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index d14fc59b356..099f23d3b19 100644 --- a/main.go +++ b/main.go @@ -68,7 +68,7 @@ func renderAll() error { } } - err := ConvertAndRenderIndex(readmePath, outIndexFile) + err := convertAndRenderIndex(readmePath, outIndexFile) if err != nil { return fmt.Errorf("unable to convert markdown to html: %w", err) } diff --git a/main_test.go b/main_test.go index 1fa5ebf2426..9800952d4ed 100644 --- a/main_test.go +++ b/main_test.go @@ -94,7 +94,7 @@ func TestSeparator(t *testing.T) { } func TestConvertAndRenderIndex(t *testing.T) { - err := ConvertAndRenderIndex(readmePath, outIndexFile) + err := convertAndRenderIndex(readmePath, outIndexFile) if err != nil { t.Errorf("html generate error '%s'", err.Error()) } diff --git a/scripts.go b/scripts.go index 30726e1e8d2..df54b75bdc4 100644 --- a/scripts.go +++ b/scripts.go @@ -8,8 +8,8 @@ import ( "github.com/avelino/awesome-go/pkg/markdown" ) -// ConvertAndRenderIndex generate site html (index.html) from markdown file -func ConvertAndRenderIndex(srcFilename, outFilename string) error { +// convertAndRenderIndex generate site html (index.html) from markdown file +func convertAndRenderIndex(srcFilename, outFilename string) error { input, err := os.ReadFile(srcFilename) if err != nil { return err From b21b8a456b438ab0689d4617fd7fdcf6e7d44c2c Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:19:40 +0100 Subject: [PATCH 3016/3440] fixme --- main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/main.go b/main.go index 099f23d3b19..5d0b0cc6f34 100644 --- a/main.go +++ b/main.go @@ -20,6 +20,7 @@ type Link struct { Description string } +// FIXME: rename to Category type Object struct { Title string Slug string From c876c3fd1143d8878b900c3680d62b464fdf3255 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:21:17 +0100 Subject: [PATCH 3017/3440] function chains splitted into lines --- main.go | 84 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 38 deletions(-) diff --git a/main.go b/main.go index 5d0b0cc6f34..8fc5cb8c890 100644 --- a/main.go +++ b/main.go @@ -79,33 +79,39 @@ func renderAll() error { return fmt.Errorf("unable to read converted html: %w", err) } - query, err := goquery.NewDocumentFromReader(bytes.NewReader(input)) + doc, err := goquery.NewDocumentFromReader(bytes.NewReader(input)) if err != nil { return fmt.Errorf("unable to create goquery instance: %w", err) } objs := make(map[string]Object) - query.Find("body #contents").NextFiltered("ul").Find("ul").Each(func(_ int, s *goquery.Selection) { - s.Find("li a").Each(func(_ int, s *goquery.Selection) { - selector, exists := s.Attr("href") - if !exists { - return - } - - obj, err := makeObjByID(selector, query.Find("body")) - if err != nil { - return - } - - objs[selector] = *obj + doc. + Find("body #contents"). + NextFiltered("ul"). + Find("ul"). + Each(func(_ int, selUl *goquery.Selection) { + selUl. + Find("li a"). + Each(func(_ int, s *goquery.Selection) { + selector, exists := s.Attr("href") + if !exists { + return + } + + obj, err := makeObjByID(selector, doc) + if err != nil { + return + } + + objs[selector] = *obj + }) }) - }) if err := renderCategories(objs); err != nil { return fmt.Errorf("unable to render categories: %w", err) } - if err := rewriteLinksInIndex(query, objs); err != nil { + if err := rewriteLinksInIndex(doc, objs); err != nil { return fmt.Errorf("unable to rewrite links in index: %w", err) } @@ -200,11 +206,11 @@ func renderSitemap(objs map[string]Object) error { return nil } -func makeObjByID(selector string, s *goquery.Selection) (*Object, error) { +func makeObjByID(selector string, doc *goquery.Document) (*Object, error) { var obj Object var err error - s.Find(selector).Each(func(_ int, selCatHeader *goquery.Selection) { + doc.Find(selector).Each(func(_ int, selCatHeader *goquery.Selection) { selDescr := selCatHeader.NextFiltered("p") // FIXME: bug. this would select links from all neighboring // sub-categories until the next category. To prevent this we should @@ -243,30 +249,32 @@ func makeObjByID(selector string, s *goquery.Selection) (*Object, error) { return &obj, nil } -func rewriteLinksInIndex(query *goquery.Document, objs map[string]Object) error { - query.Find("body #content ul li ul li a").Each(func(_ int, s *goquery.Selection) { - href, hrefExists := s.Attr("href") - if !hrefExists { - // FIXME: looks like is an error. Tag `a` in our case always - // should have `href` attr. - return - } +func rewriteLinksInIndex(doc *goquery.Document, objs map[string]Object) error { + doc. + Find("body #content ul li ul li a"). + Each(func(_ int, s *goquery.Selection) { + href, hrefExists := s.Attr("href") + if !hrefExists { + // FIXME: looks like is an error. Tag `a` in our case always + // should have `href` attr. + return + } - // do not replace links if no page has been created for it - _, objExists := objs[href] - if !objExists { - return - } + // do not replace links if no page has been created for it + _, objExists := objs[href] + if !objExists { + return + } - // FIXME: parse url - uri := strings.SplitAfter(href, "#") - if len(uri) >= 2 && uri[1] != "contents" { - s.SetAttr("href", uri[1]) - } - }) + // FIXME: parse url + uri := strings.SplitAfter(href, "#") + if len(uri) >= 2 && uri[1] != "contents" { + s.SetAttr("href", uri[1]) + } + }) fmt.Printf("Rewrite links in Index file: %s\n", outIndexFile) - resultHtml, err := query.Html() + resultHtml, err := doc.Html() if err != nil { return fmt.Errorf("unable to render html: %w", err) } From 3337c5334758667059b5ad1ae8e899727e4850e0 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:31:31 +0100 Subject: [PATCH 3018/3440] wrap errors --- main.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index 8fc5cb8c890..423605e04d4 100644 --- a/main.go +++ b/main.go @@ -139,13 +139,12 @@ func mkdirAll(path string) error { // NOTE: unknown error if !os.IsNotExist(err) { - return err + return fmt.Errorf("unexpected result of dir stat: %w", err) } // NOTE: directory is not exists - // FIXME: fix rights - if err := os.MkdirAll(path, 0o755); err != nil { - return err + if err := os.MkdirAll(path, 0755); err != nil { + return fmt.Errorf("unable to midirAll: %w", err) } return nil @@ -155,7 +154,7 @@ func renderCategories(objs map[string]Object) error { for _, obj := range objs { categoryDir := filepath.Join(outDir, obj.Slug) if err := mkdirAll(categoryDir); err != nil { - return err + return fmt.Errorf("unable to create category dir `%s`: %w", categoryDir, err) } // FIXME: embed templates @@ -165,7 +164,7 @@ func renderCategories(objs map[string]Object) error { buf := bytes.NewBuffer(nil) if err := tplCategoryIndex.Execute(buf, obj); err != nil { - return err + return fmt.Errorf("unable to render category `%s`: %w", categoryDir, err) } // Sanitize HTML. This is not necessary, but allows to have content @@ -173,16 +172,17 @@ func renderCategories(objs map[string]Object) error { { query, err := goquery.NewDocumentFromReader(buf) if err != nil { - return err + // FIXME: remove `unable to` from all fmt.Errorf + return fmt.Errorf("unable to create goquery instance for `%s`: %w", categoryDir, err) } html, err := query.Html() if err != nil { - return err + return fmt.Errorf("unable to render goquery html for `%s`: %w", categoryDir, err) } if err := os.WriteFile(categoryIndexFilename, []byte(html), 0644); err != nil { - return err + return fmt.Errorf("unable to write category file `%s`: %w", categoryDir, err) } } } From a68185d76bb994505ca179445e43c545a68d4173 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:35:13 +0100 Subject: [PATCH 3019/3440] rename --- main.go | 2 +- main_test.go | 4 ++-- scripts.go | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 423605e04d4..5133bd6710d 100644 --- a/main.go +++ b/main.go @@ -69,7 +69,7 @@ func renderAll() error { } } - err := convertAndRenderIndex(readmePath, outIndexFile) + err := renderIndex(readmePath, outIndexFile) if err != nil { return fmt.Errorf("unable to convert markdown to html: %w", err) } diff --git a/main_test.go b/main_test.go index 9800952d4ed..561f130695a 100644 --- a/main_test.go +++ b/main_test.go @@ -93,8 +93,8 @@ func TestSeparator(t *testing.T) { } } -func TestConvertAndRenderIndex(t *testing.T) { - err := convertAndRenderIndex(readmePath, outIndexFile) +func TestRenderIndex(t *testing.T) { + err := renderIndex(readmePath, outIndexFile) if err != nil { t.Errorf("html generate error '%s'", err.Error()) } diff --git a/scripts.go b/scripts.go index df54b75bdc4..9791d467059 100644 --- a/scripts.go +++ b/scripts.go @@ -8,8 +8,8 @@ import ( "github.com/avelino/awesome-go/pkg/markdown" ) -// convertAndRenderIndex generate site html (index.html) from markdown file -func convertAndRenderIndex(srcFilename, outFilename string) error { +// renderIndex generate site html (index.html) from markdown file +func renderIndex(srcFilename, outFilename string) error { input, err := os.ReadFile(srcFilename) if err != nil { return err From c4d60bc29ce80d5d7272394f9c63c6a5932b34a6 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:36:18 +0100 Subject: [PATCH 3020/3440] close file after write --- scripts.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts.go b/scripts.go index 9791d467059..dd1e41c72ec 100644 --- a/scripts.go +++ b/scripts.go @@ -33,5 +33,9 @@ func renderIndex(srcFilename, outFilename string) error { return err } + if err := f.Close(); err != nil { + return fmt.Errorf("unable to close index file: %w", err) + } + return nil } From ed9ab5c59678f0a1e550a3fcb13b71b86a79160a Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:39:11 +0100 Subject: [PATCH 3021/3440] extract drop/create dir func --- main.go | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index 5133bd6710d..b10a4597189 100644 --- a/main.go +++ b/main.go @@ -58,15 +58,8 @@ func main() { // FIXME: choose a better name func renderAll() error { - // Cleanup and re-create output directory - { - if err := os.RemoveAll(outDir); err != nil { - return fmt.Errorf("unable to remove target dir: %w", err) - } - - if err := mkdirAll(outDir); err != nil { - return fmt.Errorf("unable to create target dir: %w", err) - } + if err := dropCreateDir(outDir); err != nil { + return fmt.Errorf("unable to drop-create out dir: %w", err) } err := renderIndex(readmePath, outIndexFile) @@ -130,6 +123,19 @@ func renderAll() error { return nil } +// dropCreateDir drop and create output directory +func dropCreateDir(dir string) error { + if err := os.RemoveAll(dir); err != nil { + return fmt.Errorf("unable to remove dir: %w", err) + } + + if err := mkdirAll(dir); err != nil { + return fmt.Errorf("unable to create dir: %w", err) + } + + return nil +} + func mkdirAll(path string) error { _, err := os.Stat(path) // NOTE: directory is exists From 5d8801f2a16e41e64be26dac677b03f7cc95ba5b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:39:17 +0100 Subject: [PATCH 3022/3440] inline call --- main.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/main.go b/main.go index b10a4597189..cc88960d362 100644 --- a/main.go +++ b/main.go @@ -62,8 +62,7 @@ func renderAll() error { return fmt.Errorf("unable to drop-create out dir: %w", err) } - err := renderIndex(readmePath, outIndexFile) - if err != nil { + if err := renderIndex(readmePath, outIndexFile); err != nil { return fmt.Errorf("unable to convert markdown to html: %w", err) } From de2dbea3b4427f1184eb9270c8d9b1be98b47276 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:42:19 +0100 Subject: [PATCH 3023/3440] extract "object extractor" --- main.go | 54 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/main.go b/main.go index cc88960d362..5c13b3c31db 100644 --- a/main.go +++ b/main.go @@ -76,28 +76,10 @@ func renderAll() error { return fmt.Errorf("unable to create goquery instance: %w", err) } - objs := make(map[string]Object) - doc. - Find("body #contents"). - NextFiltered("ul"). - Find("ul"). - Each(func(_ int, selUl *goquery.Selection) { - selUl. - Find("li a"). - Each(func(_ int, s *goquery.Selection) { - selector, exists := s.Attr("href") - if !exists { - return - } - - obj, err := makeObjByID(selector, doc) - if err != nil { - return - } - - objs[selector] = *obj - }) - }) + objs, err := extractObjects(doc) + if err != nil { + return fmt.Errorf("unable to extract categories: %w", err) + } if err := renderCategories(objs); err != nil { return fmt.Errorf("unable to render categories: %w", err) @@ -135,6 +117,34 @@ func dropCreateDir(dir string) error { return nil } +func extractObjects(doc *goquery.Document) (map[string]Object, error) { + objs := make(map[string]Object) + doc. + Find("body #contents"). + NextFiltered("ul"). + Find("ul"). + Each(func(_ int, selUl *goquery.Selection) { + selUl. + Find("li a"). + Each(func(_ int, s *goquery.Selection) { + selector, exists := s.Attr("href") + if !exists { + return + } + + obj, err := makeObjByID(selector, doc) + if err != nil { + return + } + + objs[selector] = *obj + }) + }) + + // FIXME: handle error + return objs, nil +} + func mkdirAll(path string) error { _, err := os.Stat(path) // NOTE: directory is exists From d0b1e497c268ccd6247f240a56b6a3668a9264f6 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:48:07 +0100 Subject: [PATCH 3024/3440] object -> category --- main.go | 57 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/main.go b/main.go index 5c13b3c31db..846a8217182 100644 --- a/main.go +++ b/main.go @@ -21,7 +21,7 @@ type Link struct { } // FIXME: rename to Category -type Object struct { +type Category struct { Title string Slug string Description string @@ -76,20 +76,20 @@ func renderAll() error { return fmt.Errorf("unable to create goquery instance: %w", err) } - objs, err := extractObjects(doc) + categories, err := extractCategories(doc) if err != nil { return fmt.Errorf("unable to extract categories: %w", err) } - if err := renderCategories(objs); err != nil { + if err := renderCategories(categories); err != nil { return fmt.Errorf("unable to render categories: %w", err) } - if err := rewriteLinksInIndex(doc, objs); err != nil { + if err := rewriteLinksInIndex(doc, categories); err != nil { return fmt.Errorf("unable to rewrite links in index: %w", err) } - if err := renderSitemap(objs); err != nil { + if err := renderSitemap(categories); err != nil { return fmt.Errorf("unable to render sitemap: %w", err) } @@ -117,8 +117,8 @@ func dropCreateDir(dir string) error { return nil } -func extractObjects(doc *goquery.Document) (map[string]Object, error) { - objs := make(map[string]Object) +func extractCategories(doc *goquery.Document) (map[string]Category, error) { + categories := make(map[string]Category) doc. Find("body #contents"). NextFiltered("ul"). @@ -132,17 +132,17 @@ func extractObjects(doc *goquery.Document) (map[string]Object, error) { return } - obj, err := makeObjByID(selector, doc) + category, err := makeCategoryByID(selector, doc) if err != nil { return } - objs[selector] = *obj + categories[selector] = *category }) }) // FIXME: handle error - return objs, nil + return categories, nil } func mkdirAll(path string) error { @@ -165,9 +165,9 @@ func mkdirAll(path string) error { return nil } -func renderCategories(objs map[string]Object) error { - for _, obj := range objs { - categoryDir := filepath.Join(outDir, obj.Slug) +func renderCategories(categories map[string]Category) error { + for _, category := range categories { + categoryDir := filepath.Join(outDir, category.Slug) if err := mkdirAll(categoryDir); err != nil { return fmt.Errorf("unable to create category dir `%s`: %w", categoryDir, err) } @@ -178,7 +178,7 @@ func renderCategories(objs map[string]Object) error { fmt.Printf("Write category Index file: %s\n", categoryIndexFilename) buf := bytes.NewBuffer(nil) - if err := tplCategoryIndex.Execute(buf, obj); err != nil { + if err := tplCategoryIndex.Execute(buf, category); err != nil { return fmt.Errorf("unable to render category `%s`: %w", categoryDir, err) } @@ -205,7 +205,7 @@ func renderCategories(objs map[string]Object) error { return nil } -func renderSitemap(objs map[string]Object) error { +func renderSitemap(categories map[string]Category) error { // FIXME: handle error f, err := os.Create(outSitemapFile) if err != nil { @@ -214,18 +214,18 @@ func renderSitemap(objs map[string]Object) error { fmt.Printf("Render Sitemap to: %s\n", outSitemapFile) - if err := tplSitemap.Execute(f, objs); err != nil { + if err := tplSitemap.Execute(f, categories); err != nil { return fmt.Errorf("unable to render sitemap: %w", err) } return nil } -func makeObjByID(selector string, doc *goquery.Document) (*Object, error) { - var obj Object +func makeCategoryByID(selector string, doc *goquery.Document) (*Category, error) { + var category Category var err error - doc.Find(selector).Each(func(_ int, selCatHeader *goquery.Selection) { + doc.Find(selector).EachWithBreak(func(_ int, selCatHeader *goquery.Selection) bool { selDescr := selCatHeader.NextFiltered("p") // FIXME: bug. this would select links from all neighboring // sub-categories until the next category. To prevent this we should @@ -246,25 +246,28 @@ func makeObjByID(selector string, doc *goquery.Document) (*Object, error) { }) // FIXME: In this case we would have an empty category in main index.html with link to 404 page. if len(links) == 0 { - err = errors.New("object has no links") - return + err = errors.New("category does not contain links") + return false } - obj = Object{ + + category = Category{ Slug: slug.Generate(selCatHeader.Text()), Title: selCatHeader.Text(), Description: selDescr.Text(), Items: links, } + + return true }) if err != nil { - return nil, fmt.Errorf("unable to build an object: %w", err) + return nil, fmt.Errorf("unable to build a category: %w", err) } - return &obj, nil + return &category, nil } -func rewriteLinksInIndex(doc *goquery.Document, objs map[string]Object) error { +func rewriteLinksInIndex(doc *goquery.Document, categories map[string]Category) error { doc. Find("body #content ul li ul li a"). Each(func(_ int, s *goquery.Selection) { @@ -276,8 +279,8 @@ func rewriteLinksInIndex(doc *goquery.Document, objs map[string]Object) error { } // do not replace links if no page has been created for it - _, objExists := objs[href] - if !objExists { + _, catExists := categories[href] + if !catExists { return } From 57318e09c40878692d09a5e2d0300b06e0ea6fb5 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:49:25 +0100 Subject: [PATCH 3025/3440] items -> links --- main.go | 4 ++-- tmpl/cat-tmpl.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 846a8217182..56ef932d22a 100644 --- a/main.go +++ b/main.go @@ -25,7 +25,7 @@ type Category struct { Title string Slug string Description string - Items []Link + Links []Link } // Source files @@ -254,7 +254,7 @@ func makeCategoryByID(selector string, doc *goquery.Document) (*Category, error) Slug: slug.Generate(selCatHeader.Text()), Title: selCatHeader.Text(), Description: selDescr.Text(), - Items: links, + Links: links, } return true diff --git a/tmpl/cat-tmpl.html b/tmpl/cat-tmpl.html index 614f42d77d7..15633f441f9 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -81,7 +81,7 @@

Sponsorships

🗺️ back to content menu From 7e50c43cf2c00d53da368544e2596abb845f582d Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:49:59 +0100 Subject: [PATCH 3026/3440] all objects renamed to category --- main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/main.go b/main.go index 56ef932d22a..bba53058964 100644 --- a/main.go +++ b/main.go @@ -20,7 +20,6 @@ type Link struct { Description string } -// FIXME: rename to Category type Category struct { Title string Slug string From 674ff13b7576785f198ed4ee65d33d16261d871c Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:53:54 +0100 Subject: [PATCH 3027/3440] move extractCategories closer to extractCategory --- main.go | 56 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/main.go b/main.go index bba53058964..0ccfb9b06e5 100644 --- a/main.go +++ b/main.go @@ -116,34 +116,6 @@ func dropCreateDir(dir string) error { return nil } -func extractCategories(doc *goquery.Document) (map[string]Category, error) { - categories := make(map[string]Category) - doc. - Find("body #contents"). - NextFiltered("ul"). - Find("ul"). - Each(func(_ int, selUl *goquery.Selection) { - selUl. - Find("li a"). - Each(func(_ int, s *goquery.Selection) { - selector, exists := s.Attr("href") - if !exists { - return - } - - category, err := makeCategoryByID(selector, doc) - if err != nil { - return - } - - categories[selector] = *category - }) - }) - - // FIXME: handle error - return categories, nil -} - func mkdirAll(path string) error { _, err := os.Stat(path) // NOTE: directory is exists @@ -220,6 +192,34 @@ func renderSitemap(categories map[string]Category) error { return nil } +func extractCategories(doc *goquery.Document) (map[string]Category, error) { + categories := make(map[string]Category) + doc. + Find("body #contents"). + NextFiltered("ul"). + Find("ul"). + Each(func(_ int, selUl *goquery.Selection) { + selUl. + Find("li a"). + Each(func(_ int, s *goquery.Selection) { + selector, exists := s.Attr("href") + if !exists { + return + } + + category, err := makeCategoryByID(selector, doc) + if err != nil { + return + } + + categories[selector] = *category + }) + }) + + // FIXME: handle error + return categories, nil +} + func makeCategoryByID(selector string, doc *goquery.Document) (*Category, error) { var category Category var err error From 77de57b7eb0aa2c640d0c95a4e7e2873035fe25a Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:54:33 +0100 Subject: [PATCH 3028/3440] rename + change signature --- main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 0ccfb9b06e5..c4fedd954e4 100644 --- a/main.go +++ b/main.go @@ -207,7 +207,7 @@ func extractCategories(doc *goquery.Document) (map[string]Category, error) { return } - category, err := makeCategoryByID(selector, doc) + category, err := extractCategory(doc, selector) if err != nil { return } @@ -220,7 +220,7 @@ func extractCategories(doc *goquery.Document) (map[string]Category, error) { return categories, nil } -func makeCategoryByID(selector string, doc *goquery.Document) (*Category, error) { +func extractCategory(doc *goquery.Document, selector string) (*Category, error) { var category Category var err error From 7733671e5e1c5c14c8a8e54c1ee213c6e0871273 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 01:14:43 +0100 Subject: [PATCH 3029/3440] mark help functions as helpers --- main_test.go | 48 ++++++++++++++++++++++++-------------- stale_repositories_test.go | 11 ++++----- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/main_test.go b/main_test.go index 561f130695a..0b9e5623877 100644 --- a/main_test.go +++ b/main_test.go @@ -18,30 +18,44 @@ var ( reLinkWithDescription = regexp.MustCompile(`\* \[.*\]\(.*\) - \S.*[\.\!]`) ) -func helpGetReadmeHTML() []byte { - input, err := os.ReadFile(readmePath) - if err != nil { - panic(err) +func requireNoErr(t *testing.T, err error, msg string) { + // FIXME: replace to github.com/stretchr/testify + t.Helper() + + if msg == "" { + msg = "unknown error" } - html, err := markdown.ToHTML(input) + if err != nil { - panic(err) + t.Fatalf("Received unexpected error [%s]: %+v", msg, err) } +} + +func getReadmeHTML(t *testing.T) []byte { + t.Helper() + + input, err := os.ReadFile(readmePath + "asdasd") + requireNoErr(t, err, "readme file should be exists") + + html, err := markdown.ToHTML(input) + requireNoErr(t, err, "markdown should be rendered to html") + return html } -func helpBuildQuery() *goquery.Document { - buf := bytes.NewBuffer(helpGetReadmeHTML()) - query, err := goquery.NewDocumentFromReader(buf) - if err != nil { - panic(err) - } - return query +func goqueryFromReadme(t *testing.T) *goquery.Document { + t.Helper() + + buf := bytes.NewBuffer(getReadmeHTML(t)) + doc, err := goquery.NewDocumentFromReader(buf) + requireNoErr(t, err, "html must be valid for goquery") + + return doc } func TestAlpha(t *testing.T) { - query := helpBuildQuery() - query.Find("body > ul").Each(func(i int, s *goquery.Selection) { + doc := goqueryFromReadme(t) + doc.Find("body > ul").Each(func(i int, s *goquery.Selection) { if i != 0 { // skip content menu // TODO: the sub items (with 3 hash marks `###`) are staying in @@ -53,9 +67,9 @@ func TestAlpha(t *testing.T) { } func TestDuplicatedLinks(t *testing.T) { - query := helpBuildQuery() + doc := goqueryFromReadme(t) links := make(map[string]bool, 0) - query.Find("body li > a:first-child").Each(func(_ int, s *goquery.Selection) { + doc.Find("body li > a:first-child").Each(func(_ int, s *goquery.Selection) { t.Run(s.Text(), func(t *testing.T) { href, ok := s.Attr("href") if !ok { diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 55823aed53b..c690bdb2b7f 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -214,8 +214,9 @@ func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]s } return false } -func testStaleRepository() { - query := helpBuildQuery() + +func TestStaleRepository(t *testing.T) { + doc := goqueryFromReadme(t) var staleRepos []string addressedRepositories := make(map[string]bool) oauth := os.Getenv("OAUTH_TOKEN") @@ -234,7 +235,7 @@ func testStaleRepository() { log.Println("Failed to get existing issues. Exiting...") return } - query.Find("body li > a:first-child").EachWithBreak(func(_ int, s *goquery.Selection) bool { + doc.Find("body li > a:first-child").EachWithBreak(func(_ int, s *goquery.Selection) bool { href, ok := s.Attr("href") if !ok { log.Println("expected to have href") @@ -263,7 +264,3 @@ func testStaleRepository() { }) createIssue(staleRepos, client) } - -func TestStaleRepository(t *testing.T) { - testStaleRepository() -} From e8f06fcfcac84bb2abff9d9fde3aa1b9b468e73d Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 01:26:37 +0100 Subject: [PATCH 3030/3440] use requireNoErr --- main_test.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/main_test.go b/main_test.go index 0b9e5623877..4f26dcc20da 100644 --- a/main_test.go +++ b/main_test.go @@ -87,9 +87,8 @@ func TestDuplicatedLinks(t *testing.T) { func TestSeparator(t *testing.T) { var matched, containsLink, noDescription bool input, err := os.ReadFile(readmePath) - if err != nil { - panic(err) - } + requireNoErr(t, err, "readme should be exists") + lines := strings.Split(string(input), "\n") for _, line := range lines { line = strings.Trim(line, " ") @@ -109,9 +108,7 @@ func TestSeparator(t *testing.T) { func TestRenderIndex(t *testing.T) { err := renderIndex(readmePath, outIndexFile) - if err != nil { - t.Errorf("html generate error '%s'", err.Error()) - } + requireNoErr(t, err, "html should be rendered") } func testList(t *testing.T, list *goquery.Selection) { From 2c769863f6cacf8a2cacd2ab24689d2413e7b387 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:32:24 +0100 Subject: [PATCH 3031/3440] query -> doc --- main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index c4fedd954e4..60a382f2ee7 100644 --- a/main.go +++ b/main.go @@ -156,13 +156,13 @@ func renderCategories(categories map[string]Category) error { // Sanitize HTML. This is not necessary, but allows to have content // of all html files in same style. { - query, err := goquery.NewDocumentFromReader(buf) + doc, err := goquery.NewDocumentFromReader(buf) if err != nil { // FIXME: remove `unable to` from all fmt.Errorf return fmt.Errorf("unable to create goquery instance for `%s`: %w", categoryDir, err) } - html, err := query.Html() + html, err := doc.Html() if err != nil { return fmt.Errorf("unable to render goquery html for `%s`: %w", categoryDir, err) } From 0e0972c5ca88431049f6a2adc5e21f2ef8c4a588 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:33:11 +0100 Subject: [PATCH 3032/3440] join functions --- main_test.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/main_test.go b/main_test.go index 4f26dcc20da..9876f7002bb 100644 --- a/main_test.go +++ b/main_test.go @@ -31,22 +31,16 @@ func requireNoErr(t *testing.T, err error, msg string) { } } -func getReadmeHTML(t *testing.T) []byte { +func goqueryFromReadme(t *testing.T) *goquery.Document { t.Helper() - input, err := os.ReadFile(readmePath + "asdasd") + input, err := os.ReadFile(readmePath) requireNoErr(t, err, "readme file should be exists") html, err := markdown.ToHTML(input) requireNoErr(t, err, "markdown should be rendered to html") - return html -} - -func goqueryFromReadme(t *testing.T) *goquery.Document { - t.Helper() - - buf := bytes.NewBuffer(getReadmeHTML(t)) + buf := bytes.NewBuffer(html) doc, err := goquery.NewDocumentFromReader(buf) requireNoErr(t, err, "html must be valid for goquery") From 34600773a631e3cc3e5c09439c983dfe06cebb4d Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:33:18 +0100 Subject: [PATCH 3033/3440] fixme --- stale_repositories_test.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index c690bdb2b7f..5bb401bc680 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -26,11 +26,15 @@ const issueTemplateContent = ` var issueTemplate = template.Must(template.New("issue").Parse(issueTemplateContent)) +// FIXME: replace to official github client var reGithubRepo = regexp.MustCompile("https://github.com/[a-zA-Z0-9-._]+/[a-zA-Z0-9-._]+$") var githubGETREPO = "https://api.github.com/repos%s" var githubGETCOMMITS = "https://api.github.com/repos%s/commits" var githubPOSTISSUES = "https://api.github.com/repos/avelino/awesome-go/issues" + +// FIXME: use https var awesomeGoGETISSUES = "http://api.github.com/repos/avelino/awesome-go/issues" //only returns open issues +// FIXME: time.Hour * ... var numberOfYears time.Duration = 1 var timeNow = time.Now() var issueTitle = fmt.Sprintf("Investigate repositories with more than 1 year without update - %s", timeNow.Format("2006-01-02")) From 8d03fd94526ff0d38bd159c1a803bfbe34adb89b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:38:24 +0100 Subject: [PATCH 3034/3440] high-level refactoring --- stale_repositories_test.go | 84 +++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 5bb401bc680..7f79d80c875 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -81,54 +81,57 @@ func getRepositoriesFromBody(body string) []string { } return links } -func generateIssueBody(repositories []string) (string, error) { - var writer bytes.Buffer +func generateIssueBody(t *testing.T, repositories []string) (string, error) { + t.Helper() - err := issueTemplate.Execute(&writer, repositories) - if err != nil { - log.Print("Failed to generate template") - return "", err - } - issueBody := writer.String() - return issueBody, nil + buf := bytes.NewBuffer(nil) + err := issueTemplate.Execute(buf, repositories) + requireNoErr(t, err, "Failed to generate template") + + return buf.String(), nil } -func createIssue(staleRepos []string, client *http.Client) { + +func createIssue(t *testing.T, staleRepos []string, client *http.Client) { + t.Helper() + if len(staleRepos) == 0 { log.Print("NO STALE REPOSITORIES") return } - body, err := generateIssueBody(staleRepos) - if err != nil { - log.Print("Failed at CreateIssue") - return - } + + body, err := generateIssueBody(t, staleRepos) + requireNoErr(t, err, "failed to generate issue body") + newIssue := &issue{ Title: issueTitle, Body: body, } buf := new(bytes.Buffer) - json.NewEncoder(buf).Encode(newIssue) + requireNoErr(t, json.NewEncoder(buf).Encode(newIssue), "failed to encode json req") + req, err := http.NewRequest("POST", githubPOSTISSUES, buf) - if err != nil { - log.Print("Failed at CreateIssue") - return - } - client.Do(req) + requireNoErr(t, err, "failed to create request") + + _, roundTripErr := client.Do(req) + requireNoErr(t, roundTripErr, "failed to send request") } -func getAllFlaggedRepositories(client *http.Client, flaggedRepositories *map[string]bool) error { + +// FIXME: remove pointer from map +func getAllFlaggedRepositories(t *testing.T, client *http.Client, flaggedRepositories *map[string]bool) error { + t.Helper() + + // FIXME: replace to http.MethodGet req, err := http.NewRequest("GET", awesomeGoGETISSUES, nil) - if err != nil { - log.Print("Failed to get all issues") - return err - } + requireNoErr(t, err, "failed to create request") + res, err := client.Do(req) - if err != nil { - log.Print("Failed to get all issues") - return err - } - target := []issue{} + requireNoErr(t, err, "failed to send request") + + var target []issue defer res.Body.Close() - json.NewDecoder(res.Body).Decode(&target) + + requireNoErr(t, json.NewDecoder(res.Body).Decode(&target), "failed to unmarshal response") + for _, i := range target { if i.Title == issueTitle { repos := getRepositoriesFromBody(i.Body) @@ -148,8 +151,6 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s ownerRepo := strings.ReplaceAll(href, "https://github.com", "") apiCall := fmt.Sprintf(githubGETREPO, ownerRepo) req, err := http.NewRequest("GET", apiCall, nil) - var repoResp repo - isRepoAdded := false if err != nil { log.Printf("Failed at repository %s\n", href) return false @@ -160,7 +161,10 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s return false } defer resp.Body.Close() + + var repoResp repo json.NewDecoder(resp.Body).Decode(&repoResp) + isRepoAdded := false if resp.StatusCode == http.StatusMovedPermanently { *staleRepos = append(*staleRepos, href+movedPermanently) log.Printf("%s returned %d", href, resp.StatusCode) @@ -222,7 +226,6 @@ func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]s func TestStaleRepository(t *testing.T) { doc := goqueryFromReadme(t) var staleRepos []string - addressedRepositories := make(map[string]bool) oauth := os.Getenv("OAUTH_TOKEN") client := &http.Client{} if oauth == "" { @@ -233,12 +236,10 @@ func TestStaleRepository(t *testing.T) { } client = oauth2.NewClient(context.Background(), tokenSource) } - err := getAllFlaggedRepositories(client, &addressedRepositories) + addressedRepositories := make(map[string]bool) + err := getAllFlaggedRepositories(t, client, &addressedRepositories) + requireNoErr(t, err, "failed to get existing issues") - if err != nil { - log.Println("Failed to get existing issues. Exiting...") - return - } doc.Find("body li > a:first-child").EachWithBreak(func(_ int, s *goquery.Selection) bool { href, ok := s.Attr("href") if !ok { @@ -255,6 +256,7 @@ func TestStaleRepository(t *testing.T) { } else { isGithubRepo := reGithubRepo.MatchString(href) if isGithubRepo { + // FIXME: this is `or` expression. Probably we need `and` isRepoAdded := testRepoState(true, href, client, &staleRepos) isRepoAdded = testCommitAge(!isRepoAdded, href, client, &staleRepos) if isRepoAdded { @@ -266,5 +268,5 @@ func TestStaleRepository(t *testing.T) { } return true }) - createIssue(staleRepos, client) + createIssue(t, staleRepos, client) } From 3723a8a56d51cf26b946dda9362c0c1158057ddd Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:39:11 +0100 Subject: [PATCH 3035/3440] add lines between funcs --- stale_repositories_test.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 7f79d80c875..13dc806313d 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -51,10 +51,12 @@ var ctr = 0 type tokenSource struct { AccessToken string } + type issue struct { Title string `json:"title"` Body string `json:"body"` } + type repo struct { Archived bool `json:"archived"` } @@ -65,6 +67,7 @@ func (t *tokenSource) Token() (*oauth2.Token, error) { } return token, nil } + func getRepositoriesFromBody(body string) []string { links := strings.Split(body, "- ") for idx, link := range links { @@ -81,6 +84,7 @@ func getRepositoriesFromBody(body string) []string { } return links } + func generateIssueBody(t *testing.T, repositories []string) (string, error) { t.Helper() @@ -142,10 +146,12 @@ func getAllFlaggedRepositories(t *testing.T, client *http.Client, flaggedReposit } return nil } + func containsOpenIssue(link string, openIssues map[string]bool) bool { _, ok := openIssues[link] return ok } + func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { if toRun { ownerRepo := strings.ReplaceAll(href, "https://github.com", "") @@ -189,6 +195,7 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s } return false } + func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { if toRun { var respObj []map[string]interface{} From e9fd08d3279e8c7ed98ab61bf6d15d1a8fb410e1 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 03:55:29 +0100 Subject: [PATCH 3036/3440] refactoring 2 --- stale_repositories_test.go | 270 ++++++++++++++++++++----------------- 1 file changed, 150 insertions(+), 120 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 13dc806313d..7a003f937c7 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -62,26 +62,26 @@ type repo struct { } func (t *tokenSource) Token() (*oauth2.Token, error) { - token := &oauth2.Token{ + return &oauth2.Token{ AccessToken: t.AccessToken, - } - return token, nil + }, nil } func getRepositoriesFromBody(body string) []string { links := strings.Split(body, "- ") - for idx, link := range links { - str := strings.ReplaceAll(link, "\r", "") - str = strings.ReplaceAll(str, "[ ]", "") - str = strings.ReplaceAll(str, "[x]", "") - str = strings.ReplaceAll(str, " ", "") - str = strings.ReplaceAll(str, "\n", "") - str = strings.ReplaceAll(str, deadLinkMessage, "") - str = strings.ReplaceAll(str, movedPermanently, "") - str = strings.ReplaceAll(str, status302, "") - str = strings.ReplaceAll(str, archived, "") - links[idx] = str + for i, link := range links { + link = strings.ReplaceAll(link, "\r", "") + link = strings.ReplaceAll(link, "[ ]", "") + link = strings.ReplaceAll(link, "[x]", "") + link = strings.ReplaceAll(link, " ", "") + link = strings.ReplaceAll(link, "\n", "") + link = strings.ReplaceAll(link, deadLinkMessage, "") + link = strings.ReplaceAll(link, movedPermanently, "") + link = strings.ReplaceAll(link, status302, "") + link = strings.ReplaceAll(link, archived, "") + links[i] = link } + return links } @@ -110,7 +110,7 @@ func createIssue(t *testing.T, staleRepos []string, client *http.Client) { Title: issueTitle, Body: body, } - buf := new(bytes.Buffer) + buf := bytes.NewBuffer(nil) requireNoErr(t, json.NewEncoder(buf).Encode(newIssue), "failed to encode json req") req, err := http.NewRequest("POST", githubPOSTISSUES, buf) @@ -131,19 +131,22 @@ func getAllFlaggedRepositories(t *testing.T, client *http.Client, flaggedReposit res, err := client.Do(req) requireNoErr(t, err, "failed to send request") - var target []issue defer res.Body.Close() - requireNoErr(t, json.NewDecoder(res.Body).Decode(&target), "failed to unmarshal response") + var issues []issue + requireNoErr(t, json.NewDecoder(res.Body).Decode(&issues), "failed to unmarshal response") - for _, i := range target { - if i.Title == issueTitle { - repos := getRepositoriesFromBody(i.Body) - for _, repo := range repos { - (*flaggedRepositories)[repo] = true - } + for _, issue := range issues { + if issue.Title != issueTitle { + continue + } + + repos := getRepositoriesFromBody(issue.Body) + for _, repo := range repos { + (*flaggedRepositories)[repo] = true } } + return nil } @@ -153,88 +156,105 @@ func containsOpenIssue(link string, openIssues map[string]bool) bool { } func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { - if toRun { - ownerRepo := strings.ReplaceAll(href, "https://github.com", "") - apiCall := fmt.Sprintf(githubGETREPO, ownerRepo) - req, err := http.NewRequest("GET", apiCall, nil) - if err != nil { - log.Printf("Failed at repository %s\n", href) - return false - } - resp, err := client.Do(req) - if err != nil { - log.Printf("Failed at repository %s\n", href) - return false - } - defer resp.Body.Close() - - var repoResp repo - json.NewDecoder(resp.Body).Decode(&repoResp) - isRepoAdded := false - if resp.StatusCode == http.StatusMovedPermanently { - *staleRepos = append(*staleRepos, href+movedPermanently) - log.Printf("%s returned %d", href, resp.StatusCode) - isRepoAdded = true - } - if resp.StatusCode == http.StatusFound && !isRepoAdded { - *staleRepos = append(*staleRepos, href+status302) - log.Printf("%s returned %d", href, resp.StatusCode) - isRepoAdded = true - } - if resp.StatusCode >= http.StatusBadRequest && !isRepoAdded { - *staleRepos = append(*staleRepos, href+deadLinkMessage) - log.Printf("%s might not exist!", href) - isRepoAdded = true - } - if repoResp.Archived && !isRepoAdded { - *staleRepos = append(*staleRepos, href+archived) - log.Printf("%s is archived!", href) - isRepoAdded = true - } - return isRepoAdded + if !toRun { + return false + } + + ownerRepo := strings.ReplaceAll(href, "https://github.com", "") + apiCall := fmt.Sprintf(githubGETREPO, ownerRepo) + req, err := http.NewRequest("GET", apiCall, nil) + if err != nil { + log.Printf("Failed at repository %s\n", href) + return false + } + resp, err := client.Do(req) + if err != nil { + log.Printf("Failed at repository %s\n", href) + return false } - return false + defer resp.Body.Close() + + var repoResp repo + json.NewDecoder(resp.Body).Decode(&repoResp) + isRepoAdded := false + + if resp.StatusCode == http.StatusMovedPermanently { + *staleRepos = append(*staleRepos, href+movedPermanently) + log.Printf("%s returned %d", href, resp.StatusCode) + isRepoAdded = true + } + + if resp.StatusCode == http.StatusFound && !isRepoAdded { + *staleRepos = append(*staleRepos, href+status302) + log.Printf("%s returned %d", href, resp.StatusCode) + isRepoAdded = true + } + + if resp.StatusCode >= http.StatusBadRequest && !isRepoAdded { + *staleRepos = append(*staleRepos, href+deadLinkMessage) + log.Printf("%s might not exist!", href) + isRepoAdded = true + } + + if repoResp.Archived && !isRepoAdded { + *staleRepos = append(*staleRepos, href+archived) + log.Printf("%s is archived!", href) + isRepoAdded = true + } + + return isRepoAdded } func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { - if toRun { - var respObj []map[string]interface{} - since := timeNow.Add(-1 * 365 * 24 * numberOfYears * time.Hour) - sinceQuery := since.Format(time.RFC3339) - ownerRepo := strings.ReplaceAll(href, "https://github.com", "") - apiCall := fmt.Sprintf(githubGETCOMMITS, ownerRepo) - req, err := http.NewRequest("GET", apiCall, nil) - isRepoAdded := false - if err != nil { - log.Printf("Failed at repository %s\n", href) - return false - } - q := req.URL.Query() - q.Add("since", sinceQuery) - req.URL.RawQuery = q.Encode() - resp, err := client.Do(req) - if err != nil { - log.Printf("Failed at repository %s\n", href) - return false - } - defer resp.Body.Close() - json.NewDecoder(resp.Body).Decode(&respObj) - isAged := len(respObj) == 0 - if isAged { - log.Printf("%s has not had a commit in a while", href) - *staleRepos = append(*staleRepos, href) - isRepoAdded = true - } - return isRepoAdded + if !toRun { + return false + } + + ownerRepo := strings.ReplaceAll(href, "https://github.com", "") + apiCall := fmt.Sprintf(githubGETCOMMITS, ownerRepo) + req, err := http.NewRequest("GET", apiCall, nil) + if err != nil { + log.Printf("Failed at repository %s\n", href) + return false } - return false + + since := timeNow.Add(-1 * 365 * 24 * numberOfYears * time.Hour) + sinceQuery := since.Format(time.RFC3339) + + q := req.URL.Query() + q.Add("since", sinceQuery) + req.URL.RawQuery = q.Encode() + + resp, err := client.Do(req) + if err != nil { + log.Printf("Failed at repository %s\n", href) + return false + } + + defer resp.Body.Close() + + var respObj []map[string]interface{} + json.NewDecoder(resp.Body).Decode(&respObj) + + isRepoAdded := false + isAged := len(respObj) == 0 + if isAged { + log.Printf("%s has not had a commit in a while", href) + *staleRepos = append(*staleRepos, href) + isRepoAdded = true + } + + return isRepoAdded } func TestStaleRepository(t *testing.T) { doc := goqueryFromReadme(t) - var staleRepos []string + oauth := os.Getenv("OAUTH_TOKEN") - client := &http.Client{} + client := &http.Client{ + Transport: &http.Transport{}, + } + if oauth == "" { log.Print("No oauth token found. Using unauthenticated client ...") } else { @@ -243,37 +263,47 @@ func TestStaleRepository(t *testing.T) { } client = oauth2.NewClient(context.Background(), tokenSource) } + addressedRepositories := make(map[string]bool) + // FIXME: return addressedRepositories, no need to pass err := getAllFlaggedRepositories(t, client, &addressedRepositories) requireNoErr(t, err, "failed to get existing issues") - doc.Find("body li > a:first-child").EachWithBreak(func(_ int, s *goquery.Selection) bool { - href, ok := s.Attr("href") - if !ok { - log.Println("expected to have href") - return true - } - if ctr >= LIMIT && LIMIT != -1 { - log.Print("Max number of issues created") - return false - } - issueExists := containsOpenIssue(href, addressedRepositories) - if issueExists { - log.Printf("issue already exists for %s\n", href) - } else { + var staleRepos []string + doc. + Find("body li > a:first-child"). + EachWithBreak(func(_ int, s *goquery.Selection) bool { + href, ok := s.Attr("href") + if !ok { + log.Println("expected to have href") + return true + } + + if ctr >= LIMIT && LIMIT != -1 { + log.Print("Max number of issues created") + return false + } + + issueExists := containsOpenIssue(href, addressedRepositories) + if issueExists { + log.Printf("issue already exists for %s\n", href) + return true + } + isGithubRepo := reGithubRepo.MatchString(href) - if isGithubRepo { - // FIXME: this is `or` expression. Probably we need `and` - isRepoAdded := testRepoState(true, href, client, &staleRepos) - isRepoAdded = testCommitAge(!isRepoAdded, href, client, &staleRepos) - if isRepoAdded { - ctr++ - } - } else { + if !isGithubRepo { log.Printf("%s non-github repo not currently handled", href) } - } - return true - }) + + // FIXME: this is `or` expression. Probably we need `and` + isRepoAdded := testRepoState(true, href, client, &staleRepos) + isRepoAdded = testCommitAge(!isRepoAdded, href, client, &staleRepos) + if isRepoAdded { + ctr++ + } + + return true + }) + createIssue(t, staleRepos, client) } From d450c0c872fe32073d744cc4a6b95ef61c5ba8a9 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 03:57:37 +0100 Subject: [PATCH 3037/3440] remove redundant 'unable to' from errors --- main.go | 46 ++++++++++++++++++++++------------------------ scripts.go | 2 +- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/main.go b/main.go index 60a382f2ee7..c02b308a4e3 100644 --- a/main.go +++ b/main.go @@ -58,45 +58,45 @@ func main() { // FIXME: choose a better name func renderAll() error { if err := dropCreateDir(outDir); err != nil { - return fmt.Errorf("unable to drop-create out dir: %w", err) + return fmt.Errorf("drop-create out dir: %w", err) } if err := renderIndex(readmePath, outIndexFile); err != nil { - return fmt.Errorf("unable to convert markdown to html: %w", err) + return fmt.Errorf("convert markdown to html: %w", err) } input, err := os.ReadFile(outIndexFile) if err != nil { - return fmt.Errorf("unable to read converted html: %w", err) + return fmt.Errorf("read converted html: %w", err) } doc, err := goquery.NewDocumentFromReader(bytes.NewReader(input)) if err != nil { - return fmt.Errorf("unable to create goquery instance: %w", err) + return fmt.Errorf("create goquery instance: %w", err) } categories, err := extractCategories(doc) if err != nil { - return fmt.Errorf("unable to extract categories: %w", err) + return fmt.Errorf("extract categories: %w", err) } if err := renderCategories(categories); err != nil { - return fmt.Errorf("unable to render categories: %w", err) + return fmt.Errorf("render categories: %w", err) } if err := rewriteLinksInIndex(doc, categories); err != nil { - return fmt.Errorf("unable to rewrite links in index: %w", err) + return fmt.Errorf("rewrite links in index: %w", err) } if err := renderSitemap(categories); err != nil { - return fmt.Errorf("unable to render sitemap: %w", err) + return fmt.Errorf("render sitemap: %w", err) } for _, srcFilename := range staticFiles { dstFilename := filepath.Join(outDir, filepath.Base(srcFilename)) fmt.Printf("Copy static file: %s -> %s\n", srcFilename, dstFilename) if err := cp.Copy(srcFilename, dstFilename); err != nil { - return fmt.Errorf("unable to copy static file `%s` to `%s`: %w", srcFilename, dstFilename, err) + return fmt.Errorf("copy static file `%s` to `%s`: %w", srcFilename, dstFilename, err) } } @@ -106,11 +106,11 @@ func renderAll() error { // dropCreateDir drop and create output directory func dropCreateDir(dir string) error { if err := os.RemoveAll(dir); err != nil { - return fmt.Errorf("unable to remove dir: %w", err) + return fmt.Errorf("remove dir: %w", err) } if err := mkdirAll(dir); err != nil { - return fmt.Errorf("unable to create dir: %w", err) + return fmt.Errorf("create dir: %w", err) } return nil @@ -130,7 +130,7 @@ func mkdirAll(path string) error { // NOTE: directory is not exists if err := os.MkdirAll(path, 0755); err != nil { - return fmt.Errorf("unable to midirAll: %w", err) + return fmt.Errorf("midirAll: %w", err) } return nil @@ -140,17 +140,16 @@ func renderCategories(categories map[string]Category) error { for _, category := range categories { categoryDir := filepath.Join(outDir, category.Slug) if err := mkdirAll(categoryDir); err != nil { - return fmt.Errorf("unable to create category dir `%s`: %w", categoryDir, err) + return fmt.Errorf("create category dir `%s`: %w", categoryDir, err) } // FIXME: embed templates - // FIXME: parse templates once at start categoryIndexFilename := filepath.Join(categoryDir, "index.html") fmt.Printf("Write category Index file: %s\n", categoryIndexFilename) buf := bytes.NewBuffer(nil) if err := tplCategoryIndex.Execute(buf, category); err != nil { - return fmt.Errorf("unable to render category `%s`: %w", categoryDir, err) + return fmt.Errorf("render category `%s`: %w", categoryDir, err) } // Sanitize HTML. This is not necessary, but allows to have content @@ -158,17 +157,16 @@ func renderCategories(categories map[string]Category) error { { doc, err := goquery.NewDocumentFromReader(buf) if err != nil { - // FIXME: remove `unable to` from all fmt.Errorf - return fmt.Errorf("unable to create goquery instance for `%s`: %w", categoryDir, err) + return fmt.Errorf("create goquery instance for `%s`: %w", categoryDir, err) } html, err := doc.Html() if err != nil { - return fmt.Errorf("unable to render goquery html for `%s`: %w", categoryDir, err) + return fmt.Errorf("render goquery html for `%s`: %w", categoryDir, err) } if err := os.WriteFile(categoryIndexFilename, []byte(html), 0644); err != nil { - return fmt.Errorf("unable to write category file `%s`: %w", categoryDir, err) + return fmt.Errorf("write category file `%s`: %w", categoryDir, err) } } } @@ -180,13 +178,13 @@ func renderSitemap(categories map[string]Category) error { // FIXME: handle error f, err := os.Create(outSitemapFile) if err != nil { - return fmt.Errorf("unable to create sitemap file `%s`: %w", outSitemapFile, err) + return fmt.Errorf("create sitemap file `%s`: %w", outSitemapFile, err) } fmt.Printf("Render Sitemap to: %s\n", outSitemapFile) if err := tplSitemap.Execute(f, categories); err != nil { - return fmt.Errorf("unable to render sitemap: %w", err) + return fmt.Errorf("render sitemap: %w", err) } return nil @@ -260,7 +258,7 @@ func extractCategory(doc *goquery.Document, selector string) (*Category, error) }) if err != nil { - return nil, fmt.Errorf("unable to build a category: %w", err) + return nil, fmt.Errorf("build a category: %w", err) } return &category, nil @@ -293,11 +291,11 @@ func rewriteLinksInIndex(doc *goquery.Document, categories map[string]Category) fmt.Printf("Rewrite links in Index file: %s\n", outIndexFile) resultHtml, err := doc.Html() if err != nil { - return fmt.Errorf("unable to render html: %w", err) + return fmt.Errorf("render html: %w", err) } if err := os.WriteFile(outIndexFile, []byte(resultHtml), 0644); err != nil { - return fmt.Errorf("unable to rewrite index file: %w", err) + return fmt.Errorf("rewrite index file: %w", err) } return nil diff --git a/scripts.go b/scripts.go index dd1e41c72ec..3d101eb1a85 100644 --- a/scripts.go +++ b/scripts.go @@ -34,7 +34,7 @@ func renderIndex(srcFilename, outFilename string) error { } if err := f.Close(); err != nil { - return fmt.Errorf("unable to close index file: %w", err) + return fmt.Errorf("close index file: %w", err) } return nil From 5b9a5414028c8912c175c3f6f2c1723193a2c7df Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 04:02:23 +0100 Subject: [PATCH 3038/3440] handle error in extractCategories --- main.go | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index c02b308a4e3..8c094c71db1 100644 --- a/main.go +++ b/main.go @@ -175,7 +175,6 @@ func renderCategories(categories map[string]Category) error { } func renderSitemap(categories map[string]Category) error { - // FIXME: handle error f, err := os.Create(outSitemapFile) if err != nil { return fmt.Errorf("create sitemap file `%s`: %w", outSitemapFile, err) @@ -192,29 +191,43 @@ func renderSitemap(categories map[string]Category) error { func extractCategories(doc *goquery.Document) (map[string]Category, error) { categories := make(map[string]Category) + var rootErr error + doc. Find("body #contents"). NextFiltered("ul"). Find("ul"). - Each(func(_ int, selUl *goquery.Selection) { + EachWithBreak(func(_ int, selUl *goquery.Selection) bool { + if rootErr != nil { + return false + } + selUl. Find("li a"). - Each(func(_ int, s *goquery.Selection) { + EachWithBreak(func(_ int, s *goquery.Selection) bool { selector, exists := s.Attr("href") if !exists { - return + return true } category, err := extractCategory(doc, selector) if err != nil { - return + rootErr = fmt.Errorf("extract category: %w", err) + return false } categories[selector] = *category + + return true }) + + return true }) - // FIXME: handle error + if rootErr != nil { + return nil, fmt.Errorf("extract categories: %w", rootErr) + } + return categories, nil } From 4f07a878e0010e770fc2a863600bb99eeb44063b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 04:10:05 +0100 Subject: [PATCH 3039/3440] fixme --- main.go | 4 +++- stale_repositories_test.go | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 8c094c71db1..750990bcd76 100644 --- a/main.go +++ b/main.go @@ -248,12 +248,14 @@ func extractCategory(doc *goquery.Document, selector string) (*Category, error) url, _ := selLink.Attr("href") link := Link{ Title: selLink.Text(), - // FIXME: Title contains only title but description contains Title + description + // FIXME(kazhuravlev): Title contains only title but + // description contains Title + description Description: selLi.Text(), Url: url, } links = append(links, link) }) + // FIXME: In this case we would have an empty category in main index.html with link to 404 page. if len(links) == 0 { err = errors.New("category does not contain links") diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 7a003f937c7..ffac088a0a7 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -26,7 +26,7 @@ const issueTemplateContent = ` var issueTemplate = template.Must(template.New("issue").Parse(issueTemplateContent)) -// FIXME: replace to official github client +// FIXME: use official github client var reGithubRepo = regexp.MustCompile("https://github.com/[a-zA-Z0-9-._]+/[a-zA-Z0-9-._]+$") var githubGETREPO = "https://api.github.com/repos%s" var githubGETCOMMITS = "https://api.github.com/repos%s/commits" @@ -34,7 +34,9 @@ var githubPOSTISSUES = "https://api.github.com/repos/avelino/awesome-go/issues" // FIXME: use https var awesomeGoGETISSUES = "http://api.github.com/repos/avelino/awesome-go/issues" //only returns open issues -// FIXME: time.Hour * ... +// FIXME: variable has type Duration, but contains a number. we should use +// +// time.Hour * ... or change type of variable var numberOfYears time.Duration = 1 var timeNow = time.Now() var issueTitle = fmt.Sprintf("Investigate repositories with more than 1 year without update - %s", timeNow.Format("2006-01-02")) From bb2148b38213e898fff025f338b29a0889400cbc Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 04:11:17 +0100 Subject: [PATCH 3040/3440] handle error --- stale_repositories_test.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index ffac088a0a7..2445ec9f99c 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -177,7 +177,10 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s defer resp.Body.Close() var repoResp repo - json.NewDecoder(resp.Body).Decode(&repoResp) + if err := json.NewDecoder(resp.Body).Decode(&repoResp); err != nil { + return false + } + isRepoAdded := false if resp.StatusCode == http.StatusMovedPermanently { From fe7079cc1c73f62b92d6136ed2b0b092c1e73042 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 04:12:05 +0100 Subject: [PATCH 3041/3440] return map of repos --- stale_repositories_test.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 2445ec9f99c..4f560ab2452 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -123,7 +123,7 @@ func createIssue(t *testing.T, staleRepos []string, client *http.Client) { } // FIXME: remove pointer from map -func getAllFlaggedRepositories(t *testing.T, client *http.Client, flaggedRepositories *map[string]bool) error { +func getAllFlaggedRepositories(t *testing.T, client *http.Client) map[string]bool { t.Helper() // FIXME: replace to http.MethodGet @@ -138,6 +138,7 @@ func getAllFlaggedRepositories(t *testing.T, client *http.Client, flaggedReposit var issues []issue requireNoErr(t, json.NewDecoder(res.Body).Decode(&issues), "failed to unmarshal response") + addressedRepositories := make(map[string]bool) for _, issue := range issues { if issue.Title != issueTitle { continue @@ -145,11 +146,11 @@ func getAllFlaggedRepositories(t *testing.T, client *http.Client, flaggedReposit repos := getRepositoriesFromBody(issue.Body) for _, repo := range repos { - (*flaggedRepositories)[repo] = true + addressedRepositories[repo] = true } } - return nil + return addressedRepositories } func containsOpenIssue(link string, openIssues map[string]bool) bool { @@ -169,11 +170,13 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s log.Printf("Failed at repository %s\n", href) return false } + resp, err := client.Do(req) if err != nil { log.Printf("Failed at repository %s\n", href) return false } + defer resp.Body.Close() var repoResp repo @@ -269,10 +272,8 @@ func TestStaleRepository(t *testing.T) { client = oauth2.NewClient(context.Background(), tokenSource) } - addressedRepositories := make(map[string]bool) // FIXME: return addressedRepositories, no need to pass - err := getAllFlaggedRepositories(t, client, &addressedRepositories) - requireNoErr(t, err, "failed to get existing issues") + addressedRepositories := getAllFlaggedRepositories(t, client) var staleRepos []string doc. From 63075f4f90f58cf2ea1c8b2d4a9ec19d58163937 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:08:13 +0100 Subject: [PATCH 3042/3440] embed struct inside func --- stale_repositories_test.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 4f560ab2452..b9fe3f23c2b 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -59,10 +59,6 @@ type issue struct { Body string `json:"body"` } -type repo struct { - Archived bool `json:"archived"` -} - func (t *tokenSource) Token() (*oauth2.Token, error) { return &oauth2.Token{ AccessToken: t.AccessToken, @@ -179,7 +175,10 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s defer resp.Body.Close() - var repoResp repo + var repoResp struct { + Archived bool `json:"archived"` + } + if err := json.NewDecoder(resp.Body).Decode(&repoResp); err != nil { return false } From f8660cbd7b5b0d9b2a1de46aa162802a2a481e60 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:16:00 +0100 Subject: [PATCH 3043/3440] refactor testRepoState --- stale_repositories_test.go | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index b9fe3f23c2b..357298272ab 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -154,9 +154,9 @@ func containsOpenIssue(link string, openIssues map[string]bool) bool { return ok } -func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { +func getRepoStates(toRun bool, href string, client *http.Client) ([]string, bool) { if !toRun { - return false + return nil, false } ownerRepo := strings.ReplaceAll(href, "https://github.com", "") @@ -164,13 +164,13 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s req, err := http.NewRequest("GET", apiCall, nil) if err != nil { log.Printf("Failed at repository %s\n", href) - return false + return nil, false } resp, err := client.Do(req) if err != nil { log.Printf("Failed at repository %s\n", href) - return false + return nil, false } defer resp.Body.Close() @@ -180,36 +180,38 @@ func testRepoState(toRun bool, href string, client *http.Client, staleRepos *[]s } if err := json.NewDecoder(resp.Body).Decode(&repoResp); err != nil { - return false + return nil, false } - isRepoAdded := false + var isRepoAdded bool + var staleRepos []string if resp.StatusCode == http.StatusMovedPermanently { - *staleRepos = append(*staleRepos, href+movedPermanently) + staleRepos = append(staleRepos, href+movedPermanently) log.Printf("%s returned %d", href, resp.StatusCode) isRepoAdded = true } if resp.StatusCode == http.StatusFound && !isRepoAdded { - *staleRepos = append(*staleRepos, href+status302) + staleRepos = append(staleRepos, href+status302) log.Printf("%s returned %d", href, resp.StatusCode) isRepoAdded = true } if resp.StatusCode >= http.StatusBadRequest && !isRepoAdded { - *staleRepos = append(*staleRepos, href+deadLinkMessage) + staleRepos = append(staleRepos, href+deadLinkMessage) log.Printf("%s might not exist!", href) isRepoAdded = true } if repoResp.Archived && !isRepoAdded { - *staleRepos = append(*staleRepos, href+archived) + staleRepos = append(staleRepos, href+archived) log.Printf("%s is archived!", href) isRepoAdded = true } - return isRepoAdded + // FIXME: expression `(len(staleRepos) > 0) == isRepoAdded` is always true. + return staleRepos, isRepoAdded } func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { @@ -300,8 +302,10 @@ func TestStaleRepository(t *testing.T) { log.Printf("%s non-github repo not currently handled", href) } - // FIXME: this is `or` expression. Probably we need `and` - isRepoAdded := testRepoState(true, href, client, &staleRepos) + // FIXME: this is `or` expression. Probably we need `and`? + staleRepos2, isRepoAdded := getRepoStates(true, href, client) + staleRepos = append(staleRepos, staleRepos2...) + isRepoAdded = testCommitAge(!isRepoAdded, href, client, &staleRepos) if isRepoAdded { ctr++ From bf00d2db6eabaf4f239e89072a91ec7e7ee12b65 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:16:18 +0100 Subject: [PATCH 3044/3440] refactor testCommitAge --- stale_repositories_test.go | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 357298272ab..0caa5d3c063 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -214,9 +214,9 @@ func getRepoStates(toRun bool, href string, client *http.Client) ([]string, bool return staleRepos, isRepoAdded } -func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]string) bool { +func checkRepoCommitActivity(toRun bool, href string, client *http.Client) ([]string, bool) { if !toRun { - return false + return nil, false } ownerRepo := strings.ReplaceAll(href, "https://github.com", "") @@ -224,7 +224,7 @@ func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]s req, err := http.NewRequest("GET", apiCall, nil) if err != nil { log.Printf("Failed at repository %s\n", href) - return false + return nil, false } since := timeNow.Add(-1 * 365 * 24 * numberOfYears * time.Hour) @@ -237,23 +237,26 @@ func testCommitAge(toRun bool, href string, client *http.Client, staleRepos *[]s resp, err := client.Do(req) if err != nil { log.Printf("Failed at repository %s\n", href) - return false + return nil, false } defer resp.Body.Close() var respObj []map[string]interface{} + // FIXME: handle error in all that cases json.NewDecoder(resp.Body).Decode(&respObj) - isRepoAdded := false + var warnings []string + var isRepoAdded bool isAged := len(respObj) == 0 if isAged { log.Printf("%s has not had a commit in a while", href) - *staleRepos = append(*staleRepos, href) + warnings = append(warnings, href) isRepoAdded = true } - return isRepoAdded + // FIXME: expression `(len(warnings) > 0) == isRepoAdded` is always true. + return warnings, isRepoAdded } func TestStaleRepository(t *testing.T) { @@ -306,7 +309,9 @@ func TestStaleRepository(t *testing.T) { staleRepos2, isRepoAdded := getRepoStates(true, href, client) staleRepos = append(staleRepos, staleRepos2...) - isRepoAdded = testCommitAge(!isRepoAdded, href, client, &staleRepos) + staleRepos2, isRepoAdded = checkRepoCommitActivity(!isRepoAdded, href, client) + staleRepos = append(staleRepos, staleRepos2...) + if isRepoAdded { ctr++ } From ee723c368da90668b2fe99cf5c39859f7b50091f Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:17:09 +0100 Subject: [PATCH 3045/3440] staleRepos -> warnings --- stale_repositories_test.go | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 0caa5d3c063..c534193c07c 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -185,33 +185,33 @@ func getRepoStates(toRun bool, href string, client *http.Client) ([]string, bool var isRepoAdded bool - var staleRepos []string + var warnings []string if resp.StatusCode == http.StatusMovedPermanently { - staleRepos = append(staleRepos, href+movedPermanently) + warnings = append(warnings, href+movedPermanently) log.Printf("%s returned %d", href, resp.StatusCode) isRepoAdded = true } if resp.StatusCode == http.StatusFound && !isRepoAdded { - staleRepos = append(staleRepos, href+status302) + warnings = append(warnings, href+status302) log.Printf("%s returned %d", href, resp.StatusCode) isRepoAdded = true } if resp.StatusCode >= http.StatusBadRequest && !isRepoAdded { - staleRepos = append(staleRepos, href+deadLinkMessage) + warnings = append(warnings, href+deadLinkMessage) log.Printf("%s might not exist!", href) isRepoAdded = true } if repoResp.Archived && !isRepoAdded { - staleRepos = append(staleRepos, href+archived) + warnings = append(warnings, href+archived) log.Printf("%s is archived!", href) isRepoAdded = true } - // FIXME: expression `(len(staleRepos) > 0) == isRepoAdded` is always true. - return staleRepos, isRepoAdded + // FIXME: expression `(len(warnings) > 0) == isRepoAdded` is always true. + return warnings, isRepoAdded } func checkRepoCommitActivity(toRun bool, href string, client *http.Client) ([]string, bool) { @@ -306,11 +306,11 @@ func TestStaleRepository(t *testing.T) { } // FIXME: this is `or` expression. Probably we need `and`? - staleRepos2, isRepoAdded := getRepoStates(true, href, client) - staleRepos = append(staleRepos, staleRepos2...) + warnings, isRepoAdded := getRepoStates(true, href, client) + staleRepos = append(staleRepos, warnings...) - staleRepos2, isRepoAdded = checkRepoCommitActivity(!isRepoAdded, href, client) - staleRepos = append(staleRepos, staleRepos2...) + warnings, isRepoAdded = checkRepoCommitActivity(!isRepoAdded, href, client) + staleRepos = append(staleRepos, warnings...) if isRepoAdded { ctr++ From fe2246015808f8c1bc07f988ad39a9edc0f4258e Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:17:45 +0100 Subject: [PATCH 3046/3440] rename func --- stale_repositories_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index c534193c07c..300e0c3a3af 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -154,7 +154,7 @@ func containsOpenIssue(link string, openIssues map[string]bool) bool { return ok } -func getRepoStates(toRun bool, href string, client *http.Client) ([]string, bool) { +func checkRepoAvailability(toRun bool, href string, client *http.Client) ([]string, bool) { if !toRun { return nil, false } @@ -306,7 +306,7 @@ func TestStaleRepository(t *testing.T) { } // FIXME: this is `or` expression. Probably we need `and`? - warnings, isRepoAdded := getRepoStates(true, href, client) + warnings, isRepoAdded := checkRepoAvailability(true, href, client) staleRepos = append(staleRepos, warnings...) warnings, isRepoAdded = checkRepoCommitActivity(!isRepoAdded, href, client) From a982d3524952c406a01da3c9e0839227c2a94d35 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:19:11 +0100 Subject: [PATCH 3047/3440] simplify some expressions --- stale_repositories_test.go | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index 300e0c3a3af..a4788161980 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -149,11 +149,6 @@ func getAllFlaggedRepositories(t *testing.T, client *http.Client) map[string]boo return addressedRepositories } -func containsOpenIssue(link string, openIssues map[string]bool) bool { - _, ok := openIssues[link] - return ok -} - func checkRepoAvailability(toRun bool, href string, client *http.Client) ([]string, bool) { if !toRun { return nil, false @@ -294,14 +289,12 @@ func TestStaleRepository(t *testing.T) { return false } - issueExists := containsOpenIssue(href, addressedRepositories) - if issueExists { + if _, issueExists := addressedRepositories[href]; issueExists { log.Printf("issue already exists for %s\n", href) return true } - isGithubRepo := reGithubRepo.MatchString(href) - if !isGithubRepo { + if !reGithubRepo.MatchString(href) { log.Printf("%s non-github repo not currently handled", href) } From 944256f7652f0c27c112e3940c1baaa5003dd4a9 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:22:36 +0100 Subject: [PATCH 3048/3440] use constants from http pkg --- stale_repositories_test.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index a4788161980..bf54236df04 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -111,19 +111,17 @@ func createIssue(t *testing.T, staleRepos []string, client *http.Client) { buf := bytes.NewBuffer(nil) requireNoErr(t, json.NewEncoder(buf).Encode(newIssue), "failed to encode json req") - req, err := http.NewRequest("POST", githubPOSTISSUES, buf) + req, err := http.NewRequest(http.MethodPost, githubPOSTISSUES, buf) requireNoErr(t, err, "failed to create request") _, roundTripErr := client.Do(req) requireNoErr(t, roundTripErr, "failed to send request") } -// FIXME: remove pointer from map func getAllFlaggedRepositories(t *testing.T, client *http.Client) map[string]bool { t.Helper() - // FIXME: replace to http.MethodGet - req, err := http.NewRequest("GET", awesomeGoGETISSUES, nil) + req, err := http.NewRequest(http.MethodGet, awesomeGoGETISSUES, nil) requireNoErr(t, err, "failed to create request") res, err := client.Do(req) @@ -156,7 +154,7 @@ func checkRepoAvailability(toRun bool, href string, client *http.Client) ([]stri ownerRepo := strings.ReplaceAll(href, "https://github.com", "") apiCall := fmt.Sprintf(githubGETREPO, ownerRepo) - req, err := http.NewRequest("GET", apiCall, nil) + req, err := http.NewRequest(http.MethodGet, apiCall, nil) if err != nil { log.Printf("Failed at repository %s\n", href) return nil, false @@ -216,7 +214,7 @@ func checkRepoCommitActivity(toRun bool, href string, client *http.Client) ([]st ownerRepo := strings.ReplaceAll(href, "https://github.com", "") apiCall := fmt.Sprintf(githubGETCOMMITS, ownerRepo) - req, err := http.NewRequest("GET", apiCall, nil) + req, err := http.NewRequest(http.MethodGet, apiCall, nil) if err != nil { log.Printf("Failed at repository %s\n", href) return nil, false From 5976b31d8459372e90addc09080d07349f6746d6 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 14:37:37 +0100 Subject: [PATCH 3049/3440] ++ --- main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 750990bcd76..de237dbef37 100644 --- a/main.go +++ b/main.go @@ -118,17 +118,17 @@ func dropCreateDir(dir string) error { func mkdirAll(path string) error { _, err := os.Stat(path) - // NOTE: directory is exists + // directory is exists if err == nil { return nil } - // NOTE: unknown error + // unexpected error if !os.IsNotExist(err) { return fmt.Errorf("unexpected result of dir stat: %w", err) } - // NOTE: directory is not exists + // directory is not exists if err := os.MkdirAll(path, 0755); err != nil { return fmt.Errorf("midirAll: %w", err) } From 0dbbc09cff24021615ae4307e21245f2fd3cd833 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 14:37:55 +0100 Subject: [PATCH 3050/3440] parse url with url.Parse --- main.go | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index de237dbef37..a3504c2d293 100644 --- a/main.go +++ b/main.go @@ -5,9 +5,9 @@ import ( "errors" "fmt" cp "github.com/otiai10/copy" + "net/url" "os" "path/filepath" - "strings" "text/template" "github.com/PuerkitoBio/goquery" @@ -280,29 +280,40 @@ func extractCategory(doc *goquery.Document, selector string) (*Category, error) } func rewriteLinksInIndex(doc *goquery.Document, categories map[string]Category) error { + var iterErr error doc. Find("body #content ul li ul li a"). - Each(func(_ int, s *goquery.Selection) { + EachWithBreak(func(_ int, s *goquery.Selection) bool { href, hrefExists := s.Attr("href") if !hrefExists { // FIXME: looks like is an error. Tag `a` in our case always // should have `href` attr. - return + return true } // do not replace links if no page has been created for it _, catExists := categories[href] if !catExists { - return + return true } - // FIXME: parse url - uri := strings.SplitAfter(href, "#") - if len(uri) >= 2 && uri[1] != "contents" { - s.SetAttr("href", uri[1]) + linkUrl, err := url.Parse(href) + if err != nil { + iterErr = err + return false + } + + if linkUrl.Fragment != "" && linkUrl.Fragment != "contents" { + s.SetAttr("href", linkUrl.Fragment) } + + return true }) + if iterErr != nil { + return iterErr + } + fmt.Printf("Rewrite links in Index file: %s\n", outIndexFile) resultHtml, err := doc.Html() if err != nil { From cfa461240e8826da85323c5066856a0ae7bde60a Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 19:39:45 +0100 Subject: [PATCH 3051/3440] netlify config --- netlify.toml | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 netlify.toml diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 00000000000..8a87f9546ec --- /dev/null +++ b/netlify.toml @@ -0,0 +1,47 @@ +# Settings in the [build] context are global and are applied to +# all contexts unless otherwise overridden by more specific contexts. +[build] +# Directory to change to before starting a build. +# This is where we will look for package.json/.nvmrc/etc. +# If not set, defaults to the root directory. +base = "./" + +# Directory that contains the deploy-ready HTML files and +# assets generated by the build. This is relative to the base +# directory if one has been set, or the root directory if +# a base has not been set. This sample publishes the directory +# located at the absolute path "root/project/build-output" + +publish = "out/" + +# Default build command. +command = "echo 'default context'" + +[[plugins]] +# Installs the Lighthouse Build Plugin for all deploy contexts +package = "@netlify/plugin-lighthouse" + +# Production context: all deploys from the Production branch +# set in your site’s Branches settings in the UI will inherit +# these settings. You can define environment variables +# here but we recommend using the Netlify UI for sensitive +# values to keep them out of your source repository. +[context.production] +publish = "out/" + +# Redirects and headers are GLOBAL for all builds – they do not +# get scoped to contexts no matter where you define them in the file. +# For context-specific rules, use _headers or _redirects files, +# which are PER-DEPLOY. + +[[redirects]] +from = "/awesome-cloud-native" +to = "/" +status = 302 +force = true + +[[redirects]] +from = "/awesome-go-fork" +to = "/" +status = 302 +force = true From 4e7fc8fe6b541c2d2013f81325543528eb76b879 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 19:54:34 +0100 Subject: [PATCH 3052/3440] remove redundant file (redirects already in config) --- main.go | 1 - tmpl/_redirects | 2 -- 2 files changed, 3 deletions(-) delete mode 100644 tmpl/_redirects diff --git a/main.go b/main.go index a3504c2d293..5bf450c52a5 100644 --- a/main.go +++ b/main.go @@ -33,7 +33,6 @@ const readmePath = "README.md" // This files should be copied 'as is' to outDir directory var staticFiles = []string{ "tmpl/assets", - "tmpl/_redirects", "tmpl/robots.txt", } diff --git a/tmpl/_redirects b/tmpl/_redirects deleted file mode 100644 index d1c859a5834..00000000000 --- a/tmpl/_redirects +++ /dev/null @@ -1,2 +0,0 @@ -/awesome-cloud-native/ / -/awesome-go-fork/ / From 0d6aab364e617fb60f6e0b58d60303def2141086 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 19:44:07 +0100 Subject: [PATCH 3053/3440] rename fn --- main.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 5bf450c52a5..54e3389ef86 100644 --- a/main.go +++ b/main.go @@ -49,13 +49,12 @@ var outIndexFile = filepath.Join(outDir, "index.html") var outSitemapFile = filepath.Join(outDir, "sitemap.xml") func main() { - if err := renderAll(); err != nil { + if err := buildStaticSite(); err != nil { panic(err) } } -// FIXME: choose a better name -func renderAll() error { +func buildStaticSite() error { if err := dropCreateDir(outDir); err != nil { return fmt.Errorf("drop-create out dir: %w", err) } From 79f91e827c6930ac0c0520ca4c5c7d194f5a0635 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 21:24:47 +0100 Subject: [PATCH 3054/3440] rename templates --- .gitignore | 2 -- main.go | 6 +++--- tmpl/{cat-tmpl.html => category-index.tmpl.html} | 0 tmpl/{tmpl.html => index.tmpl.html} | 0 tmpl/{sitemap-tmpl.xml => sitemap.tmpl.xml} | 0 5 files changed, 3 insertions(+), 5 deletions(-) rename tmpl/{cat-tmpl.html => category-index.tmpl.html} (100%) rename tmpl/{tmpl.html => index.tmpl.html} (100%) rename tmpl/{sitemap-tmpl.xml => sitemap.tmpl.xml} (100%) diff --git a/.gitignore b/.gitignore index 93865a2a097..c43b1528b46 100644 --- a/.gitignore +++ b/.gitignore @@ -8,5 +8,3 @@ test_stale_repositories_log *.exe # Local Netlify folder .netlify -*.html -sitemap.xml diff --git a/main.go b/main.go index 54e3389ef86..000e94ac0d5 100644 --- a/main.go +++ b/main.go @@ -38,9 +38,9 @@ var staticFiles = []string{ // TODO: embed // Templates -var tplIndex = template.Must(template.ParseFiles("tmpl/tmpl.html")) -var tplCategoryIndex = template.Must(template.ParseFiles("tmpl/cat-tmpl.html")) -var tplSitemap = template.Must(template.ParseFiles("tmpl/sitemap-tmpl.xml")) +var tplIndex = template.Must(template.ParseFiles("tmpl/index.tmpl.html")) +var tplCategoryIndex = template.Must(template.ParseFiles("tmpl/category-index.tmpl.html")) +var tplSitemap = template.Must(template.ParseFiles("tmpl/sitemap.tmpl.xml")) // Output files const outDir = "out/" // NOTE: trailing slash is required diff --git a/tmpl/cat-tmpl.html b/tmpl/category-index.tmpl.html similarity index 100% rename from tmpl/cat-tmpl.html rename to tmpl/category-index.tmpl.html diff --git a/tmpl/tmpl.html b/tmpl/index.tmpl.html similarity index 100% rename from tmpl/tmpl.html rename to tmpl/index.tmpl.html diff --git a/tmpl/sitemap-tmpl.xml b/tmpl/sitemap.tmpl.xml similarity index 100% rename from tmpl/sitemap-tmpl.xml rename to tmpl/sitemap.tmpl.xml From 581fef0e292345a859719b08e7f6655cb7b90f19 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 00:26:55 +0100 Subject: [PATCH 3055/3440] renderIndex moved to main.go --- main.go | 34 ++++++++++++++++++++++++++++++++++ scripts.go | 41 ----------------------------------------- 2 files changed, 34 insertions(+), 41 deletions(-) delete mode 100644 scripts.go diff --git a/main.go b/main.go index 000e94ac0d5..12c627d69f5 100644 --- a/main.go +++ b/main.go @@ -4,7 +4,9 @@ import ( "bytes" "errors" "fmt" + "github.com/avelino/awesome-go/pkg/markdown" cp "github.com/otiai10/copy" + template2 "html/template" "net/url" "os" "path/filepath" @@ -324,3 +326,35 @@ func rewriteLinksInIndex(doc *goquery.Document, categories map[string]Category) return nil } + +// renderIndex generate site html (index.html) from markdown file +func renderIndex(srcFilename, outFilename string) error { + input, err := os.ReadFile(srcFilename) + if err != nil { + return err + } + + body, err := markdown.ToHTML(input) + if err != nil { + return err + } + + f, err := os.Create(outFilename) + if err != nil { + return err + } + + fmt.Printf("Write Index file: %s\n", outIndexFile) + data := map[string]interface{}{ + "Body": template2.HTML(body), + } + if err := tplIndex.Execute(f, data); err != nil { + return err + } + + if err := f.Close(); err != nil { + return fmt.Errorf("close index file: %w", err) + } + + return nil +} diff --git a/scripts.go b/scripts.go deleted file mode 100644 index 3d101eb1a85..00000000000 --- a/scripts.go +++ /dev/null @@ -1,41 +0,0 @@ -package main - -import ( - "fmt" - "html/template" - "os" - - "github.com/avelino/awesome-go/pkg/markdown" -) - -// renderIndex generate site html (index.html) from markdown file -func renderIndex(srcFilename, outFilename string) error { - input, err := os.ReadFile(srcFilename) - if err != nil { - return err - } - - body, err := markdown.ToHTML(input) - if err != nil { - return err - } - - f, err := os.Create(outFilename) - if err != nil { - return err - } - - fmt.Printf("Write Index file: %s\n", outIndexFile) - data := map[string]interface{}{ - "Body": template.HTML(body), - } - if err := tplIndex.Execute(f, data); err != nil { - return err - } - - if err := f.Close(); err != nil { - return fmt.Errorf("close index file: %w", err) - } - - return nil -} From 272eabc20bbdfa3503707d4147cdd49df2311791 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:14:29 +0100 Subject: [PATCH 3056/3440] handle error --- stale_repositories_test.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index bf54236df04..a83ca7d7d0f 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -237,7 +237,9 @@ func checkRepoCommitActivity(toRun bool, href string, client *http.Client) ([]st var respObj []map[string]interface{} // FIXME: handle error in all that cases - json.NewDecoder(resp.Body).Decode(&respObj) + if err := json.NewDecoder(resp.Body).Decode(&respObj); err != nil { + return nil, false + } var warnings []string var isRepoAdded bool @@ -296,7 +298,7 @@ func TestStaleRepository(t *testing.T) { log.Printf("%s non-github repo not currently handled", href) } - // FIXME: this is `or` expression. Probably we need `and`? + // FIXME: this is `or` expres24sion. Probably we need `and`? warnings, isRepoAdded := checkRepoAvailability(true, href, client) staleRepos = append(staleRepos, warnings...) From ef783114ec723124937189ea7af041ab98208bfe Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:23:27 +0100 Subject: [PATCH 3057/3440] fix linter warnings --- main.go | 17 ++++++++++------- tmpl/assets/awesome-go.css | 4 ++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index 12c627d69f5..5b98b8c5238 100644 --- a/main.go +++ b/main.go @@ -1,3 +1,4 @@ +/* Package main contains code for generate static site. */ package main import ( @@ -16,12 +17,14 @@ import ( "github.com/avelino/awesome-go/pkg/slug" ) +// Link contains info about awesome url type Link struct { Title string - Url string + URL string Description string } +// Category describe link category type Category struct { Title string Slug string @@ -251,7 +254,7 @@ func extractCategory(doc *goquery.Document, selector string) (*Category, error) // FIXME(kazhuravlev): Title contains only title but // description contains Title + description Description: selLi.Text(), - Url: url, + URL: url, } links = append(links, link) }) @@ -297,14 +300,14 @@ func rewriteLinksInIndex(doc *goquery.Document, categories map[string]Category) return true } - linkUrl, err := url.Parse(href) + linkURL, err := url.Parse(href) if err != nil { iterErr = err return false } - if linkUrl.Fragment != "" && linkUrl.Fragment != "contents" { - s.SetAttr("href", linkUrl.Fragment) + if linkURL.Fragment != "" && linkURL.Fragment != "contents" { + s.SetAttr("href", linkURL.Fragment) } return true @@ -315,12 +318,12 @@ func rewriteLinksInIndex(doc *goquery.Document, categories map[string]Category) } fmt.Printf("Rewrite links in Index file: %s\n", outIndexFile) - resultHtml, err := doc.Html() + resultHTML, err := doc.Html() if err != nil { return fmt.Errorf("render html: %w", err) } - if err := os.WriteFile(outIndexFile, []byte(resultHtml), 0644); err != nil { + if err := os.WriteFile(outIndexFile, []byte(resultHTML), 0644); err != nil { return fmt.Errorf("rewrite index file: %w", err) } diff --git a/tmpl/assets/awesome-go.css b/tmpl/assets/awesome-go.css index f5f1298879a..e0e5011b8a7 100644 --- a/tmpl/assets/awesome-go.css +++ b/tmpl/assets/awesome-go.css @@ -115,6 +115,6 @@ h1 > a img { line-height: 1; } -td{ - padding: 6px; +td { + padding: 6px; } From 70bc54e3eebcee274728577b28536cba5ed48728 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:27:24 +0100 Subject: [PATCH 3058/3440] fix pkg comment --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 5b98b8c5238..a588eb50cc2 100644 --- a/main.go +++ b/main.go @@ -1,4 +1,4 @@ -/* Package main contains code for generate static site. */ +// Package main contains code for generate static site. package main import ( From 18e1d535ec6ba2441f87af54243fdfb4eea6c316 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:34:02 +0100 Subject: [PATCH 3059/3440] fix gh wf --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index d5f247affa4..09787968a3c 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -19,4 +19,4 @@ jobs: - name: Get dependencies run: go get -v -t -d ./... - name: Run tests - run: go test repo_test.go scripts.go + run: go test main_test.go main.go From 3c737a7eb701a637802fc7740c73245185455bf9 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:40:39 +0100 Subject: [PATCH 3060/3440] create out dir in tests --- main_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main_test.go b/main_test.go index 9876f7002bb..3d59d22a243 100644 --- a/main_test.go +++ b/main_test.go @@ -101,6 +101,8 @@ func TestSeparator(t *testing.T) { } func TestRenderIndex(t *testing.T) { + requireNoErr(t, mkdirAll(outDir), "output dir should exists") + err := renderIndex(readmePath, outIndexFile) requireNoErr(t, err, "html should be rendered") } From d9c597d2d9e84474c7b76bb43454137ffdde7c60 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Mar 2023 21:49:32 +0200 Subject: [PATCH 3061/3440] fix field error in template --- tmpl/category-index.tmpl.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tmpl/category-index.tmpl.html b/tmpl/category-index.tmpl.html index 15633f441f9..789dde84409 100644 --- a/tmpl/category-index.tmpl.html +++ b/tmpl/category-index.tmpl.html @@ -82,7 +82,7 @@

Sponsorships

@@ -111,4 +111,4 @@

Sponsorships

- \ No newline at end of file + From 9fa7635cf7aff7a680edb58a4142e01b5a399b58 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Mar 2023 21:53:35 +0200 Subject: [PATCH 3062/3440] change workflow site-deploy.yaml --- .github/workflows/site-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/site-deploy.yaml b/.github/workflows/site-deploy.yaml index c92b7f19779..53a1daa6e01 100644 --- a/.github/workflows/site-deploy.yaml +++ b/.github/workflows/site-deploy.yaml @@ -19,7 +19,7 @@ jobs: - name: Get dependencies run: go get -v -t -d ./... - name: Make awesome-go.com - run: go run make_site.go scripts.go + run: go run . - name: deploy awesome-go.com uses: jsmrcaga/action-netlify-deploy@v1.1.0 with: From 2d284ce533cabeba901f842dadb10b9ab2858760 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Mar 2023 22:09:20 +0200 Subject: [PATCH 3063/3440] change resulting build dir for netlify --- .github/workflows/site-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/site-deploy.yaml b/.github/workflows/site-deploy.yaml index 53a1daa6e01..4f3a4f15d5c 100644 --- a/.github/workflows/site-deploy.yaml +++ b/.github/workflows/site-deploy.yaml @@ -26,4 +26,4 @@ jobs: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} NETLIFY_DEPLOY_TO_PROD: true - build_directory: tmpl + build_directory: out From c51570aa6429c90dc0925ba310b73ce1cac10cab Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 3 Apr 2023 08:13:13 -0300 Subject: [PATCH 3064/3440] sponsor: clear subcat Signed-off-by: Avelino --- tmpl/category-index.tmpl.html | 167 +++++++++++++++++----------------- 1 file changed, 83 insertions(+), 84 deletions(-) diff --git a/tmpl/category-index.tmpl.html b/tmpl/category-index.tmpl.html index 789dde84409..808f2b60543 100644 --- a/tmpl/category-index.tmpl.html +++ b/tmpl/category-index.tmpl.html @@ -1,99 +1,99 @@ - - - - + + + {{.Title}} - Awesome Go / Golang - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + -
-

- - awesome-go - - {{.Title}} - Awesome Go -

- +

awesome-go {{.Title}} - + Awesome Go

{{.Description}}

- -

- Build Status - Awesome - Slack Widget - Netlify Status - Track Awesome List -

- -

- -

- -
- - - 🗺️ back to content menu - +

Build Status Awesome Slack Widget Netlify Status +

+

+ 🗺️ back to content + menu - - - Deploys by Netlify - +
  • + {{.Description}} +
  • {{end}} + Deploys by Netlify
    - - - + + - From 09acbe5c2e6d9133b2e0d10b3a048a024bed5315 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 3 Apr 2023 08:16:49 -0300 Subject: [PATCH 3065/3440] gomod: upgrade packages (by tidy) Signed-off-by: Avelino --- go.mod | 1 + go.sum | 2 ++ 2 files changed, 3 insertions(+) diff --git a/go.mod b/go.mod index cc888d978bd..280a25b2707 100644 --- a/go.mod +++ b/go.mod @@ -14,6 +14,7 @@ require ( github.com/andybalholm/cascadia v1.3.1 // indirect github.com/golang/protobuf v1.4.2 // indirect golang.org/x/net v0.7.0 // indirect + golang.org/x/sys v0.5.0 // indirect golang.org/x/text v0.7.0 // indirect google.golang.org/appengine v1.6.6 // indirect google.golang.org/protobuf v1.25.0 // indirect diff --git a/go.sum b/go.sum index 8c0ebb96bef..bc867a2f884 100644 --- a/go.sum +++ b/go.sum @@ -244,7 +244,9 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From 2de86a4c50420b20a6dbd66364c6be755b57d1ae Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 3 Apr 2023 08:38:48 -0300 Subject: [PATCH 3066/3440] first comment: set dynamic pull request number --- .github/workflows/pull-request-first-comment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull-request-first-comment.yaml b/.github/workflows/pull-request-first-comment.yaml index e2b104410d4..f0a9e9ae6e3 100644 --- a/.github/workflows/pull-request-first-comment.yaml +++ b/.github/workflows/pull-request-first-comment.yaml @@ -12,7 +12,7 @@ jobs: uses: peter-evans/create-or-update-comment@v2 with: token: ${{ secrets.GITHUB_TOKEN }} - issue-number: 1 + issue-number: ${{ github.event.pull_request.number }} body: | Thank you for contributing with [awesome-go](https://awesome-go.com/), we will revise your contribution as soon as possible. From f404a87180376dfde7b287b03c88bf931d904dbd Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sat, 11 Mar 2023 12:57:56 +0100 Subject: [PATCH 3067/3440] added kazhuravlev/just --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 68bbf481379..9d2060d5ebb 100644 --- a/README.md +++ b/README.md @@ -2616,6 +2616,7 @@ _General utilities and tools to make your life easier._ - [intrinsic](https://github.com/mengzhuo/intrinsic) - Use x86 SIMD without writing any assembly code. - [jsend](https://github.com/clevergo/jsend) - JSend's implementation written in Go. - [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. +- [just](https://github.com/kazhuravlev/just) - Just a collection of useful functions for working with generic data structures. - [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. - [lancet](https://github.com/duke-git/lancet) - A comprehensive, efficient, and reusable util function library of go. - [lets-go](https://github.com/aplescia-chwy/lets-go) - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities. From 78dbb1af06e21e7d6683336fc96336d346fa9c8b Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 5 Apr 2023 07:38:02 -0300 Subject: [PATCH 3068/3440] Update pull-request-first-comment.yaml --- .github/workflows/pull-request-first-comment.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull-request-first-comment.yaml b/.github/workflows/pull-request-first-comment.yaml index f0a9e9ae6e3..f50130abfc5 100644 --- a/.github/workflows/pull-request-first-comment.yaml +++ b/.github/workflows/pull-request-first-comment.yaml @@ -7,11 +7,12 @@ on: jobs: commentCreated: runs-on: ubuntu-latest + environment: action steps: - name: first comment uses: peter-evans/create-or-update-comment@v2 with: - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.GH_TOKEN }} issue-number: ${{ github.event.pull_request.number }} body: | Thank you for contributing with [awesome-go](https://awesome-go.com/), we will revise your contribution as soon as possible. From 8e7ef88f173385029fceeb4c77f09444b16a7d62 Mon Sep 17 00:00:00 2001 From: Alexandru Cojocaru Date: Fri, 31 Mar 2023 21:42:02 +0200 Subject: [PATCH 3069/3440] @GoDiscussions --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9d2060d5ebb..dd3b7e36a81 100644 --- a/README.md +++ b/README.md @@ -3389,6 +3389,7 @@ _Add the group of your city/country here (send **PR**)_ - [@golangch](https://twitter.com/golangch) - [@golangflow](https://twitter.com/golangflow) - [@golangweekly](https://twitter.com/golangweekly) +- [@GoDiscussions](https://twitter.com/GoDiscussions) **[⬆ back to top](#contents)** From b62a2bd39ac7e4869c56984d466a40bbec2434b5 Mon Sep 17 00:00:00 2001 From: Alexandru Cojocaru Date: Thu, 6 Apr 2023 23:03:49 +0200 Subject: [PATCH 3070/3440] Fix alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dd3b7e36a81..8a7daa27fc2 100644 --- a/README.md +++ b/README.md @@ -3384,12 +3384,12 @@ _Add the group of your city/country here (send **PR**)_ ### Twitter +- [@GoDiscussions](https://twitter.com/GoDiscussions) - [@golang](https://twitter.com/golang) - [@golang_news](https://twitter.com/golang_news) - [@golangch](https://twitter.com/golangch) - [@golangflow](https://twitter.com/golangflow) - [@golangweekly](https://twitter.com/golangweekly) -- [@GoDiscussions](https://twitter.com/GoDiscussions) **[⬆ back to top](#contents)** From dc983188c90cf555dc90fa68bca524b4813bc92c Mon Sep 17 00:00:00 2001 From: Alexandru Cojocaru Date: Fri, 31 Mar 2023 21:46:34 +0200 Subject: [PATCH 3071/3440] Golang Weekly --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a7daa27fc2..be276e747ec 100644 --- a/README.md +++ b/README.md @@ -3438,6 +3438,7 @@ _Add the group of your city/country here (send **PR**)_ - [studygolang](https://studygolang.com) - The community of studygolang in China. - [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. - [TutorialEdge - Golang](https://tutorialedge.net/course/golang/) +- [Golang Weekly](https://discu.eu/weekly/golang/) - Each monday projects, tutorials and articles about Go. **[⬆ back to top](#contents)** From da1e135517530754c6500606e82b3c01edf08999 Mon Sep 17 00:00:00 2001 From: Alexandru Cojocaru Date: Thu, 6 Apr 2023 22:50:40 +0200 Subject: [PATCH 3072/3440] Fix alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be276e747ec..bf648195c32 100644 --- a/README.md +++ b/README.md @@ -3424,6 +3424,7 @@ _Add the group of your city/country here (send **PR**)_ - [Golang Flow](https://golangflow.io) - Post Updates, News, Packages and more. - [Golang News](https://golangnews.com) - Links and news about Go programming. - [Golang Resources](https://golangresources.com) - A curation of the best articles, exercises, talks and videos to learn Go. +- [Golang Weekly](https://discu.eu/weekly/golang/) - Each monday projects, tutorials and articles about Go. - [golang-graphics](https://github.com/mholt/golang-graphics) - Collection of Go images, graphics, and art. - [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. - [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. @@ -3438,7 +3439,6 @@ _Add the group of your city/country here (send **PR**)_ - [studygolang](https://studygolang.com) - The community of studygolang in China. - [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. - [TutorialEdge - Golang](https://tutorialedge.net/course/golang/) -- [Golang Weekly](https://discu.eu/weekly/golang/) - Each monday projects, tutorials and articles about Go. **[⬆ back to top](#contents)** From 75421a1d564cd09f952b1a33ba97aff34c5656e6 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 7 Apr 2023 14:10:48 -0300 Subject: [PATCH 3073/3440] Update pull-request-first-comment.yaml --- .github/workflows/pull-request-first-comment.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pull-request-first-comment.yaml b/.github/workflows/pull-request-first-comment.yaml index f50130abfc5..188dab6c1c0 100644 --- a/.github/workflows/pull-request-first-comment.yaml +++ b/.github/workflows/pull-request-first-comment.yaml @@ -8,6 +8,8 @@ jobs: commentCreated: runs-on: ubuntu-latest environment: action + env: + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} steps: - name: first comment uses: peter-evans/create-or-update-comment@v2 From 99db4566b635f9e80efb806d7302300adbbd75f9 Mon Sep 17 00:00:00 2001 From: Oleksandr Redko Date: Fri, 14 Apr 2023 17:37:40 +0300 Subject: [PATCH 3074/3440] Correct typos and remove trailing whitespace (#4813) --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index bf648195c32..33c919ce15a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) [![Track Awesome List](https://www.trackawesomelist.com/badge.svg)](https://www.trackawesomelist.com/avelino/awesome-go/) -We use the _[Golang Bridge](https://github.com/gobridge/about-us/blob/master/README.md)_ community slack for instant communication, follow the [form here to join](https://invite.slack.golangbridge.org/). +We use the _[Golang Bridge](https://github.com/gobridge/about-us/blob/master/README.md)_ community Slack for instant communication, follow the [form here to join](https://invite.slack.golangbridge.org/). awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt @@ -335,7 +335,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows. - [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. - [go-isatty](https://github.com/mattn/go-isatty) - isatty for golang. -- [go-palette](https://github.com/abusomani/go-palette) - Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible & wraps the [fmt library](https://pkg.go.dev/fmt) for nice terminal layouts. +- [go-palette](https://github.com/abusomani/go-palette) - Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible & wraps the [fmt library](https://pkg.go.dev/fmt) for nice terminal layouts. - [go-prompt](https://github.com/c-bata/go-prompt) - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit). - [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. - [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. @@ -1395,7 +1395,7 @@ _Libraries for working with JSON._ - [fastjson](https://github.com/valyala/fastjson) - Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection. - [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. - [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. -- [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is ment to allow us to easily create json response errors that follow the JsonApi spec. +- [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is meant to allow us to easily create json response errors that follow the JsonApi spec. - [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. - [gojq](https://github.com/elgs/gojq) - JSON query in Golang. - [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. @@ -2016,7 +2016,7 @@ _Unofficial libraries for package and dependency management._ - [fileb0x](https://github.com/UnnoTed/fileb0x) - Simple tool to embed files in go with focus on "customization" and ease to use. - [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. -- [mule](https://github.com/wlbr/mule) - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focussed on simplicity. +- [mule](https://github.com/wlbr/mule) - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focused on simplicity. - [packr](https://github.com/gobuffalo/packr) - The simple and easy way to embed static files into Go binaries. - [rebed](https://github.com/soypat/rebed) - Recreate folder structures and files from Go 1.16's `embed.FS` type - [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. @@ -2646,7 +2646,7 @@ _General utilities and tools to make your life easier._ - [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. - [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. -- [pattern-match](https://github.com/alexpantyukhin/go-pattern-match) - Pattern matching libray. +- [pattern-match](https://github.com/alexpantyukhin/go-pattern-match) - Pattern matching library. - [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool. - [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. - [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API. @@ -3479,7 +3479,7 @@ _Add the group of your city/country here (send **PR**)_ - [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. - [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes. - [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development. -- [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example. +- [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Series of articles in order to learn Golang language by concrete applications as example. - [Microservices with Go](https://www.youtube.com/playlist?list=PLmD8u-IFdreyh6EUfevBcbiuCKzFk0EW_) - Dive deep into building microservices using Go, including gRPC. - [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. - [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. From 89b15503d2a38e2a623237d1ff283be1aad9dd63 Mon Sep 17 00:00:00 2001 From: Oleksandr Redko Date: Sun, 16 Apr 2023 08:46:17 +0300 Subject: [PATCH 3075/3440] Change tarp to blanket, blanket is on GitLab (#4848) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 33c919ce15a..80795f3c73e 100644 --- a/README.md +++ b/README.md @@ -2941,6 +2941,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes. - [asty](https://github.com/asty-org/asty) - Converts golang AST to JSON and JSON to AST. +- [blanket](https://gitlab.com/verygoodsoftwarenotvirus/blanket) - blanket is a tool that helps you catch functions which don't have direct unit tests in your Go packages. - [ChainJacking](https://github.com/Checkmarx/chainjacking) - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack. - [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. - [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. @@ -2962,7 +2963,6 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [lint](https://github.com/surullabs/lint) - Run linters as part of go test. - [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. - [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#. -- [tarp](https://github.com/verygoodsoftwarenotvirus/tarp) - tarp finds functions and methods without direct unit tests in Go source code. - [tickgit](https://github.com/augmentable-dev/tickgit) - CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`to identify the author. - [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. - [unconvert](https://github.com/mdempsky/unconvert) - Remove unnecessary type conversions from Go source. From 5ce2e4fd32d6edcd79ebd547649748d856c4c71a Mon Sep 17 00:00:00 2001 From: vladopajic Date: Wed, 19 Apr 2023 07:09:24 +0200 Subject: [PATCH 3076/3440] add go-test-coverage (#4808) * add go-test-coverage * fix ordering * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 80795f3c73e..9ff0e923da2 100644 --- a/README.md +++ b/README.md @@ -485,6 +485,7 @@ _Tools for help with continuous integration._ - [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. - [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. - [go-fuzz-action](https://github.com/jidicula/go-fuzz-action) - Use Go 1.18's built-in fuzz testing in GitHub Actions. +- [go-test-coverage](https://github.com/vladopajic/go-test-coverage) - Tool and GitHub action which reports issues when test coverage is below set threshold. - [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. - [gotestfmt](https://github.com/GoTestTools/gotestfmt) - go test output for humans. - [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. From 54bd78abc306fe5718cddee8102381efd1acd132 Mon Sep 17 00:00:00 2001 From: Yiling-J Date: Wed, 19 Apr 2023 13:11:03 +0800 Subject: [PATCH 3077/3440] add theine to cache (#4843) * add theine to cache * fix order --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ff0e923da2..409a844519a 100644 --- a/README.md +++ b/README.md @@ -646,6 +646,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [gocache](https://github.com/eko/gocache) - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. - [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). +- [theine](https://github.com/Yiling-J/theine-go) - High performance, near optimal in-memory cache with proactive TTL expiration and generics. - [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. - [ttlcache](https://github.com/jellydator/ttlcache) - An in-memory cache with item expiration and generics. - [ttlcache](https://github.com/cheshir/ttlcache) - In-memory key value storage with TTL for each record. From fc2b41c70411a7fd8650244a94cc28ce80e2a796 Mon Sep 17 00:00:00 2001 From: Ernest Nguyen Hung <58267404+erni27@users.noreply.github.com> Date: Wed, 19 Apr 2023 07:19:10 +0200 Subject: [PATCH 3078/3440] Add imcache (#4847) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 409a844519a..1b96f961965 100644 --- a/README.md +++ b/README.md @@ -645,6 +645,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. - [gocache](https://github.com/eko/gocache) - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. +- [imcache](https://github.com/erni27/imcache) - A generic in-memory cache Go library. It supports expiration, sliding expiration, max entries limit, eviction callbacks and sharding. - [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). - [theine](https://github.com/Yiling-J/theine-go) - High performance, near optimal in-memory cache with proactive TTL expiration and generics. - [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. From ca4ad2ed495eb24919405fa4888c8b9d1561a3de Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 21 Apr 2023 23:57:45 +0530 Subject: [PATCH 3079/3440] add color-extractor (#4856) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1b96f961965..7f02d78c0aa 100644 --- a/README.md +++ b/README.md @@ -1303,6 +1303,7 @@ _Libraries for manipulating images._ - [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips. - [cameron](https://github.com/aofei/cameron) - An avatar generator for Go. - [canvas](https://github.com/tdewolff/canvas) - Vector graphics to PDF, SVG or rasterized image. +- [color-extractor](https://github.com/marekm4/color-extractor) - Dominant color extractor with no external dependencies. - [darkroom](https://github.com/gojek/darkroom) - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency. - [draft](https://github.com/lucasepe/draft) - Generate High Level Microservice Architecture diagrams for GraphViz using simple YAML syntax. - [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. From a8c46606ac63a8ceb5640fef5cdf39f759b620d1 Mon Sep 17 00:00:00 2001 From: Ahmed Mohamed Date: Sat, 22 Apr 2023 06:27:11 +0200 Subject: [PATCH 3080/3440] add Pulse web framework (#4846) * add pulse web framework * change description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7f02d78c0aa..b7182e6d3e7 100644 --- a/README.md +++ b/README.md @@ -2817,6 +2817,7 @@ _Full stack web frameworks._ - [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. - [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. - [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. +- [Pulse](https://github.com/gopulse/pulse) - Pulse is an HTTP web framework written in Go (Golang) - [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. - [REST Layer](https://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. - [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. From 64887ca0126334900a1727ad3be616c09def0718 Mon Sep 17 00:00:00 2001 From: James Mills <1290234+prologic@users.noreply.github.com> Date: Sun, 23 Apr 2023 13:54:18 +1000 Subject: [PATCH 3081/3440] Add zs (#4814) Add [zs](https://git.mills.io/prologic/zs) to Other Software --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b7182e6d3e7..a5cfd9c49d4 100644 --- a/README.md +++ b/README.md @@ -3194,6 +3194,7 @@ _Software written in Go._ - [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. - [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). - [woke](https://github.com/get-woke/woke) - Detect non-inclusive language in your source code. +- [zs](https://git.mills.io/prologic/zs) - an extremely minimal static site generator. **[⬆ back to top](#contents)** From 08e5e5c2b4646423b7a90db7d22d436b14914fca Mon Sep 17 00:00:00 2001 From: mstmdev Date: Sun, 23 Apr 2023 11:55:44 +0800 Subject: [PATCH 3082/3440] Add no-src/log (#4811) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a5cfd9c49d4..1095959494b 100644 --- a/README.md +++ b/README.md @@ -1455,6 +1455,7 @@ _Libraries for generating and working with log files._ - [log](https://github.com/go-playground/log) - Simple, configurable and scalable Structured Logging for Go. - [log](https://github.com/teris-io/log) - Structured log interface for Go cleanly separates logging facade from its implementation. - [log](https://github.com/heartwilltell/log) - Simple leveled logging wrapper around standard log package. +- [log](https://github.com/no-src/log) - A simple logging framework out of the box. - [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. From 63929b29f20aa97a1f5bdd459f0e901ae4a0345d Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Mon, 24 Apr 2023 09:51:10 +0200 Subject: [PATCH 3083/3440] Adding slog-formatter (#4852) * feat: adding slog-formatter --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1095959494b..687e8e174da 100644 --- a/README.md +++ b/README.md @@ -1480,6 +1480,7 @@ _Libraries for generating and working with log files._ - [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting. - [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. - [slog](https://github.com/gookit/slog) - Lightweight, configurable, extensible logger for Go. +- [slog-formatter](https://github.com/samber/slog-formatter) - Common formatters for slog and helpers to build your own. - [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. - [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing \*sql.DB stdlib usage. - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. From 6dbd24333dcc6be5fd32342f3b4bdbaf820ad899 Mon Sep 17 00:00:00 2001 From: Kamil Samigullin Date: Mon, 24 Apr 2023 17:08:30 +0300 Subject: [PATCH 3084/3440] add go-module to project layout section (#4849) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 687e8e174da..8b05e664fc5 100644 --- a/README.md +++ b/README.md @@ -1649,6 +1649,7 @@ _**Unofficial** set of patterns for structuring projects._ - [ardanlabs/service](https://github.com/ardanlabs/service) - A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications. - [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. +- [go-module](https://github.com/octomation/go-module) - Template for a typical module written on Go. - [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. - [go-starter](https://github.com/allaboutapps/go-starter) - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers. - [go-todo-backend](https://github.com/Fs02/go-todo-backend) - Go Todo Backend example using modular project layout for product microservice. From f8c5b37ab7881e01d6059d20da3f50931482836a Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Thu, 27 Apr 2023 09:07:05 +0200 Subject: [PATCH 3085/3440] feat: adding slog-multi (#4850) feat: adding slog-multi --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8b05e664fc5..bf551b7fa1b 100644 --- a/README.md +++ b/README.md @@ -1481,6 +1481,7 @@ _Libraries for generating and working with log files._ - [slf4g](https://github.com/echocat/slf4g) - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. - [slog](https://github.com/gookit/slog) - Lightweight, configurable, extensible logger for Go. - [slog-formatter](https://github.com/samber/slog-formatter) - Common formatters for slog and helpers to build your own. +- [slog-multi](https://github.com/samber/slog-multi) - Chain of slog.Handler (pipeline, fanout...). - [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. - [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing \*sql.DB stdlib usage. - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. From 76fba9dc23736ec6f8e21a28a6ad766feb02b7f4 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 30 Apr 2023 15:38:01 +0300 Subject: [PATCH 3086/3440] add Textra (#4867) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bf551b7fa1b..4c8904bf6fd 100644 --- a/README.md +++ b/README.md @@ -3041,6 +3041,7 @@ _Plugin for text editors and IDEs._ - [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. - [roumon](https://github.com/becheran/roumon) - Monitor current state of all active goroutines via a command line interface. - [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses. +- [textra](https://github.com/ravsii/textra) - Extract Go struct field names, types and tags for filtering and exporting. - [typex](https://github.com/dtgorski/typex) - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration. **[⬆ back to top](#contents)** From 27c594d4c2c33a2c11a35a4d55402fd4d7336ceb Mon Sep 17 00:00:00 2001 From: mstmdev Date: Sun, 30 Apr 2023 20:40:27 +0800 Subject: [PATCH 3087/3440] Add no-src/nscache (#4866) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4c8904bf6fd..f9369cfdc53 100644 --- a/README.md +++ b/README.md @@ -646,6 +646,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [gocache](https://github.com/eko/gocache) - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. - [imcache](https://github.com/erni27/imcache) - A generic in-memory cache Go library. It supports expiration, sliding expiration, max entries limit, eviction callbacks and sharding. +- [nscache](https://github.com/no-src/nscache) - A Go caching framework that supports multiple data source drivers. - [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). - [theine](https://github.com/Yiling-J/theine-go) - High performance, near optimal in-memory cache with proactive TTL expiration and generics. - [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. From e11308a83018505778d06e267edca34cd5565de2 Mon Sep 17 00:00:00 2001 From: Adrian Brad Date: Sun, 30 Apr 2023 16:15:39 +0300 Subject: [PATCH 3088/3440] add github.com/adrianbrad/queue (#4854) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f9369cfdc53..94683308585 100644 --- a/README.md +++ b/README.md @@ -587,6 +587,7 @@ additional ordered map implementations. - [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). - [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. - [memlog](https://github.com/embano1/memlog) - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka. +- [queue](https://github.com/adrianbrad/queue) - Multiple thread-safe, generic queue implementations for Go. ### Sets From 47cdcc0d34bd59e2152e0594fec2fd61d26143a1 Mon Sep 17 00:00:00 2001 From: Zino Kader Date: Sun, 30 Apr 2023 15:21:29 +0200 Subject: [PATCH 3089/3440] add portal (#4804) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 94683308585..b659249727d 100644 --- a/README.md +++ b/README.md @@ -3181,6 +3181,7 @@ _Software written in Go._ - [Orbit](https://github.com/gulien/orbit) - A simple tool for running commands and generating files from templates. - [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. - [Plik](https://github.com/root-gg/plik) - Plik is a temporary file upload system (Wetransfer like) in Go. +- [portal](https://github.com/SpatiumPortae/portal) - Portal is a quick and easy command-line file transfer utility from any computer to another. - [protoncheck](https://github.com/servusdei2018/protoncheck) - ProtonMail module for waybar/polybar/yabar/i3blocks. - [restic](https://github.com/restic/restic) - De-duplicating backup program. - [sake](https://github.com/alajmo/sake) - sake is a command runner for local and remote hosts. From 7381f1a5ccea68cfe65cf5c49000f7e3308349ef Mon Sep 17 00:00:00 2001 From: anqiansong Date: Mon, 1 May 2023 02:21:20 +0800 Subject: [PATCH 3090/3440] add sqlgen (#4399) Co-authored-by: keson.an --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b659249727d..4454ec8ad2b 100644 --- a/README.md +++ b/README.md @@ -3018,6 +3018,7 @@ _Plugin for text editors and IDEs._ - [hasgo](https://github.com/DylanMeeus/hasgo) - Generate Haskell inspired functions for your slices. - [options-gen](https://github.com/kazhuravlev/options-gen) - Functional options described by Dave Cheney's post "Functional options for friendly APIs". - [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. +- [sqlgen](https://github.com/anqiansong/sqlgen) - Generate gorm, xorm, sqlx, bun, sql code from SQL file or DSN. - [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly. - [xgen](https://github.com/xuri/xgen) - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator. From 6837656af3027fbe567c9add3db75218ced6c3df Mon Sep 17 00:00:00 2001 From: Amit Davidson Date: Sun, 30 Apr 2023 21:25:35 +0300 Subject: [PATCH 3091/3440] Add LibraDB and Chronos (#4462) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 4454ec8ad2b..d2f4b512378 100644 --- a/README.md +++ b/README.md @@ -678,6 +678,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [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. +- [libradb](https://github.com/amit-davidson/LibraDB) - LibraDB is a simple database with less then 1000 lines of code for learning. - [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. - [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. - [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. @@ -2954,6 +2955,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [asty](https://github.com/asty-org/asty) - Converts golang AST to JSON and JSON to AST. - [blanket](https://gitlab.com/verygoodsoftwarenotvirus/blanket) - blanket is a tool that helps you catch functions which don't have direct unit tests in your Go packages. - [ChainJacking](https://github.com/Checkmarx/chainjacking) - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack. +- [Chronos](https://github.com/amit-davidson/Chronos) - Detects race conditions statically - [dupl](https://github.com/mibk/dupl) - Tool for code clone detection. - [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. - [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. @@ -3462,6 +3464,7 @@ _Add the group of your city/country here (send **PR**)_ - [50 Shades of Go](https://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs. - [A Guide to Golang E-Commerce](https://snipcart.com/blog/golang-ecommerce-ponzu-cms-demo?utm_term=golang-ecommerce-ponzu-cms-demo) - Building a Golang site for e-commerce (demo included). - [A Tour of Go](https://tour.golang.org/) - Interactive tour of Go. +- [Build a Database in 1000 lines of code]( https://link.medium.com/O9YQlx89Htb) - Build a NoSQL Database From Zero in 1000 Lines of Code. - [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. - [Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL](https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql) - We’ll write an API with the help of the powerful Gorilla Mux. - [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. From 28d94fd3ed86cb2d6076537fd3cb18107e272dc6 Mon Sep 17 00:00:00 2001 From: Leo Kling Date: Sun, 30 Apr 2023 20:27:59 +0200 Subject: [PATCH 3092/3440] add bubbles (#4498) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d2f4b512378..461914d443f 100644 --- a/README.md +++ b/README.md @@ -324,6 +324,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. - [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that support fmt.Printf/Sprintf. - [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. +- [bubbles](https://github.com/charmbracelet/bubbles) - TUI components for bubbletea. - [bubbletea](https://github.com/charmbracelet/bubbletea) - Go framework to build terminal apps, based on The Elm Architecture. - [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. - [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. From 8ebcd3572677452de9220413960b31c19f9e1ebf Mon Sep 17 00:00:00 2001 From: Frank Ratschinski <70589737+fratschi@users.noreply.github.com> Date: Sun, 30 Apr 2023 20:29:31 +0200 Subject: [PATCH 3093/3440] add vacuum (#4496) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 461914d443f..94a307dee34 100644 --- a/README.md +++ b/README.md @@ -2982,6 +2982,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [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. - [usestdlibvars](https://github.com/sashamelentyev/usestdlibvars) - A linter that detect the possibility to use variables/constants from the Go standard library. +- [vaccum](https://github.com/daveshanley/vacuum) - An ultra-super-fast, lightweight OpenAPI linter and quality checking tool. - [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. **[⬆ back to top](#contents)** From 99354b763bc650daf1a66f27d7202c1b3a3c066a Mon Sep 17 00:00:00 2001 From: HANAI Tohru Date: Mon, 1 May 2023 11:06:06 +0900 Subject: [PATCH 3094/3440] add convergen (#4786) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 94a307dee34..9a57867b46c 100644 --- a/README.md +++ b/README.md @@ -1147,6 +1147,7 @@ _Awesome game development libraries._ _Tools that generate Go code._ +- [convergen](https://github.com/reedom/convergen) - Feature rich type-to-type copy code generator. - [copygen](https://github.com/switchupcb/copygen) - Generate type-to-type and type-based code without reflection. - [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. - [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. From 2f2b9d627962cf436fc233974177d44fe34b0a7e Mon Sep 17 00:00:00 2001 From: John Guo Date: Mon, 1 May 2023 10:35:58 +0800 Subject: [PATCH 3095/3440] Add GoFrame project to Web Frameworks (#4764) Co-authored-by: txqiangguo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9a57867b46c..9863bd5dd83 100644 --- a/README.md +++ b/README.md @@ -2810,6 +2810,7 @@ _Full stack web frameworks._ - [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. - [Goa](https://github.com/goadesign/goa) - Goa provides a holistic approach for developing remote APIs and microservices in Go. - [goa](https://github.com/goa-go/goa) - goa is just like koajs for golang, it is a flexible, light, high-performance and extensible web framework based on middleware. +- [GoFrame](https://github.com/gogf/gf) - GoFrame is a modular, full-featured and production-ready application development framework of golang. - [golamb](https://github.com/twharmon/golamb) - Golamb makes it easier to write API endpoints for use with AWS Lambda and API Gateway. - [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. - [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. From c3afe6e60f0040cc2360395caafe286c1f65a5bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=81=93=E5=8F=8B=E8=AF=B7=E7=95=99=E6=AD=A5?= Date: Mon, 1 May 2023 10:36:58 +0800 Subject: [PATCH 3096/3440] add gws (#4694) Co-authored-by: lixizan --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9863bd5dd83..9b7c56e8646 100644 --- a/README.md +++ b/README.md @@ -1859,6 +1859,7 @@ _Libraries for working with various layers of the network._ - [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. +- [gws](https://github.com/lxzan/gws) - High-Performance WebSocket Server & Client With AsyncIO Supporting . - [HTTPLab](https://github.com/gchaincl/httplab) - HTTPLabs let you inspect HTTP requests and forge responses. - [httpproxy](https://github.com/wzshiming/httpproxy) - HTTP proxy handler and dialer. - [iplib](https://github.com/c-robinson/iplib) - Library for working with IP addresses (net.IP, net.IPNet), inspired by python [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html) From dfdc726ed4021e105d9e211e3efb4780461bd3fe Mon Sep 17 00:00:00 2001 From: Andrew Koltyakov Date: Mon, 1 May 2023 07:13:47 -0500 Subject: [PATCH 3097/3440] Gosip description fix (#4780) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b7c56e8646..680880e51b3 100644 --- a/README.md +++ b/README.md @@ -2494,7 +2494,7 @@ _Libraries for accessing third party APIs._ - [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). - [google-play-scraper](https://github.com/n0madic/google-play-scraper) - Get data from Google Play Store. - [gopaapi5](https://github.com/utekaravinash/gopaapi5) - Go Client Library for [Amazon Product Advertising API 5.0](https://webservices.amazon.com/paapi5/documentation/). -- [gosip](https://github.com/koltyakov/gosip) - Go client library SharePoint API. +- [gosip](https://github.com/koltyakov/gosip) - Client library for SharePoint. - [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. - [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. From 77c71dd90aa6516315728091f16c36a342298ad6 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 May 2023 17:51:47 -0300 Subject: [PATCH 3098/3440] Create config.yaml --- .github/ISSUE_TEMPLATE/config.yaml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yaml diff --git a/.github/ISSUE_TEMPLATE/config.yaml b/.github/ISSUE_TEMPLATE/config.yaml new file mode 100644 index 00000000000..1e6d5851df5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yaml @@ -0,0 +1,7 @@ +contact_links: + - name: Feature request + url: https://github.com/avelino/awesome-go/discussions/new?category=ideas + about: Suggest an idea for awesome-go + - name: Questions & Help + url: https://github.com/avelino/awesome-go/discussions/new?category=q-a + about: Ask a question about awesome-go From b667643d714255c5ec57b366a8e6bcb5207b78fb Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 May 2023 17:52:37 -0300 Subject: [PATCH 3099/3440] Delete awesome-go-related-topic.md --- .github/ISSUE_TEMPLATE/awesome-go-related-topic.md | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/awesome-go-related-topic.md diff --git a/.github/ISSUE_TEMPLATE/awesome-go-related-topic.md b/.github/ISSUE_TEMPLATE/awesome-go-related-topic.md deleted file mode 100644 index 2dd422f1ddd..00000000000 --- a/.github/ISSUE_TEMPLATE/awesome-go-related-topic.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: awesome-go related topic -about: Create a report to help us improve -title: '' -labels: help wanted -assignees: '' - ---- - - From dbd75385150b8c60031fb341cd672649d8ca5dcd Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 May 2023 17:56:21 -0300 Subject: [PATCH 3100/3440] Update and rename awesome-go-com.md to bug.yml --- .github/ISSUE_TEMPLATE/awesome-go-com.md | 13 ------------ .github/ISSUE_TEMPLATE/bug.yml | 27 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 13 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/awesome-go-com.md create mode 100644 .github/ISSUE_TEMPLATE/bug.yml diff --git a/.github/ISSUE_TEMPLATE/awesome-go-com.md b/.github/ISSUE_TEMPLATE/awesome-go-com.md deleted file mode 100644 index 33c6f51f33d..00000000000 --- a/.github/ISSUE_TEMPLATE/awesome-go-com.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: awesome-go.com -about: website-related -title: "[awesome-go.com]: issue title here" -labels: awesome-go.com -assignees: '' - ---- - - diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 00000000000..69c606f17f5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,27 @@ +name: Bug Report +description: Report a bug encountered +labels: ["bug", "pending-review"] +body: + - type: markdown + attributes: + value: | + Thank you very much for opening a bug report at awesome-go. + + If you have a feature idea or need help, please go to [our Forum](https://github.com/avelino/awesome-go/discussions). + before opening the issue we recommend that you read our [contribution guide](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md), there we talk about how you can contribute to awesome-go. + - type: checkboxes + id: confirm-search + attributes: + label: Search first + description: Please search [existing issues](https://github.com/avelino/awesome-go/issues) and the [awesome-go forum](https://github.com/avelino/awesome-go/discussions) before reporting. + options: + - label: I searched and no similar issues were found + required: true + - type: textarea + id: problem + attributes: + label: What Happened? + description: | + Please provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. + validations: + required: true From 0ae45eb9bbdc5b6f6c164ae5855db6ee55097b30 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 May 2023 17:57:07 -0300 Subject: [PATCH 3101/3440] Rename config.yaml to config.yml --- .github/ISSUE_TEMPLATE/{config.yaml => config.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/ISSUE_TEMPLATE/{config.yaml => config.yml} (100%) diff --git a/.github/ISSUE_TEMPLATE/config.yaml b/.github/ISSUE_TEMPLATE/config.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/config.yaml rename to .github/ISSUE_TEMPLATE/config.yml From 9466e86a4d12463a7f5930bfdabd26dc1bda0e84 Mon Sep 17 00:00:00 2001 From: Pulkit Kathuria Date: Tue, 2 May 2023 15:14:01 +0900 Subject: [PATCH 3102/3440] add kevincobain2000/gobrew (#4691) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 680880e51b3..6897feac050 100644 --- a/README.md +++ b/README.md @@ -3092,6 +3092,7 @@ _Software written in Go._ - [go-rocket-update](https://github.com/mouuff/go-rocket-update) - A simple way to make self updating Go applications - Supports Github and Gitlab. - [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. - [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. +- [gobrew](https://github.com/kevincobain2000/gobrew) - Go version manager. Super simple tool to install and manage Go versions. Install go without root. Gobrew doesn't require shell rehash. - [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. From 2e9e2f9fb65855c6e2a4188ca7bad2082993bb02 Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Tue, 2 May 2023 08:18:23 +0200 Subject: [PATCH 3103/3440] Feat: Adding lmittmann/tint (#4851) * feat: adding tint * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6897feac050..8fa9c89d39b 100644 --- a/README.md +++ b/README.md @@ -1492,6 +1492,7 @@ _Libraries for generating and working with log files._ - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. - [structy/log](https://github.com/structy/log) - A simple to use log system, minimalist but with features for debugging and differentiation of messages. - [tail](https://github.com/hpcloud/tail) - Go package striving to emulate the features of the BSD tail program. +- [tint](https://github.com/lmittmann/tint) - A slog.Handler that writes tinted logs. - [xlog](https://github.com/xfxdev/xlog) - Plugin architecture and flexible log system for Go, with level ctrl, multiple log target and custom log format. - [xlog](https://github.com/rs/xlog) - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. - [xylog](https://github.com/xybor-x/xylog) - Leveled and structured logging, dynamic fields, high performance, zone management, simple configuration, and readable syntax. From e73bf76d7506051ade95a8bbd75eee4e91ab3abb Mon Sep 17 00:00:00 2001 From: Nimo Date: Tue, 2 May 2023 14:42:03 +0800 Subject: [PATCH 3104/3440] add limiu82214/gojmapr (#4834) Co-authored-by: nimo_wang --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8fa9c89d39b..1348c28bf6c 100644 --- a/README.md +++ b/README.md @@ -1406,6 +1406,7 @@ _Libraries for working with JSON._ - [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. - [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is meant to allow us to easily create json response errors that follow the JsonApi spec. - [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. +- [gojmapr](https://github.com/limiu82214/gojmapr) - Get simple struct from complex json by json path. - [gojq](https://github.com/elgs/gojq) - JSON query in Golang. - [gojson](https://github.com/ChimeraCoder/gojson) - Automatically generate Go (golang) struct definitions from example JSON. - [htmljson](https://github.com/nikolaydubina/htmljson) - Rich rendering of JSON as HTML in Go. From eb185f2107c056667813b28721a52fce319a4f7a Mon Sep 17 00:00:00 2001 From: Siege Lion <1448189829@qq.com> Date: Tue, 2 May 2023 14:43:20 +0800 Subject: [PATCH 3105/3440] Add github.com/kubevela/kubevela (#4776) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1348c28bf6c..0ce92147fcd 100644 --- a/README.md +++ b/README.md @@ -3111,6 +3111,7 @@ _Software written in Go._ - [ko](https://github.com/google/ko) - Command line tool for building and deploying Go applications on Kubernetes - [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way. - [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. +- [KubeVela](https://github.com/kubevela/kubevela) - Cloud native application delivery. - [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly. - [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. - [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. From 5d6cadc0083047eb0c6ecc2ae1af5e21aab619fa Mon Sep 17 00:00:00 2001 From: Song Gao Date: Wed, 3 May 2023 04:13:16 +0800 Subject: [PATCH 3106/3440] add ekuiper to IOT (#4845) Signed-off-by: yisaer --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0ce92147fcd..e81f930aa90 100644 --- a/README.md +++ b/README.md @@ -1356,6 +1356,7 @@ _Libraries for programming devices of the IoT._ - [connectordb](https://github.com/connectordb/connectordb) - Open-Source Platform for Quantified Self & IoT. - [devices](https://github.com/goiot/devices) - Suite of libraries for IoT devices, experimental for x/exp/io. +- [ekuiper](https://github.com/if-edge/ekuiper) - Lightweight data stream processing engine for IoT edge. - [eywa](https://github.com/xcodersun/eywa) - Project Eywa is essentially a connection manager that keeps track of connected devices. - [flogo](https://github.com/tibcosoftware/flogo) - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. - [gatt](https://github.com/paypal/gatt) - Gatt is a Go package for building Bluetooth Low Energy peripherals. From c367a122afba5e16eb3ce5964b484365f6d1112a Mon Sep 17 00:00:00 2001 From: dongjiang Date: Fri, 5 May 2023 14:03:45 +0800 Subject: [PATCH 3107/3440] Add Golang Common Library for Server Framework (#4666) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e81f930aa90..20e2e85de37 100644 --- a/README.md +++ b/README.md @@ -1703,6 +1703,7 @@ _These libraries were placed here because none of the other categories seemed to - [bitio](https://github.com/icza/bitio) - Highly optimized bit-level Reader and Writer for Go. - [browscap_go](https://github.com/digitalcrab/browscap_go) - GoLang Library for [Browser Capabilities Project](https://browscap.org/). - [captcha](https://github.com/steambap/captcha) - Package captcha provides an easy to use, unopinionated API for captcha generation. +- [common](https://github.com/kubeservice-stack/common) - A library for server framework. - [conv](https://github.com/cstockton/go-conv) - Package conv provides fast and intuitive conversions across Go types. - [datacounter](https://github.com/miolini/datacounter) - Go counters for readers/writer/http.ResponseWriter. - [faker](https://github.com/neotoolkit/faker) - Fake data generator. From 47f9976e29a14d282f0d325ee6251595dea3de56 Mon Sep 17 00:00:00 2001 From: Paul Burlumi Date: Mon, 8 May 2023 05:39:52 +0100 Subject: [PATCH 3108/3440] Fix typo in github action workflow (#4878) --- .github/workflows/pull-request-first-comment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull-request-first-comment.yaml b/.github/workflows/pull-request-first-comment.yaml index 188dab6c1c0..1e264e6a6d4 100644 --- a/.github/workflows/pull-request-first-comment.yaml +++ b/.github/workflows/pull-request-first-comment.yaml @@ -1,4 +1,4 @@ -name: Fist comment in new pull request +name: First comment in new pull request on: pull_request: From b0213875357803513d150f520de8250faf66643a Mon Sep 17 00:00:00 2001 From: Elliot Forbes Date: Wed, 10 May 2023 17:07:46 +0100 Subject: [PATCH 3109/3440] Added a guided-learning section (#4816) Co-authored-by: Elliot Forbes --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 20e2e85de37..7ec141f535e 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Reddit](#reddit) - [Websites](#websites) - [Tutorials](#tutorials) + - [Guided Learning Paths](#guided-learning) **[⬆ back to top](#contents)** @@ -3519,3 +3520,10 @@ _Add the group of your city/country here (send **PR**)_ - [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. **[⬆ back to top](#contents)** + +### Guided Learning + +- [The Go Developer Roadmap](https://roadmap.sh/golang) - A visual roadmap that new Go developers can follow through to help them learn Go. +- [The Go Learning Path](https://tutorialedge.net/paths/golang/) - A guided learning path containing a mix of free and premium resources. + +**[⬆ back to top](#contents)** From e34822868a807038a18f0acd54aa15111f10d719 Mon Sep 17 00:00:00 2001 From: elda <44555688+elliahu@users.noreply.github.com> Date: Sat, 13 May 2023 23:26:19 +0200 Subject: [PATCH 3110/3440] Add "A Comprehensive Guide to Structured Logging in Go" to Tutorials (#4881) * Add Guide to Structured Logging in Go to Tutorials * Add caling Go Applications to Tutorials --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7ec141f535e..4d254455c30 100644 --- a/README.md +++ b/README.md @@ -3474,6 +3474,7 @@ _Add the group of your city/country here (send **PR**)_ ### Tutorials - [50 Shades of Go](https://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs. +- [A Comprehensive Guide to Structured Logging in Go](https://betterstack.com/community/guides/logging/logging-in-go/) - Delve deep into the world of structured logging in Go with a specific focus on recently accepted slog proposal which aims to bring high performance structured logging with levels to the standard library. - [A Guide to Golang E-Commerce](https://snipcart.com/blog/golang-ecommerce-ponzu-cms-demo?utm_term=golang-ecommerce-ponzu-cms-demo) - Building a Golang site for e-commerce (demo included). - [A Tour of Go](https://tour.golang.org/) - Interactive tour of Go. - [Build a Database in 1000 lines of code]( https://link.medium.com/O9YQlx89Htb) - Build a NoSQL Database From Zero in 1000 Lines of Code. @@ -3514,6 +3515,7 @@ _Add the group of your city/country here (send **PR**)_ - [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. - [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. - [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs. +- [Scaling Go Applications](https://betterstack.com/community/guides/scaling-go/) - Everything about building, deploying and scaling Go applications in production. - [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) - [W3basic Go Tutorials](https://www.w3basic.com/golang/) - W3Basic provides an in-depth tutorial and well-organized content to learn Golang programming. - [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. From d98c5c17bf3b8a6c03a8ec7d67ab809c3222a33c Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 19 May 2023 05:03:41 +0530 Subject: [PATCH 3111/3440] adress: Multiple broken hyperlinks #4888 (#4891) --- README.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 4d254455c30..6094ad46672 100644 --- a/README.md +++ b/README.md @@ -922,7 +922,7 @@ _Packages that help with building Distributed Systems._ - [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. - [pjrpc](https://gitlab.com/pjrpc/pjrpc) - Golang JSON-RPC Server-Client with Protobuf spec. - [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. -- [raft](https://github.com/coreos/etcd/tree/master/raft) - Go implementation of the Raft consensus protocol, by CoreOS. +- [raft](https://github.com/etcd-io/raft) - Go implementation of the Raft consensus protocol, by CoreOS. - [rain](https://github.com/cenkalti/rain) - BitTorrent client and library. - [redis-lock](https://github.com/bsm/redislock) - Simplified distributed locking implementation using Redis. - [resgate](https://resgate.io/) - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly. @@ -1357,7 +1357,7 @@ _Libraries for programming devices of the IoT._ - [connectordb](https://github.com/connectordb/connectordb) - Open-Source Platform for Quantified Self & IoT. - [devices](https://github.com/goiot/devices) - Suite of libraries for IoT devices, experimental for x/exp/io. -- [ekuiper](https://github.com/if-edge/ekuiper) - Lightweight data stream processing engine for IoT edge. +- [ekuiper](https://github.com/lf-edge/ekuiper) - Lightweight data stream processing engine for IoT edge. - [eywa](https://github.com/xcodersun/eywa) - Project Eywa is essentially a connection manager that keeps track of connected devices. - [flogo](https://github.com/tibcosoftware/flogo) - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. - [gatt](https://github.com/paypal/gatt) - Gatt is a Go package for building Bluetooth Low Energy peripherals. @@ -2110,7 +2110,7 @@ _Libraries that are used to help make your application more secure._ - [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)". - [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. - [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. -- [Interpol](https://bitbucket.org/vahidi/interpol) - Rule-based data generator for fuzzing and penetration testing. +- [Interpol](https://github.com/avahidi/interpol) - Rule-based data generator for fuzzing and penetration testing. - [lego](https://github.com/go-acme/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. - [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. @@ -2835,7 +2835,7 @@ _Full stack web frameworks._ - [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. - [Pulse](https://github.com/gopulse/pulse) - Pulse is an HTTP web framework written in Go (Golang) - [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. -- [REST Layer](https://rest-layer.io) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. +- [REST Layer](https://github.com/rs/rest-layer) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. - [Revel](https://github.com/revel/revel) - High-productivity web framework for the Go language. - [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. - [rk-boot](https://github.com/rookie-ninja/rk-boot) - A bootstrapper library for building enterprise go microservice with Gin and gRPC quickly and easily. @@ -2980,7 +2980,6 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. - [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. - [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. -- [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. - [lint](https://github.com/surullabs/lint) - Run linters as part of go test. - [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. @@ -2988,7 +2987,6 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [tickgit](https://github.com/augmentable-dev/tickgit) - CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`to identify the author. - [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. - [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. - [usestdlibvars](https://github.com/sashamelentyev/usestdlibvars) - A linter that detect the possibility to use variables/constants from the Go standard library. - [vaccum](https://github.com/daveshanley/vacuum) - An ultra-super-fast, lightweight OpenAPI linter and quality checking tool. - [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. @@ -3248,8 +3246,6 @@ _Where to discover new Go libraries._ ## Conferences -- [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA. -- [dotGo](https://www.dotgo.eu) - Paris, France. - [GoCon](https://gocon.connpass.com/) - Tokyo, Japan. - [GoDays](https://www.godays.io/) - Berlin, Germany. - [GoLab](https://golab.io/) - Florence, Italy. @@ -3380,9 +3376,7 @@ _Where to discover new Go libraries._ - [Golang Turkey](https://kommunity.com/goturkiye) - [Golang Vancouver, BC](https://www.meetup.com/golangvan/) - [Golang Vienna, Austria](https://www.meetup.com/viennago/) -- [Golang Казань](https://www.meetup.com/GolangKazan/) - [Golang Москва](https://www.meetup.com/Golang-Moscow/) -- [Golang Питер](https://www.meetup.com/Golang-Peter/) - [GoSF - San Francisco, CA](https://www.meetup.com/golangsf) - [Istanbul Golang](https://www.meetup.com/Istanbul-Golang/) - [Seattle Go Programmers](https://www.meetup.com/golang/) @@ -3402,7 +3396,7 @@ _Add the group of your city/country here (send **PR**)_ - [Google](https://google.github.io/styleguide/go/) - [Hyperledger](https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/style-guides/go-style.rst) - [Magnetico](https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification) -- [Sourcegraph](https://about.sourcegraph.com/handbook/engineering/go_style_guide) +- [Sourcegraph](https://docs.sourcegraph.com/dev/background-information/languages/go) - [Thanos](https://thanos.io/tip/contributing/coding-style-guide.md/) - [Trybe](https://github.com/betrybe/playbook-go/blob/main/README_EN.md) - [Uber](https://github.com/uber-go/guide/blob/master/style.md) From bd63b5d90e71a2a696f51b9907e7ade3cf248ea6 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 19 May 2023 05:07:32 +0530 Subject: [PATCH 3112/3440] Fix-mapquesturl (#4892) * adress: Multiple broken hyperlinks #4888 * update mapquest url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6094ad46672..27d0b864412 100644 --- a/README.md +++ b/README.md @@ -2458,7 +2458,7 @@ _Libraries for accessing third party APIs._ - [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. -- [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](https://open.mapquestapi.com/geocoding/), [Nominatim](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](https://opencagedata.com/api), [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. +- [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](https://developer.mapquest.com/documentation/geocoding-api/), [Nominatim](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](https://opencagedata.com/api), [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. - [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-atlassian](https://github.com/ctreminiom/go-atlassian) - Go library for accessing the [Atlassian Cloud](https://www.atlassian.com/enterprise/cloud) services (Jira, Jira Service Management, Jira Agile, Confluence, Admin Cloud) From ad65506aa4a708be07e7e9b574a789f1e404f935 Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Fri, 19 May 2023 09:00:12 +0200 Subject: [PATCH 3113/3440] feat: adding samber/oops (#4890) --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 27d0b864412..1fe0c377265 100644 --- a/README.md +++ b/README.md @@ -680,7 +680,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [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. -- [libradb](https://github.com/amit-davidson/LibraDB) - LibraDB is a simple database with less then 1000 lines of code for learning. +- [libradb](https://github.com/amit-davidson/LibraDB) - LibraDB is a simple database with less then 1000 lines of code for learning. - [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. - [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. - [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. @@ -1020,6 +1020,7 @@ _Libraries for handling errors._ - [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. - [Fault](https://github.com/Southclaws/fault) - An ergonomic mechanism for wrapping errors in order to facilitate structured metadata and context for error values. - [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. +- [oops](https://github.com/samber/oops) - Error handling with context, stack trace and source fragments. - [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. **[⬆ back to top](#contents)** @@ -3471,7 +3472,7 @@ _Add the group of your city/country here (send **PR**)_ - [A Comprehensive Guide to Structured Logging in Go](https://betterstack.com/community/guides/logging/logging-in-go/) - Delve deep into the world of structured logging in Go with a specific focus on recently accepted slog proposal which aims to bring high performance structured logging with levels to the standard library. - [A Guide to Golang E-Commerce](https://snipcart.com/blog/golang-ecommerce-ponzu-cms-demo?utm_term=golang-ecommerce-ponzu-cms-demo) - Building a Golang site for e-commerce (demo included). - [A Tour of Go](https://tour.golang.org/) - Interactive tour of Go. -- [Build a Database in 1000 lines of code]( https://link.medium.com/O9YQlx89Htb) - Build a NoSQL Database From Zero in 1000 Lines of Code. +- [Build a Database in 1000 lines of code]( https://link.medium.com/O9YQlx89Htb) - Build a NoSQL Database From Zero in 1000 Lines of Code. - [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - Golang ebook intro how to build a web app with golang. - [Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL](https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql) - We’ll write an API with the help of the powerful Gorilla Mux. - [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. @@ -3517,7 +3518,7 @@ _Add the group of your city/country here (send **PR**)_ **[⬆ back to top](#contents)** -### Guided Learning +### Guided Learning - [The Go Developer Roadmap](https://roadmap.sh/golang) - A visual roadmap that new Go developers can follow through to help them learn Go. - [The Go Learning Path](https://tutorialedge.net/paths/golang/) - A guided learning path containing a mix of free and premium resources. From fa371ab9b4d455df393b3bb1e00778b43ffe3a94 Mon Sep 17 00:00:00 2001 From: ElecTwix <51170038+ElecTwix@users.noreply.github.com> Date: Sun, 21 May 2023 00:59:54 +0300 Subject: [PATCH 3114/3440] surrealdb added (#4893) * surrealdb added * move surrealdb to sql section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1fe0c377265..e748254e0a6 100644 --- a/README.md +++ b/README.md @@ -803,6 +803,7 @@ _Libraries for building and using SQL._ - [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. - [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go. - [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver. +- [surrealdb.go](https://github.com/surrealdb/surrealdb.go) - SurrealDB Driver for Go. - [ydb-go-sdk](https://github.com/ydb-platform/ydb-go-sdk) - native and database/sql driver YDB (Yandex Database) ### NoSQL Database Drivers From 1f66a707e5803a89b31498ea57b785329424e4cc Mon Sep 17 00:00:00 2001 From: Paul Burlumi Date: Wed, 17 May 2023 23:20:12 +0100 Subject: [PATCH 3115/3440] build(ci): fix first comment github action This fixes the error seen creating a new pull request. --- .github/workflows/pull-request-first-comment.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pull-request-first-comment.yaml b/.github/workflows/pull-request-first-comment.yaml index 1e264e6a6d4..594fea0f329 100644 --- a/.github/workflows/pull-request-first-comment.yaml +++ b/.github/workflows/pull-request-first-comment.yaml @@ -7,14 +7,16 @@ on: jobs: commentCreated: runs-on: ubuntu-latest + permissions: + pull-requests: write environment: action env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: first comment - uses: peter-evans/create-or-update-comment@v2 + uses: peter-evans/create-or-update-comment@v3 with: - token: ${{ secrets.GH_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.pull_request.number }} body: | Thank you for contributing with [awesome-go](https://awesome-go.com/), we will revise your contribution as soon as possible. From 0d78138042224569b2dc5d9f9c9149011f46bcdf Mon Sep 17 00:00:00 2001 From: Bart Date: Wed, 24 May 2023 12:27:23 +0200 Subject: [PATCH 3116/3440] add tf-profile (#4897) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e748254e0a6..9e5750b0da6 100644 --- a/README.md +++ b/README.md @@ -3137,6 +3137,7 @@ _Software written in Go._ - [skm](https://github.com/TimothyYe/skm) - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! - [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. - [terraform-provider-openapi](https://github.com/dikhan/terraform-provider-openapi) - Terraform provider plugin that dynamically configures itself at runtime based on an OpenAPI document (formerly known as swagger file) containing the definitions of the APIs exposed. +- [tf-profile](https://github.com/datarootsio/tf-profile) - Profiler for Terraform runs. Generate global stats, resource-level stats or visualizations. - [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. - [trubka](https://github.com/xitonix/trubka) - A CLI tool to manage and troubleshoot Apache Kafka clusters with the ability of generically publishing/consuming protocol buffer and plain text events to/from Kafka. - [uTask](https://github.com/ovh/utask) - Automation engine that models and executes business processes declared in yaml. From 93ca6ddd66fad94ec3836198502b2ea862da205e Mon Sep 17 00:00:00 2001 From: Nathan Osman Date: Wed, 24 May 2023 20:23:33 -0700 Subject: [PATCH 3117/3440] Add go-sse to the Networking section (#4895) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9e5750b0da6..62c551fd80c 100644 --- a/README.md +++ b/README.md @@ -1856,6 +1856,7 @@ _Libraries for working with various layers of the network._ - [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. - [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. - [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. +- [go-sse](https://github.com/lampctl/go-sse) - Go client and server implementation of HTML server-sent events. - [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. From 261e5d4d6cb5bb8f5c55e6eff891bbc981d73a69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=87a=C4=9Fatay=20Y=C3=BCcelen?= Date: Fri, 26 May 2023 07:38:13 +0200 Subject: [PATCH 3118/3440] add walker (#4753) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Çağatay Yücelen --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 62c551fd80c..6dfcdf39356 100644 --- a/README.md +++ b/README.md @@ -2417,6 +2417,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) - [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. - [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. +- [walker](https://github.com/cyucelen/walker) - Seamlessly fetch paginated data from any source. Simple and high performance API scraping included. - [xurls](https://github.com/mvdan/xurls) - Extract urls from text. ### RSS From ecb769b765f97cadedea296d83a7a90d94c1fd56 Mon Sep 17 00:00:00 2001 From: Andrew Chang Date: Fri, 26 May 2023 23:22:27 +0800 Subject: [PATCH 3119/3440] Add Andrew-M-C/go.jsonvalue (#4796) * Add Andrew-M-C/go.jsonvalue * alphabetical order --------- Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6dfcdf39356..a5909c9045f 100644 --- a/README.md +++ b/README.md @@ -1428,6 +1428,7 @@ _Libraries for working with JSON._ - [jsonhal](https://github.com/RichardKnop/jsonhal) - Simple Go package to make custom structs marshal into HAL compatible JSON responses. - [jsonhandlers](https://github.com/abusomani/jsonhandlers) - JSON library to expose simple handlers that lets you easily read and write json from various sources. - [jsonic](https://github.com/sinhashubham95/jsonic) - Utilities to handle and query JSON without defining structs in a type safe manner. +- [jsonvalue](https://github.com/Andrew-M-C/go.jsonvalue) - A fast and convinient library for unstructured JSON data, replacing `encoding/json`. - [jzon](https://github.com/zerosnake0/jzon) - JSON library with standard compatible API/behavior. - [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. - [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. From 488428be14b10b214b6dcb165934cff1d238b28a Mon Sep 17 00:00:00 2001 From: maxlandon Date: Sun, 8 Jan 2023 03:55:14 +0100 Subject: [PATCH 3120/3440] Add github.com/reeflective/readline --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a5909c9045f..581136ff714 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,7 @@ _Libraries for building standard or basic Command Line applications._ - [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. - [ops](https://github.com/nanovms/ops) - Unikernel Builder/Orchestrator. - [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. +- [readline](https://github.com/reeflective/readline) Shell library with modern and easy to use UI features. - [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more. - [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries. - [strumt](https://github.com/antham/strumt) - Library to create prompt chain. From 3cb154b6f17f5d541126ff74115c485e3d9dfd2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loren=20=E2=98=BA=EF=B8=8F?= <251288+lorensr@users.noreply.github.com> Date: Sat, 3 Jun 2023 23:55:38 -0400 Subject: [PATCH 3121/3440] Add Temporal (#4726) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 581136ff714..46b5139da95 100644 --- a/README.md +++ b/README.md @@ -932,6 +932,7 @@ _Packages that help with building Distributed Systems._ - [rpcx](https://github.com/smallnest/rpcx) - Distributed pluggable RPC service framework like alibaba Dubbo. - [Semaphore](https://github.com/jexia/semaphore) - A straightforward (micro) service orchestrator. - [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)). +- [Temporal](https://github.com/temporalio/sdk-go) - Durable execution system for making code fault-tolerant and simple. - [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. **[⬆ back to top](#contents)** From 160a8c1c92e1a978c331e6465f71b917bdfedf74 Mon Sep 17 00:00:00 2001 From: agitydev Date: Mon, 29 May 2023 09:08:48 -0400 Subject: [PATCH 3122/3440] Added Pnutmux to README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46b5139da95..670a3b3715f 100644 --- a/README.md +++ b/README.md @@ -2840,6 +2840,7 @@ _Full stack web frameworks._ - [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. - [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. - [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. +- [Pnutmux](https://gitlab.com/fruitygo/pnutmux) - Pnutmux is a powerful Go router that uses regular expressions for matching and handling HTTP requests. It offers features such as CORS handling, structured logging, URL parameters extraction, middlewares, and concurrency limiting. - [Pulse](https://github.com/gopulse/pulse) - Pulse is an HTTP web framework written in Go (Golang) - [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. - [REST Layer](https://github.com/rs/rest-layer) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. From 9eb6947d16323d702f3fbfd9e612adf9d37126e3 Mon Sep 17 00:00:00 2001 From: agitydev Date: Mon, 29 May 2023 09:11:21 -0400 Subject: [PATCH 3123/3440] Revert "Added Pnutmux to README.md" This reverts commit 735ee1608c52d20424e18eba4d5fcbf51924bf20. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 670a3b3715f..46b5139da95 100644 --- a/README.md +++ b/README.md @@ -2840,7 +2840,6 @@ _Full stack web frameworks._ - [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. - [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. - [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. -- [Pnutmux](https://gitlab.com/fruitygo/pnutmux) - Pnutmux is a powerful Go router that uses regular expressions for matching and handling HTTP requests. It offers features such as CORS handling, structured logging, URL parameters extraction, middlewares, and concurrency limiting. - [Pulse](https://github.com/gopulse/pulse) - Pulse is an HTTP web framework written in Go (Golang) - [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. - [REST Layer](https://github.com/rs/rest-layer) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. From b644e7b63642f07c27c0d31d61b9ac532bfb0c56 Mon Sep 17 00:00:00 2001 From: agitydev Date: Mon, 29 May 2023 09:19:03 -0400 Subject: [PATCH 3124/3440] Add Pnutmux to README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46b5139da95..f4126bef41c 100644 --- a/README.md +++ b/README.md @@ -2840,6 +2840,7 @@ _Full stack web frameworks._ - [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. - [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. - [patron](https://github.com/beatlabs/patron) - Patron is a microservice framework following best cloud practices with a focus on productivity. +- [Pnutmux](https://gitlab.com/fruitygo/pnutmux) - Pnutmux is a powerful Go web framework that uses regex for matching and handling HTTP requests. It offers features such as CORS handling, structured logging, URL parameters extraction, middlewares, and concurrency limiting. - [Pulse](https://github.com/gopulse/pulse) - Pulse is an HTTP web framework written in Go (Golang) - [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. - [REST Layer](https://github.com/rs/rest-layer) - Framework to build REST/GraphQL API on top of databases with mostly configuration over code. From 3f280fff42269efc55fb3005c559cc6900fb76de Mon Sep 17 00:00:00 2001 From: Zeke Gabrielse Date: Wed, 7 Jun 2023 12:20:42 -0500 Subject: [PATCH 3125/3440] update keygen sponsor tagline --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f4126bef41c..969e633a571 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ _Special thanks to_

    keygen
    -A dead-simple software licensing and distribution API built for developers
    +An open, source-available software licensing and distribution API.
    Securely license and distribute Go applications with a single API.
    Add auto updates with only a few lines of code.
    From 2b5308892bb547a22ea9175202f8d4791cf0e8f3 Mon Sep 17 00:00:00 2001 From: Adam Bouqdib Date: Wed, 7 Jun 2023 23:02:04 +0100 Subject: [PATCH 3126/3440] Add Don to Web Frameworks (#4905) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 969e633a571..0a84be9a581 100644 --- a/README.md +++ b/README.md @@ -2810,6 +2810,7 @@ _Full stack web frameworks._ - [Beego](https://github.com/beego/beego) - beego is an open-source, high-performance web framework for the Go programming language. - [Buffalo](https://gobuffalo.io) - Bringing the productivity of Rails to Go! - [Confetti Framework](https://confetti-framework.github.io/docs/) - Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go. +- [Don](https://github.com/abemedia/go-don) - A highly performant and simple to use API framework. - [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. - [Fiber](https://github.com/gofiber/fiber) - An Express.js inspired web framework build on Fasthttp. - [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. From fc4c338242d02887c2e677c7d6a4cc24b3bddaac Mon Sep 17 00:00:00 2001 From: Jakub Coufal Date: Sun, 18 Jun 2023 11:39:47 +0200 Subject: [PATCH 3127/3440] Add regatta to DB section (#4876) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0a84be9a581..10fe062bde3 100644 --- a/README.md +++ b/README.md @@ -691,6 +691,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. - [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. - [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. +- [regatta](https://github.com/jamf/regatta) - Fast, simple, geo-distributed KV store built for cloud native era. - [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. - [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. - [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. From 2b2b5a4a2cb6da541a8ada0f12ef8ed295edb7eb Mon Sep 17 00:00:00 2001 From: Dao Cong Tien Date: Sat, 7 Jan 2023 15:08:11 +0700 Subject: [PATCH 3128/3440] Add gofn to #Utilities --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 10fe062bde3..90f39e6f1c6 100644 --- a/README.md +++ b/README.md @@ -2618,6 +2618,7 @@ _General utilities and tools to make your life easier._ - [goctx](https://github.com/zerosnake0/goctx) - Get your context value with high performance. - [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. - [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. +- [gofn](https://github.com/tiendc/gofn) - High performance utitlity functions written using Generics for Go 1.18+. - [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. - [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. - [golog](https://github.com/mlimaloureiro/golog) - Easy and lightweight CLI tool to time track your tasks. From bed9baeb69d4c7f4f12d5692df02e70695a554c9 Mon Sep 17 00:00:00 2001 From: Yusef Mohamadi Date: Sat, 10 Jun 2023 00:32:31 +0200 Subject: [PATCH 3129/3440] adding a high performance race free gocache with auto expring A data race-free Go ache library with high performance and auto purge functionality --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 90f39e6f1c6..65faf289a97 100644 --- a/README.md +++ b/README.md @@ -648,6 +648,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [go-cache](https://github.com/viney-shih/go-cache) - A flexible multi-layer Go caching library to deal with in-memory and shared cache by adopting Cache-Aside pattern. - [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. - [gocache](https://github.com/eko/gocache) - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. +- [gocache](https://github.com/yuseferi/gocache) - A data race free Go ache library with high performance and auto pruge functionality - [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. - [imcache](https://github.com/erni27/imcache) - A generic in-memory cache Go library. It supports expiration, sliding expiration, max entries limit, eviction callbacks and sharding. - [nscache](https://github.com/no-src/nscache) - A Go caching framework that supports multiple data source drivers. From 2a0559278886173dc1aae44ff0d028de8b163a3e Mon Sep 17 00:00:00 2001 From: Yusef Mohamadi Date: Thu, 8 Jun 2023 18:18:39 +0200 Subject: [PATCH 3130/3440] Add Zax logger Zax is a simple wrapper around the Zap which helps zap to work context and you do not need to pass logger to any function, global parameters like `trace_id` etc could be log easier without repeating them in every downstream method. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 65faf289a97..968f07483e0 100644 --- a/README.md +++ b/README.md @@ -1508,6 +1508,7 @@ _Libraries for generating and working with log files._ - [xylog](https://github.com/xybor-x/xylog) - Leveled and structured logging, dynamic fields, high performance, zone management, simple configuration, and readable syntax. - [yell](https://github.com/jfcg/yell) - Yet another minimalistic logging library. - [zap](https://github.com/uber-go/zap) - Fast, structured, leveled logging in Go. +- [zax](https://github.com/yuseferi/zax) - Integrate Context with Zap logger, which leads to more flexibility in Go logging. - [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. - [zkits-logger](https://github.com/edoger/zkits-logger) - A powerful zero-dependency JSON logger. From c324a7631aa6ec56ef928b6802a13cc5dfb2c235 Mon Sep 17 00:00:00 2001 From: mstmdev Date: Tue, 4 Jul 2023 21:28:29 +0800 Subject: [PATCH 3131/3440] Update description of the gofs (#4926) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 968f07483e0..78f4d57836c 100644 --- a/README.md +++ b/README.md @@ -1046,7 +1046,7 @@ _Libraries for handling files and file systems._ - [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. - [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). - [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. -- [gofs](https://github.com/no-src/gofs) - A file synchronization tool out of the box. +- [gofs](https://github.com/no-src/gofs) - A cross-platform real-time file synchronization tool out of the box. - [gut/yos](https://github.com/1set/gut) - Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links. - [higgs](https://github.com/dastoori/higgs) - A tiny cross-platform Go library to hide/unhide files and directories. - [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. From 5ac83cf38f7ce1365e5b6a27d0c244c8c112c991 Mon Sep 17 00:00:00 2001 From: Ryan Field Date: Tue, 11 Jul 2023 19:02:19 +0200 Subject: [PATCH 3132/3440] Update goflow description (#4930) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78f4d57836c..9d6854586a3 100644 --- a/README.md +++ b/README.md @@ -1388,7 +1388,7 @@ _Libraries for scheduling jobs._ - [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-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. - [gocron](https://github.com/go-co-op/gocron) - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). -- [goflow](https://github.com/fieldryand/goflow) - A workflow orchestrator and scheduler for rapid prototyping of ETL/ML/AI pipelines. +- [goflow](https://github.com/fieldryand/goflow) - A simple but powerful DAG scheduler and dashboard. - [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. - [gronx](https://github.com/adhocore/gronx) - Cron expression parser, task runner and daemon consuming crontab like task list. - [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. From fd781758ab9b51af1b50e1e84902d67ef58b218d Mon Sep 17 00:00:00 2001 From: Andy Nogueira Date: Mon, 17 Jul 2023 15:56:43 -0400 Subject: [PATCH 3133/3440] Added CometBFT to Blockchain section (#4934) * Added CometBFT to Blockchain section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9d6854586a3..8898a324b12 100644 --- a/README.md +++ b/README.md @@ -257,6 +257,7 @@ _Libraries for implementing authentication schemes._ _Tools for building blockchains._ +- [cometbft](https://github.com/cometbft/cometbft) - A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. It is a fork of Tendermint Core and implements the Tendermint consensus algorithm. - [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem. - [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol. - [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host. From 98e402fb3e9e7a158e848d3bf1d35297002e8eb4 Mon Sep 17 00:00:00 2001 From: Brandon Fulljames Date: Wed, 19 Jul 2023 23:41:12 +0900 Subject: [PATCH 3134/3440] Add bubble-table --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8898a324b12..f3b86d5c905 100644 --- a/README.md +++ b/README.md @@ -328,6 +328,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. - [bubbles](https://github.com/charmbracelet/bubbles) - TUI components for bubbletea. - [bubbletea](https://github.com/charmbracelet/bubbletea) - Go framework to build terminal apps, based on The Elm Architecture. +- [bubble-table](https://github.com/Everras/bubble-table) - An interactive table component for bubbletea. - [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. - [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. - [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. From 8e1d7bdc2b0c5023992b3859efb4ea900bddbfa5 Mon Sep 17 00:00:00 2001 From: Brandon Fulljames Date: Wed, 19 Jul 2023 23:46:27 +0900 Subject: [PATCH 3135/3440] Fix alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3b86d5c905..690831d4d6b 100644 --- a/README.md +++ b/README.md @@ -326,9 +326,9 @@ _Libraries for building Console Applications and Console User Interfaces._ - [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. - [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that support fmt.Printf/Sprintf. - [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. +- [bubble-table](https://github.com/Everras/bubble-table) - An interactive table component for bubbletea. - [bubbles](https://github.com/charmbracelet/bubbles) - TUI components for bubbletea. - [bubbletea](https://github.com/charmbracelet/bubbletea) - Go framework to build terminal apps, based on The Elm Architecture. -- [bubble-table](https://github.com/Everras/bubble-table) - An interactive table component for bubbletea. - [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. - [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library. - [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. From 2d542a22ba5ab4055079092ef7e3e45f0e15dd15 Mon Sep 17 00:00:00 2001 From: awterman Date: Mon, 17 Jul 2023 21:29:31 +0800 Subject: [PATCH 3136/3440] Add monkey --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 690831d4d6b..b7b62c6294d 100644 --- a/README.md +++ b/README.md @@ -2322,6 +2322,7 @@ _Libraries for testing codebases and generating test data._ - [mockery](https://github.com/vektra/mockery) - Tool to generate Go interfaces. - [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. - [mockit](https://github.com/pasdam/mockit) - Allows functions and method easy mocking, without defining new types; it's similar to Mockito for Java. + - [monkey](https://github.com/awterman/monkey) - One line to mock functions/methods/variables in place without dependency injection or code generation. - [mooncake](https://github.com/GuilhermeCaruso/mooncake) - A simple way to generate mocks for multiple purposes - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. From 52c0b486fd85e25b7d46dbbe9b22c56cb2bd6a81 Mon Sep 17 00:00:00 2001 From: Regan Iwadha <22427233+reaganiwadha@users.noreply.github.com> Date: Fri, 21 Jul 2023 07:05:13 +0700 Subject: [PATCH 3137/3440] Added grapher to the Query Language section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b7b62c6294d..99dc5b2d9c1 100644 --- a/README.md +++ b/README.md @@ -2026,6 +2026,7 @@ _Unofficial libraries for package and dependency management._ - [gojsonq](https://github.com/thedevsaddam/gojsonq) - A simple Go package to Query over JSON Data. - [goven](https://github.com/SeldonIO/goven) - A drop-in query language for any database schema. - [gqlgen](https://github.com/99designs/gqlgen) - go generate based graphql server library. +- [grapher](https://github.com/reaganiwadha/grapher) - A GraphQL field builder utilizing Go generics with extra utilities and features. - [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. - [graphql](https://github.com/neelance/graphql-go) - GraphQL server with a focus on ease of use. - [graphql-go](https://github.com/graphql-go/graphql) - Implementation of GraphQL for Go. From 730aed6f06086316d61d77fd2d85ed48431756c1 Mon Sep 17 00:00:00 2001 From: Carl Johnson Date: Thu, 20 Jul 2023 21:19:33 -0400 Subject: [PATCH 3138/3440] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 99dc5b2d9c1..6cd705da350 100644 --- a/README.md +++ b/README.md @@ -1222,6 +1222,7 @@ _Tools for managing and working with Goroutines._ - [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. - [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. - [execpool](https://github.com/hexdigest/execpool) - A pool built around exec.Cmd that spins up a given number of processes in advance and attaches stdin and stdout to them when needed. Very similar to FastCGI or Apache Prefork MPM but works for any command. +- [flowmatic](https://github.com/carlmjohnson/flowmatic) - Structured concurrency made easy. - [go-actor](https://github.com/vladopajic/go-actor) - A tiny library for writing concurrent programs using actor model. - [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. - [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. From 9cd32a3a3993af82eb9f7d03d958efcc3f934c87 Mon Sep 17 00:00:00 2001 From: Alfat Saputra Harun Date: Tue, 25 Jul 2023 15:15:47 +0800 Subject: [PATCH 3139/3440] Add hex-monscape (#4935) * docs: add hex-monscape into README * fix link * move category --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6cd705da350..f7ca9581af5 100644 --- a/README.md +++ b/README.md @@ -3518,6 +3518,7 @@ _Add the group of your city/country here (send **PR**)_ - [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. - [Gosamples](https://gosamples.dev/) - Collection of code snippets that let you solve everyday code problems. - [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. +- [Hex Monscape](https://github.com/Haraj-backend/hex-monscape) - Getting started guidelines in writing maintainable code using Hexagonal Architecture. - [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM. - [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images. - [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications. From 2ddcb8eedd23754b4bef85fffd44b010b1d5cd21 Mon Sep 17 00:00:00 2001 From: fish-tennis <33828185+fish-tennis@users.noreply.github.com> Date: Tue, 25 Jul 2023 20:33:14 +0800 Subject: [PATCH 3140/3440] add gnet (#4925) * add gnet https://github.com/fish-tennis/gnet a high-performance networking framework,especially for game servers * add snowflake * Revert "add snowflake" This reverts commit 29b6117dba58b9e6b54ef8596e51ea33df073c52. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f7ca9581af5..d94b6d4154f 100644 --- a/README.md +++ b/README.md @@ -1862,6 +1862,7 @@ _Libraries for working with various layers of the network._ - [gldap](https://github.com/jimlambrt/gldap) - gldap provides an ldap server implementation and you provide handlers for its ldap operations. - [gmqtt](https://github.com/DrmagicE/gmqtt) - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. - [gnet](https://github.com/panjf2000/gnet) - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. +- [gnet](https://github.com/fish-tennis/gnet) - `gnet` is a high-performance networking framework,especially for game servers. - [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. - [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. - [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. From 7a1ec473f6be53eb5604d71542e93214c9b2c436 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 1 Aug 2023 07:51:04 +0530 Subject: [PATCH 3141/3440] bubble-table link fix (#4954) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d94b6d4154f..e361a5e479a 100644 --- a/README.md +++ b/README.md @@ -326,7 +326,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. - [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that support fmt.Printf/Sprintf. - [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI. -- [bubble-table](https://github.com/Everras/bubble-table) - An interactive table component for bubbletea. +- [bubble-table](https://github.com/Evertras/bubble-table) - An interactive table component for bubbletea. - [bubbles](https://github.com/charmbracelet/bubbles) - TUI components for bubbletea. - [bubbletea](https://github.com/charmbracelet/bubbletea) - Go framework to build terminal apps, based on The Elm Architecture. - [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes. From bb1dba9071bf70ef928c5c044eb823f7125d3f2f Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 1 Aug 2023 04:44:30 +0200 Subject: [PATCH 3142/3440] Added GoNB to README.md (#4952) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e361a5e479a..d3a03033b7f 100644 --- a/README.md +++ b/README.md @@ -3193,6 +3193,7 @@ _Software written in Go._ - [GoDocTooltip](https://github.com/diankong/GoDocTooltip) - Chrome extension for Go Doc sites, which shows function description as tooltip at function list. - [Gokapi](https://github.com/Forceu/gokapi) - Lightweight server to share files, which expire after a set amount of downloads or days. Similar to Firefox Send, but without public upload. - [GoLand](https://jetbrains.com/go) - Full featured cross-platform Go IDE. +- [GoNB](https://github.com/janpfeifer/gonb) - Interactive Go programming with Jupyter Notebooks (also works in VSCode, Binder and Google's Colab). - [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. - [Guora](https://github.com/meloalright/guora) - A self-hosted Quora like web application written in Go. - [hoofli](https://github.com/dnnrly/hoofli) - Generate PlantUML diagrams from Chrome or Firefox network inspections. From 82719a30794a2c9f9d235b9c259fcacd2ecf1695 Mon Sep 17 00:00:00 2001 From: Gavin Inglis <43075615+ginglis13@users.noreply.github.com> Date: Tue, 1 Aug 2023 11:00:04 -0700 Subject: [PATCH 3143/3440] add wagoodman/dive (#4562) * add wagoodman/dive * dive: alphabetical ordering --------- Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3a03033b7f..31fd4d81161 100644 --- a/README.md +++ b/README.md @@ -2591,6 +2591,7 @@ _General utilities and tools to make your life easier._ - [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. - [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. - [delve](https://github.com/derekparker/delve) - Go debugger. +- [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a Docker image. - [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. - [EaseProbe](https://github.com/megaease/easeprobe) - A simple, standalone, and lightWeight tool that can do health/status checking daemon, support HTTP/TCP/SSH/Shell/Client/... probes, and Slack/Discord/Telegram/SMS... notification. - [equalizer](https://github.com/reugn/equalizer) - Quota manager and rate limiter collection for Go. From 12a82df318f3a711fa3f300afbf5497af032ff86 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Aug 2023 17:05:02 -0300 Subject: [PATCH 3144/3440] pull-request-first-comment: permission issue write --- .github/workflows/pull-request-first-comment.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull-request-first-comment.yaml b/.github/workflows/pull-request-first-comment.yaml index 594fea0f329..ffdd9f3e325 100644 --- a/.github/workflows/pull-request-first-comment.yaml +++ b/.github/workflows/pull-request-first-comment.yaml @@ -9,6 +9,7 @@ jobs: runs-on: ubuntu-latest permissions: pull-requests: write + issues: write environment: action env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From d1b40a1db3dd701ecd1cf253eaadc19ec29faad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E5=A4=A9?= <106012722+cheng-zhongliang@users.noreply.github.com> Date: Sat, 12 Aug 2023 12:59:48 +0800 Subject: [PATCH 3145/3440] Add event to networking (#4968) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 31fd4d81161..d50f91e2fbe 100644 --- a/README.md +++ b/README.md @@ -1852,6 +1852,7 @@ _Libraries for working with various layers of the network._ - [easytcp](https://github.com/DarthPestilane/easytcp) - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. - [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. +- [event](https://github.com/cheng-zhongliang/event) - Simple I/O event notification library wirtten in Golang. - [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http. - [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. - [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959). From 846d90715f9d3181742cbef8d79bf6a02de1c467 Mon Sep 17 00:00:00 2001 From: Tom Godkin Date: Tue, 15 Aug 2023 19:07:23 +0100 Subject: [PATCH 3146/3440] Allow trunk-based workflows for awesome projects (#4976) --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 72e891bfefe..12487a1cd9e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -21,6 +21,6 @@ _Not every repository (project) will require every option, but most projects sho - [ ] The repo has a version-numbered release and a go.mod file. - [ ] I have read the [Contribution Guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#contribution-guidelines), [Maintainers Note](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#maintainers) and [Quality Standards](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards). - [ ] The repo has a continuous integration process that automatically runs tests that must pass before new pull requests are merged. -- [ ] The authors of the project do not commit directly to the repo, but rather use pull requests that run the continuous-integration process. +- [ ] Continuous integration is used to attempt to catch issues prior to releasing this package to end-users. Thanks for your PR, you're awesome! :+1: From d95fde380ef8fd51758ba6153e1caf5ff7252475 Mon Sep 17 00:00:00 2001 From: Tom Godkin Date: Tue, 15 Aug 2023 19:09:38 +0100 Subject: [PATCH 3147/3440] Add go-functional to list (#4974) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d50f91e2fbe..67cee199550 100644 --- a/README.md +++ b/README.md @@ -1117,6 +1117,7 @@ _Packages to support functional programming in Go._ - [fp-go](https://github.com/repeale/fp-go) - Collection of Functional Programming helpers powered by Golang 1.18+ generics. - [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang. - [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go. +- [go-functional](https://github.com/BooleanCat/go-functional) - Functional programming in Go using generics - [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities. - [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang. - [mo](https://github.com/samber/mo) - Monads and popular FP abstractions, based on Go 1.18+ Generics (Option, Result, Either...). From d9943db21584aac54044cb9d931aa356e0923346 Mon Sep 17 00:00:00 2001 From: Anthony HAMON Date: Thu, 17 Aug 2023 20:39:36 +0200 Subject: [PATCH 3148/3440] add antham/yogo (#4978) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 67cee199550..2ff1e43a4a2 100644 --- a/README.md +++ b/README.md @@ -2079,7 +2079,7 @@ _Libraries for scientific computing and data analyzing._ - [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. - [godesim](https://github.com/soypat/godesim) - Extended/multivariable ODE solver framework for event-based simulations with simple API. - [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures. -- [gograph](https://github.com/hmdsefi/gograph) - A golang generic graph library that provides mathematical graph-theory and algorithms. +- [gograph](https://github.com/hmdsefi/gograph) - A golang generic graph library that provides mathematical graph-theory and algorithms. - [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. - [gonum](https://github.com/gonum/gonum) - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. - [gonum/plot](https://github.com/gonum/plot) - gonum/plot provides an API for building and drawing plots in Go. @@ -2734,6 +2734,7 @@ _General utilities and tools to make your life easier._ - [wifiqr](https://github.com/reugn/wifiqr) - Wi-Fi QR Code Generator. - [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. +- [yogo](https://github.com/antham/yogo) - Check yopmail mails from command line. **[⬆ back to top](#contents)** From 89e458c5050207f0164082f477510c4d145e2a74 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 18 Aug 2023 12:50:58 +0530 Subject: [PATCH 3149/3440] mizu: renamed to kubeshark (#4980) https://github.com/kubeshark/kubeshark --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ff1e43a4a2..29b4e4713bd 100644 --- a/README.md +++ b/README.md @@ -3135,13 +3135,13 @@ _Software written in Go._ - [ko](https://github.com/google/ko) - Command line tool for building and deploying Go applications on Kubernetes - [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way. - [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. +- [kubeshark](https://github.com/kubeshark/kubeshark) - API traffic analyzer for Kubernetes, inspired by Wireshark, purposely built for Kubernetes. - [KubeVela](https://github.com/kubevela/kubevela) - Cloud native application delivery. - [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly. - [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. - [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. - [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. - [Mantil](https://github.com/mantil-io/mantil) - Go specific framework for building serverless applications on AWS that enables you to focus on pure Go code while Mantil takes care of the infrastructure. -- [Mizu](https://github.com/up9inc/mizu) - API traffic viewer for Kubernetes enabling you to view all API communication between microservices, multiprotocol support: HTTP1.1, HTTP/2, AMQP, Kafka, Redis. - [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. From be01eb815ca16c94135555ca0545d7551caf3bee Mon Sep 17 00:00:00 2001 From: piglig Date: Fri, 18 Aug 2023 15:32:20 +0800 Subject: [PATCH 3150/3440] add go-qr to README.md (#4960) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 朱振武 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 29b4e4713bd..2e03f475982 100644 --- a/README.md +++ b/README.md @@ -2621,6 +2621,7 @@ _General utilities and tools to make your life easier._ - [go-lock](https://github.com/viney-shih/go-lock) - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation. - [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. - [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. +- [go-qr](https://github.com/piglig/go-qr) - A native, high-quality and minimalistic QR code generator. - [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. - [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. - [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. From dd63cdb180927038f145318d34e9d1e3d4fe1710 Mon Sep 17 00:00:00 2001 From: Jacky Date: Wed, 23 Aug 2023 09:56:47 +0800 Subject: [PATCH 3151/3440] add air (#4984) * add Air * change category --------- Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e03f475982..b5d999e54fe 100644 --- a/README.md +++ b/README.md @@ -2565,6 +2565,7 @@ _Libraries for accessing third party APIs._ _General utilities and tools to make your life easier._ +- [air](https://github.com/cosmtrek/air) - Air - Live reload for Go apps. - [apm](https://github.com/topfreegames/apm) - Process manager for Golang applications with an HTTP API. - [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. - [beyond](https://github.com/wesovilabs/beyond) - The Go tool that will drive you to the AOP world! From 8e06acda23b8bbddcb915bd0d15d7d88e02b8d32 Mon Sep 17 00:00:00 2001 From: eapenkin Date: Thu, 24 Aug 2023 05:53:32 +0400 Subject: [PATCH 3152/3440] Add decimal to Financial (#4963) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b5d999e54fe..ddc7478872e 100644 --- a/README.md +++ b/README.md @@ -1074,6 +1074,7 @@ _Packages for accounting and finance._ - [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. - [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. - [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. +- [decimal](https://github.com/govalues/decimal) - Immutable decimal numbers with panic-free arithmetic. - [fpdecimal](https://github.com/nikolaydubina/fpdecimal) - Fast and precise serialization and arithmetic for small fixed-point decimals - [fpmoney](https://github.com/nikolaydubina/fpmoney) - Fast and simple ISO4217 fixed-point decimal money. - [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. From 731b3ee271b71d5fa1f5d1e1be51008dc111ddeb Mon Sep 17 00:00:00 2001 From: eapenkin Date: Thu, 24 Aug 2023 05:54:09 +0400 Subject: [PATCH 3153/3440] Add money to Financial (#4964) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddc7478872e..bb5a332d25b 100644 --- a/README.md +++ b/README.md @@ -1081,6 +1081,7 @@ _Packages for accounting and finance._ - [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. - [go-finnhub](https://github.com/m1/go-finnhub) - Client for stock market, forex and crypto data from finnhub.io. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges. - [go-money](https://github.com/rhymond/go-money) - Implementation of Fowler's Money pattern. +- [money](https://github.com/govalues/money) - Immutable monetary amounts and exchange rates with panic-free arithmetic. - [ofxgo](https://github.com/aclindsa/ofxgo) - Query OFX servers and/or parse the responses (with example command-line client). - [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. - [payme](https://github.com/jovandeginste/payme) - QR code generator (ASCII & PNG) for SEPA payments. From afe420ec35a79aeb48bd5dacb0d562c21e8b4c25 Mon Sep 17 00:00:00 2001 From: Jim Date: Thu, 24 Aug 2023 04:01:42 -0400 Subject: [PATCH 3154/3440] add mql (#4985) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bb5a332d25b..e1a54ac6a28 100644 --- a/README.md +++ b/README.md @@ -2040,6 +2040,7 @@ _Unofficial libraries for package and dependency management._ - [jsonpath](https://github.com/AsaiYusuke/jsonpath) - A query library for retrieving part of JSON based on JSONPath syntax. - [jsonql](https://github.com/elgs/jsonql) - JSON query expression library in Golang. - [jsonslice](https://github.com/bhmj/jsonslice) - Jsonpath queries with advanced filters. +- [mql](https://github.com/hashicorp/mql) - Model Query Language (mql) is a query language for your database models. - [rql](https://github.com/a8m/rql) - Resource Query Language for REST API. - [rqp](https://github.com/timsolov/rest-query-parser) - Query Parser for REST API. Filtering, validations, both `AND`, `OR` operations are supported directly in the query. - [straf](https://github.com/SonicRoshan/straf) - Easily Convert Golang structs to GraphQL objects. From 9110a62bed372a9469292aa615177327a0f8671c Mon Sep 17 00:00:00 2001 From: Phakorn Kiong Date: Sat, 26 Aug 2023 17:35:36 +0800 Subject: [PATCH 3155/3440] Add go-pattern-match (#4983) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1a54ac6a28..27a13b1a298 100644 --- a/README.md +++ b/README.md @@ -2623,6 +2623,7 @@ _General utilities and tools to make your life easier._ - [go-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. - [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. - [go-lock](https://github.com/viney-shih/go-lock) - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation. +- [go-pattern-match](https://github.com/PhakornKiong/go-pattern-match) - A Pattern matching library inspired by ts-pattern. - [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. - [go-problemdetails](https://github.com/mvmaasakkers/go-problemdetails) - Go package for working with Problem Details. - [go-qr](https://github.com/piglig/go-qr) - A native, high-quality and minimalistic QR code generator. From 0a46f173ad9b5b81724dee32cee3dd0691d1c0f1 Mon Sep 17 00:00:00 2001 From: Weston Schmidt Date: Mon, 28 Aug 2023 00:33:04 -0700 Subject: [PATCH 3156/3440] Add approx to Date and Time libraries. (#4911) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 27a13b1a298..468bc2ed251 100644 --- a/README.md +++ b/README.md @@ -857,6 +857,7 @@ _Libraries for building and using SQL._ _Libraries for working with dates and times._ +- [approx](https://github.com/goschtalt/approx) - A Duration extension supporting parsing/printing durations in days, weeks and years. - [carbon](https://github.com/golang-module/carbon) - A simple, semantic and developer-friendly golang package for datetime. - [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library. - [cronrange](https://github.com/1set/cronrange) - Parses Cron-style time range expressions, checks if the given time is within any ranges. From 52bce3cf1921940a0c0f96f6f6fe8775a4fa5ff5 Mon Sep 17 00:00:00 2001 From: Rob Reid Date: Mon, 28 Aug 2023 08:41:39 +0100 Subject: [PATCH 3157/3440] add dg (#4910) * Add dg to README * Removed datagen from the list of Database Tools I'm the maintainer of datagen and have archived it, in favour of dg. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 468bc2ed251..7fbcb60af88 100644 --- a/README.md +++ b/README.md @@ -733,8 +733,8 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database. - [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small inserts and sends big requests to ClickHouse servers. -- [datagen](https://github.com/codingconcepts/datagen) - A fast data generator that's multi-table aware and supports multi-row DML. - [dbbench](https://github.com/sj14/dbbench) - Database benchmarking tool with support for several databases and scripts. +- [dg](https://github.com/codingconcepts/dg) - A fast data generator that produces CSV files from generated relational data. - [dynago](https://github.com/twharmon/dynago) - Simplify working with AWS DynamoDB. - [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. - [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. From b008710e9ebbbf19b52f57627e5ce9921b54cb39 Mon Sep 17 00:00:00 2001 From: Jim Date: Sun, 3 Sep 2023 03:29:14 -0400 Subject: [PATCH 3158/3440] add go-dbw (#4987) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7fbcb60af88..6dada2180a4 100644 --- a/README.md +++ b/README.md @@ -1963,6 +1963,7 @@ _Libraries that implement Object-Relational Mapping or datamapping techniques._ - [bun](https://github.com/uptrace/bun) - SQL-first Golang ORM. Successor of go-pg. - [cacheme](https://github.com/Yiling-J/cacheme-go) - Schema based, typed Redis caching/memoize framework for Go. - [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. +- [go-dbw](https://github.com/hashicorp/go-dbw) - A simple package that encapsulates database operations. - [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. - [go-sql](https://github.com/rushteam/gosql) - A easy ORM for mysql. - [go-sqlbuilder](https://github.com/huandu/go-sqlbuilder) - A flexible and powerful SQL string builder library plus a zero-config ORM. From 803d15576c26f55b306094c273a98686dafe9991 Mon Sep 17 00:00:00 2001 From: motrboat <141705161+motrboat@users.noreply.github.com> Date: Thu, 7 Sep 2023 11:57:25 +0300 Subject: [PATCH 3159/3440] add hotcoal (#4979) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6dada2180a4..80d7492ed8a 100644 --- a/README.md +++ b/README.md @@ -764,6 +764,7 @@ _Libraries for building and using SQL._ - [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. - [goqu](https://github.com/doug-martin/goqu) - Idiomatic SQL builder and query library. - [gosql](https://github.com/twharmon/gosql) - SQL Query builder with better null values support. +- [Hotcoal](https://github.com/motrboat/hotcoal) - Secure your handcrafted SQL against injection. - [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. - [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. - [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases. From 647448f4eee8c3f88f296141b1559feae92b9ca7 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 12 Sep 2023 16:13:04 +0530 Subject: [PATCH 3160/3440] add nunu (#5004) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 80d7492ed8a..9bbc0fa159d 100644 --- a/README.md +++ b/README.md @@ -1684,6 +1684,7 @@ _**Unofficial** set of patterns for structuring projects._ - [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. - [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. - [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. +- [nunu](https://github.com/go-nunu/nunu) - Nunu is a scaffolding tool for building Go applications. - [pagoda](https://github.com/mikestefanello/pagoda) - Rapid, easy full-stack web development starter kit built in Go. - [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. - [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout. From 8f9857b248d919c0ceb6185afb05070ec72cb600 Mon Sep 17 00:00:00 2001 From: stone1100 Date: Fri, 15 Sep 2023 12:27:31 +0800 Subject: [PATCH 3161/3440] add LinDB to database (#5008) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9bbc0fa159d..8a5d831c562 100644 --- a/README.md +++ b/README.md @@ -685,6 +685,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [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. - [libradb](https://github.com/amit-davidson/LibraDB) - LibraDB is a simple database with less then 1000 lines of code for learning. +- [LinDB](https://github.com/lindb/lindb) - LinDB is a scalable, high performance, high availability distributed time series database. - [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. - [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. - [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. From c8e5e4a83d917c10d9ebdd8c2f865d04b7a5c9a3 Mon Sep 17 00:00:00 2001 From: Pavel Patrin Date: Wed, 20 Sep 2023 12:50:09 +0400 Subject: [PATCH 3162/3440] Add gontainer (#5010) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a5d831c562..45d3e83adca 100644 --- a/README.md +++ b/README.md @@ -1661,6 +1661,7 @@ _Libraries for working with dependency injection._ - [gocontainer](https://github.com/vardius/gocontainer) - Simple Dependency Injection Container. - [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. - [GoLobby/Container](https://github.com/golobby/container) - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language. +- [gontainer](https://github.com/NVIDIA/gontainer) - A dependency injection service container for Go projects. - [google/wire](https://github.com/google/wire) - Automated Initialization in Go. - [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. - [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. From 9bf0994ba7b06b3b9deadff3221ddf7fd89ee343 Mon Sep 17 00:00:00 2001 From: Khanh Tran <32532742+khanhtc1202@users.noreply.github.com> Date: Fri, 22 Sep 2023 04:13:32 +0700 Subject: [PATCH 3163/3440] Add PipeCD (#4943) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 45d3e83adca..d036613867c 100644 --- a/README.md +++ b/README.md @@ -3159,6 +3159,7 @@ _Software written in Go._ - [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. - [Pewpew](https://github.com/bengadbois/pewpew) - Flexible HTTP command line stress tester. +- [PipeCD](https://github.com/pipe-cd/pipecd) - A GitOps-style continuous delivery platform that provides consistent deployment and operations experience for any applications. - [Pomerium](https://github.com/pomerium/pomerium) - Pomerium is an identity-aware access proxy. - [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. - [s3-proxy](https://github.com/oxyno-zeta/s3-proxy) - S3 Proxy with GET, PUT and DELETE methods and authentication (OpenID Connect and Basic Auth). From b6e1c091157cc4b271439112abd4009dd195d0ca Mon Sep 17 00:00:00 2001 From: septs Date: Sat, 23 Sep 2023 19:55:00 +0800 Subject: [PATCH 3164/3440] fix broken link (re2dfa) (#5015) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d036613867c..7b63a1fe626 100644 --- a/README.md +++ b/README.md @@ -3062,7 +3062,7 @@ _Plugin for text editors and IDEs._ - [gounit](https://github.com/hexdigest/gounit) - Generate Go tests using your own templates. - [hasgo](https://github.com/DylanMeeus/hasgo) - Generate Haskell inspired functions for your slices. - [options-gen](https://github.com/kazhuravlev/options-gen) - Functional options described by Dave Cheney's post "Functional options for friendly APIs". -- [re2dfa](https://github.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. +- [re2dfa](https://gitlab.com/opennota/re2dfa) - Transform regular expressions into finite state machines and output Go source code. - [sqlgen](https://github.com/anqiansong/sqlgen) - Generate gorm, xorm, sqlx, bun, sql code from SQL file or DSN. - [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly. - [xgen](https://github.com/xuri/xgen) - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator. From f854af64350baec9924e59e8d05154d6f2b94d2c Mon Sep 17 00:00:00 2001 From: jurjevic Date: Thu, 28 Sep 2023 17:26:45 +0200 Subject: [PATCH 3165/3440] Added boot-go to dependency injection (#4992) Co-authored-by: Jurica Jurjevic --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7b63a1fe626..c8bf35bfc78 100644 --- a/README.md +++ b/README.md @@ -1653,6 +1653,7 @@ _Libraries for working with Microsoft Excel._ _Libraries for working with dependency injection._ - [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. +- [boot-go](http://github.com/boot-go/boot) - Component-based development with dependency injection using reflections for Go developers. - [di](https://github.com/goava/di) - A dependency injection container for go programming language. - [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. - [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. From a6b9c58842d6fc79f9d93c937a5f4b8f1f6b7f64 Mon Sep 17 00:00:00 2001 From: Jacob Marthaller Date: Sun, 1 Oct 2023 10:21:19 -0700 Subject: [PATCH 3166/3440] remove mob --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c8bf35bfc78..0c0a2bb01ae 100644 --- a/README.md +++ b/README.md @@ -1610,7 +1610,6 @@ _Libraries that implement messaging systems._ - [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. - [Mercure](https://github.com/dunglas/mercure) - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events). - [messagebus](https://github.com/vardius/message-bus) - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. -- [mob](https://github.com/erni27/mob) - mob is a generic-based, simple mediator / event aggregator library. It supports in-process requests / events processing. - [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. From d310910e22077d115f7a6a3a3affdd3d13815618 Mon Sep 17 00:00:00 2001 From: Firmino Changani Date: Sat, 26 Nov 2022 13:57:18 +0000 Subject: [PATCH 3167/3440] remove the package resize under images --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0c0a2bb01ae..e8c4a2bf183 100644 --- a/README.md +++ b/README.md @@ -1354,7 +1354,6 @@ _Libraries for manipulating images._ - [mpo](https://github.com/donatj/mpo) - Decoder and conversion tool for MPO 3D Photos. - [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go. - [pt](https://github.com/fogleman/pt) - Path tracing engine written in Go. -- [resize](https://github.com/nfnt/resize) - Image resizing for Go with common interpolation methods. - [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. - [scout](https://github.com/jonoton/scout) - Scout is a standalone open source software solution for DIY video security. - [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes. From c9f1f2352a71f2aa57b485856ad4eb8aa3f60fec Mon Sep 17 00:00:00 2001 From: Stanislav Petrosyan <40838627+stanipetrosyan@users.noreply.github.com> Date: Mon, 2 Oct 2023 22:59:21 +0200 Subject: [PATCH 3168/3440] Add go-eventbus (#5007) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e8c4a2bf183..166c7aaf320 100644 --- a/README.md +++ b/README.md @@ -1589,6 +1589,7 @@ _Libraries that implement messaging systems._ - [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-eventbus](https://github.com/stanipetrosyan/go-eventbus) - Simple Event Bus package for Go. - [go-mq](https://github.com/cheshir/go-mq) - RabbitMQ client with declarative configuration. - [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. From f8f9c5cb38ee387bbbc2b3733012767fb6db4b30 Mon Sep 17 00:00:00 2001 From: raishey <130793401+raishey@users.noreply.github.com> Date: Mon, 2 Oct 2023 16:01:00 -0500 Subject: [PATCH 3169/3440] added plinko finite state machine and workflow orchestrator (#4922) Co-authored-by: Steve Hebert --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 166c7aaf320..2c4a9e0a28c 100644 --- a/README.md +++ b/README.md @@ -576,6 +576,7 @@ additional ordered map implementations. - [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. - [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. - [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. +- [plinko](https://github.com/shipt/plinko) - A finite state machine and workflow orchestrator that compiles for fast execution, easy debugging, auto-generated documentation. Includes advanced features such as side-effect hooks. - [quadtree](https://github.com/s0rg/quadtree) - Generic, zero-alloc, 100%-test covered quadtree. - [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. - [slices](https://github.com/twharmon/slices) - Pure, generic functions for slices. From 69e72ba7929305467efa701695409b5a70a49984 Mon Sep 17 00:00:00 2001 From: duncan-hub <120040025+duncan-hub@users.noreply.github.com> Date: Mon, 2 Oct 2023 22:04:38 +0100 Subject: [PATCH 3170/3440] Add Flannel (#5028) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c4a9e0a28c..d280f821ee4 100644 --- a/README.md +++ b/README.md @@ -3122,6 +3122,7 @@ _Software written in Go._ - [Dropship](https://github.com/chrismckenzie/dropship) - Tool for deploying code via cdn. - [easyssh-proxy](https://github.com/appleboy/easyssh-proxy) - Golang package for easy remote execution through SSH and SCP downloading via `ProxyCommand`. - [fac](https://github.com/mkchoi212/fac) - Command-line user interface to fix git merge conflicts. +- [Flannel](https://github.com/flannel-io/flannel) - Flannel is a network fabric for containers, designed for Kubernetes. - [Fleet device management](https://github.com/fleetdm/fleet) - Lightweight, programmable telemetry for servers and workstations. - [gaia](https://github.com/gaia-pipeline/gaia) - Build powerful pipelines in any programming language. - [ghorg](https://github.com/gabrie30/ghorg) - Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Gitea, and Bitbucket. From 5bbdd18d4a5ecb911167d76f693e15a8aaed0369 Mon Sep 17 00:00:00 2001 From: Kuba Kaflik Date: Mon, 2 Oct 2023 23:16:04 +0200 Subject: [PATCH 3171/3440] clickhouse-go client (#4630) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d280f821ee4..3ee85a9265d 100644 --- a/README.md +++ b/README.md @@ -847,6 +847,7 @@ _Libraries for building and using SQL._ ### Search and Analytic Databases +- [clickhouse-go](https://github.com/ClickHouse/clickhouse-go/) - ClickHouse SQL client for Go with a `database/sql` compability. - [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go. - [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go. - [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. From eed5893940e3b64522349b66404b9d531663fd4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Doma=C5=84ski?= Date: Mon, 2 Oct 2023 23:27:31 +0200 Subject: [PATCH 3172/3440] add iso9660 (#4400) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3ee85a9265d..9dcf4785ba6 100644 --- a/README.md +++ b/README.md @@ -1056,6 +1056,7 @@ _Libraries for handling files and file systems._ - [gofs](https://github.com/no-src/gofs) - A cross-platform real-time file synchronization tool out of the box. - [gut/yos](https://github.com/1set/gut) - Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links. - [higgs](https://github.com/dastoori/higgs) - A tiny cross-platform Go library to hide/unhide files and directories. +- [iso9660](https://github.com/kdomanski/iso9660) - A package for reading and creating ISO9660 disk images - [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. - [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go. - [parquet](https://github.com/parsyl/parquet) - Read and write [parquet](https://parquet.apache.org) files. From b4e376578d8136037f2a1ad0d34af02340a2e936 Mon Sep 17 00:00:00 2001 From: Mathias M Date: Mon, 2 Oct 2023 23:37:21 +0200 Subject: [PATCH 3173/3440] Add library for the crypto NOWPayments API (#4658) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9dcf4785ba6..c1245b3769d 100644 --- a/README.md +++ b/README.md @@ -1087,6 +1087,7 @@ _Packages for accounting and finance._ - [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers. - [go-finnhub](https://github.com/m1/go-finnhub) - Client for stock market, forex and crypto data from finnhub.io. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges. - [go-money](https://github.com/rhymond/go-money) - Implementation of Fowler's Money pattern. +- [go-nowpayments](https://github.com/matm/go-nowpayments) - Library for the crypto NOWPayments API. - [money](https://github.com/govalues/money) - Immutable monetary amounts and exchange rates with panic-free arithmetic. - [ofxgo](https://github.com/aclindsa/ofxgo) - Query OFX servers and/or parse the responses (with example command-line client). - [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. From 8ffe1f1d891cb30468d2f06327f802d5a00c1e63 Mon Sep 17 00:00:00 2001 From: Julian Minde Date: Tue, 3 Oct 2023 12:31:31 +0200 Subject: [PATCH 3174/3440] Updated aws-sdk-go to version 2 (#5029) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c1245b3769d..c738b61ffb5 100644 --- a/README.md +++ b/README.md @@ -2471,7 +2471,7 @@ _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. - [appstore-sdk-go](https://github.com/Kachit/appstore-sdk-go) - Unofficial Golang SDK for AppStore Connect API. -- [aws-sdk-go](https://github.com/aws/aws-sdk-go) - The official AWS SDK for the Go programming language. +- [aws-sdk-go](https://github.com/aws/aws-sdk-go-v2) - The official AWS SDK for the Go programming language. - [bqwriter](https://github.com/OTA-Insight/bqwriter) - High Level Go Library to write data into [Google BigQuery](https://cloud.google.com/bigquery) at a high throughout. - [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/). From 797813b1e8a5bccccc33f2cce163a508af59894d Mon Sep 17 00:00:00 2001 From: James <125431058+Jamesllllllllll@users.noreply.github.com> Date: Tue, 3 Oct 2023 23:00:38 -0400 Subject: [PATCH 3175/3440] Fix Oversight and GopherCon India links (#5031) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c738b61ffb5..ca45be52a72 100644 --- a/README.md +++ b/README.md @@ -1254,7 +1254,7 @@ _Tools for managing and working with Goroutines._ - [kyoo](https://github.com/dirkaholic/kyoo) - Provides an unlimited job queue and concurrent worker pools. - [neilotoole/errgroup](https://github.com/neilotoole/errgroup) - Drop-in alternative to `sync/errgroup`, limited to a pool of N worker goroutines. - [nursery](https://github.com/arunsworld/nursery) - Structured concurrency in Go. -- [oversight](https://cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. +- [oversight](https://pkg.go.dev/cirello.io/oversight) - Oversight is a complete implementation of the Erlang supervision trees. - [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. - [pond](https://github.com/alitto/pond) - Minimalistic and High-performance goroutine worker pool written in Go. - [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. @@ -3297,7 +3297,7 @@ _Where to discover new Go libraries._ - [GopherCon Australia](https://gophercon.com.au/) - Sydney, Australia. - [GopherCon Brazil](https://gopherconbr.org) - Florianópolis, Brazil. - [GopherCon Europe](https://gophercon.eu/) - Berlin, Germany. -- [GopherCon India](https://www.gophercon.in/) - Pune, India. +- [GopherCon India](https://gopherconindia.org/) - Pune, India. - [GopherCon Israel](https://www.gophercon.org.il/) - Tel Aviv, Israel. - [GopherCon Russia](https://www.gophercon-russia.ru) - Moscow, Russia. - [GopherCon Singapore](https://gophercon.sg) - Mapletree Business City, Singapore. From b9948e7c386716820a37ad0f70da3610381f2d11 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Wed, 4 Oct 2023 12:43:06 +0530 Subject: [PATCH 3176/3440] add upterm (#5030) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ca45be52a72..dc13d426a1d 100644 --- a/README.md +++ b/README.md @@ -2744,6 +2744,7 @@ _General utilities and tools to make your life easier._ - [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. +- [upterm](https://github.com/owenthereal/upterm) - A tool for developers to share terminal/tmux sessions securely over the web. It’s perfect for remote pair programming, accessing computers behind NATs/firewalls, remote debugging, and more. - [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, ...). - [watchhttp](https://github.com/nikolaydubina/watchhttp) - Run command periodically and expose latest STDOUT or its rich delta as HTTP endpoint. From c9185dad1b54cb335650a95668e70db8b03f44e8 Mon Sep 17 00:00:00 2001 From: Tomasz Piowczyk Date: Wed, 4 Oct 2023 16:38:44 +0200 Subject: [PATCH 3177/3440] Fix event trigger type --- .github/workflows/pull-request-first-comment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull-request-first-comment.yaml b/.github/workflows/pull-request-first-comment.yaml index ffdd9f3e325..ca216b706ad 100644 --- a/.github/workflows/pull-request-first-comment.yaml +++ b/.github/workflows/pull-request-first-comment.yaml @@ -1,7 +1,7 @@ name: First comment in new pull request on: - pull_request: + pull_request_target: types: [opened] jobs: From a0cbe1fd22be54d3c44025294801bad224245a09 Mon Sep 17 00:00:00 2001 From: yanghy <13374948+sxmxta@users.noreply.github.com> Date: Sat, 7 Oct 2023 16:26:35 +0800 Subject: [PATCH 3178/3440] Add energy (#5035) Add energy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dc13d426a1d..78f0412d15b 100644 --- a/README.md +++ b/README.md @@ -1278,6 +1278,7 @@ _Libraries for building GUI Applications._ _Toolkits_ - [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. +- [energy](https://github.com/energye/energy) - Cross-platform based on LCL(Native System UI Control Library) and CEF(Chromium Embedded Framework) (Windows/ macOS / Linux) - [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. - [gio](https://gioui.org) - Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly. - [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron). From aaa9d162b6219b1903218b20414c453a1f296c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Krukowski?= Date: Sun, 8 Oct 2023 06:28:04 +0400 Subject: [PATCH 3179/3440] Add gontainer/gontainer (#5021) * Add gontainer/gontainer * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 78f0412d15b..f340ca1d970 100644 --- a/README.md +++ b/README.md @@ -1667,6 +1667,7 @@ _Libraries for working with dependency injection._ - [goioc/di](https://github.com/goioc/di) - Spring-inspired Dependency Injection Container. - [GoLobby/Container](https://github.com/golobby/container) - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language. - [gontainer](https://github.com/NVIDIA/gontainer) - A dependency injection service container for Go projects. +- [gontainer/gontainer](https://github.com/gontainer/gontainer) - A YAML-based Dependency Injection container for GO. It supports dependencies' scopes, and auto-detection of circular dependencies. Gontainer is concurrent-safe. - [google/wire](https://github.com/google/wire) - Automated Initialization in Go. - [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. - [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. From 56d198e4612a9e20f8d40e1c9e0f92c0c71ecef4 Mon Sep 17 00:00:00 2001 From: Richard Wilkes Date: Sat, 7 Oct 2023 19:35:51 -0700 Subject: [PATCH 3180/3440] Unison (#5034) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f340ca1d970..1ed6f3e6cba 100644 --- a/README.md +++ b/README.md @@ -1289,6 +1289,7 @@ _Toolkits_ - [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). - [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. Cross platform. +- [unison](https://github.com/richardwilkes/unison) - A unified graphical user experience toolkit for Go desktop applications. macOS, Windows, and Linux are supported. - [Wails](https://wails.io) - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer. - [walk](https://github.com/lxn/walk) - Windows application library kit for Go. - [webview](https://github.com/zserge/webview) - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux). From d2f23e1ef0a8499bc82648753902a0d09086c1a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lincoln=20J=C3=BAnior?= <99145408+lincolnjpg@users.noreply.github.com> Date: Sat, 7 Oct 2023 23:37:58 -0300 Subject: [PATCH 3181/3440] add grafana's k6 load testing tool (#5041) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1ed6f3e6cba..e4123d0f368 100644 --- a/README.md +++ b/README.md @@ -3151,6 +3151,7 @@ _Software written in Go._ - [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application. - [httpref](https://github.com/dnnrly/httpref) - httpref is a handy CLI reference for HTTP methods, status codes, headers, and TCP and UDP ports. - [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. +- [k6](https://github.com/grafana/k6) - A modern load testing tool, using Go and JavaScript. - [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. - [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. - [ko](https://github.com/google/ko) - Command line tool for building and deploying Go applications on Kubernetes From 5ff922b351538d107e77c7d74ff7b97b7521d059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lincoln=20J=C3=BAnior?= <99145408+lincolnjpg@users.noreply.github.com> Date: Sat, 7 Oct 2023 23:38:27 -0300 Subject: [PATCH 3182/3440] add kind (#5043) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4123d0f368..5fb5b3f9b7b 100644 --- a/README.md +++ b/README.md @@ -3154,6 +3154,7 @@ _Software written in Go._ - [k6](https://github.com/grafana/k6) - A modern load testing tool, using Go and JavaScript. - [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. - [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. +- [kind](https://github.com/kubernetes-sigs/kind) - Kubernetes IN Docker - local clusters for testing Kubernetes. - [ko](https://github.com/google/ko) - Command line tool for building and deploying Go applications on Kubernetes - [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way. - [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. From 5f1a98c5825e57c1f4e06bdd3b82b15d27eeb728 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lincoln=20J=C3=BAnior?= <99145408+lincolnjpg@users.noreply.github.com> Date: Sat, 7 Oct 2023 23:39:01 -0300 Subject: [PATCH 3183/3440] Add minikube (#5042) * add minikube * remove unnecessary white space --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5fb5b3f9b7b..8bc0064618f 100644 --- a/README.md +++ b/README.md @@ -3165,6 +3165,7 @@ _Software written in Go._ - [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. - [manssh](https://github.com/xwjdsh/manssh) - manssh is a command line tool for managing your ssh alias config easily. - [Mantil](https://github.com/mantil-io/mantil) - Go specific framework for building serverless applications on AWS that enables you to focus on pure Go code while Mantil takes care of the infrastructure. +- [minikube](https://github.com/kubernetes/minikube) - Run Kubernetes locally. - [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. From 2fee93e460d22c68db3ef30b3be57033d77d27fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lincoln=20J=C3=BAnior?= <99145408+lincolnjpg@users.noreply.github.com> Date: Tue, 10 Oct 2023 23:35:47 -0300 Subject: [PATCH 3184/3440] add k3s (#5045) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8bc0064618f..396263102d5 100644 --- a/README.md +++ b/README.md @@ -3151,6 +3151,7 @@ _Software written in Go._ - [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application. - [httpref](https://github.com/dnnrly/httpref) - httpref is a handy CLI reference for HTTP methods, status codes, headers, and TCP and UDP ports. - [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. +- [k3s](https://github.com/k3s-io/k3s) - Lightweight Kubernetes. - [k6](https://github.com/grafana/k6) - A modern load testing tool, using Go and JavaScript. - [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. - [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages. From 549e4d7f16bd6f9b560a30e0e847fe2ac04782cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lincoln=20J=C3=BAnior?= <99145408+lincolnjpg@users.noreply.github.com> Date: Tue, 10 Oct 2023 23:38:55 -0300 Subject: [PATCH 3185/3440] add k3d (#5046) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 396263102d5..a8d77072dc6 100644 --- a/README.md +++ b/README.md @@ -3151,6 +3151,7 @@ _Software written in Go._ - [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application. - [httpref](https://github.com/dnnrly/httpref) - httpref is a handy CLI reference for HTTP methods, status codes, headers, and TCP and UDP ports. - [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. +- [k3d](https://github.com/k3d-io/k3d) - Little helper to run CNCF's k3s in Docker. - [k3s](https://github.com/k3s-io/k3s) - Lightweight Kubernetes. - [k6](https://github.com/grafana/k6) - A modern load testing tool, using Go and JavaScript. - [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. From 34007e722124ce4db93a1bf7d4e1e1c6be12e639 Mon Sep 17 00:00:00 2001 From: F0rzend Date: Wed, 11 Oct 2023 05:41:04 +0300 Subject: [PATCH 3186/3440] Add "Go with the domain" Book by Three Dots Labs (#5052) * Add "go with the domain" free e-book * Add description for "go with the domain" e-book --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a8d77072dc6..39f6c1902b9 100644 --- a/README.md +++ b/README.md @@ -3345,6 +3345,7 @@ _Where to discover new Go libraries._ - [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. - [Go AST Book (Chinese)](https://github.com/chai2010/go-ast-book) - A book focusing on Go `go/*` packages. - [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. +- [Go with the domain](https://threedots.tech/go-with-the-domain/) - A book showing how to apply DDD, Clean Architecture, and CQRS by practical refactoring. - [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. - [How To Code in Go eBook](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) - A 600 page introduction to Go aimed at first time developers. - [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) From 18d389570c843be71c66d32144556c14dad3be84 Mon Sep 17 00:00:00 2001 From: Mitar Date: Tue, 10 Oct 2023 19:44:06 -0700 Subject: [PATCH 3187/3440] Removing github.com/pkg/errors (#5048) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 39f6c1902b9..1056ec00170 100644 --- a/README.md +++ b/README.md @@ -1022,7 +1022,6 @@ _Libraries for handling errors._ - [eris](https://github.com/rotisserie/eris) - A better way to handle, trace, and log errors in Go. Compatible with the standard error library and github.com/pkg/errors. - [errlog](https://github.com/snwfdhmp/errlog) - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place. - [errors](https://github.com/emperror/errors) - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives. -- [errors](https://github.com/pkg/errors) - Package that provides simple error handling primitives. - [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. - [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. - [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. From 637be64ab316c3678fdc0815bbb86a0075747ace Mon Sep 17 00:00:00 2001 From: Mk5 <31850900+mk-5@users.noreply.github.com> Date: Wed, 11 Oct 2023 05:07:07 +0200 Subject: [PATCH 3188/3440] Add fjira - fuzzy-find command line app for JIra (#4616) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1056ec00170..63d8324c647 100644 --- a/README.md +++ b/README.md @@ -3213,6 +3213,7 @@ _Software written in Go._ - [dp](https://github.com/scryinfo/dp) - Through SDK for data exchange with blockchain, developers can get easy access to DAPP development. - [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. - [Duplicacy](https://github.com/gilbertchen/duplicacy) - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication. +- [fjira](https://github.com/mk-5/fjira) - A fuzzy-search based terminal UI application for Attlasian Jira - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. - [gfile](https://github.com/Antonito/gfile) - Securely transfer files between two computers, without any third party, over WebRTC. - [Go Package Store](https://github.com/shurcooL/Go-Package-Store) - App that displays updates for the Go packages in your GOPATH. From 368333fe9733d586400a73092ae0ac47e8e33bf4 Mon Sep 17 00:00:00 2001 From: Hugo Andrade Date: Wed, 11 Oct 2023 00:18:02 -0300 Subject: [PATCH 3189/3440] Add Fast-Shot (#5027) * Add Fast-Shot * Update * Update --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63d8324c647..bf6bddcff8e 100644 --- a/README.md +++ b/README.md @@ -1933,6 +1933,7 @@ _Libraries for working with various layers of the network._ _Libraries for making HTTP requests._ +- [fast-shot](https://github.com/opus-domini/fast-shot) - Hit your API targets with rapid-fire precision using Go's fastest and simple HTTP Client. - [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. - [go-cleanhttp](https://github.com/hashicorp/go-cleanhttp) - Get easily stdlib HTTP client, which does not share any state with other clients. - [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily. From 23149da8b216396c21a8ad88a804287db81d9e15 Mon Sep 17 00:00:00 2001 From: Murilo Santana Date: Wed, 11 Oct 2023 00:19:51 -0300 Subject: [PATCH 3190/3440] Add go-redoc to Third-Party APIs (#4947) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bf6bddcff8e..e6e251a9a9f 100644 --- a/README.md +++ b/README.md @@ -2509,6 +2509,7 @@ _Libraries for accessing third party APIs._ - [go-openai](https://github.com/sashabaranov/go-openai) - OpenAI ChatGPT, DALL·E, Whisper API library for Go. - [go-openproject](https://github.com/manuelbcd/go-openproject) - Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API. - [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). +- [go-redoc](https://github.com/mvrilo/go-redoc) - Embedded OpenAPI/Swagger documentation ui for Go using [ReDoc](https://redocly.com/). - [go-restcountries](https://github.com/chriscross0/go-restcountries) - Go library for the [REST Countries API](https://countrylayer.com/). - [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. - [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. From 265bf9ab0fa40fbf74fd2477a9c77d844c859b31 Mon Sep 17 00:00:00 2001 From: Samir Kape Date: Wed, 11 Oct 2023 09:02:29 +0530 Subject: [PATCH 3191/3440] chore: add oapi-codegen (#5036) * chore: add oapi-codegen Useful utility to generate go models based on openapi spec * fix: move pkg up as per alphabetical order * fix: category * punctuation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6e251a9a9f..5bd2d82e4b5 100644 --- a/README.md +++ b/README.md @@ -1176,6 +1176,7 @@ _Tools that generate Go code._ - [GoWrap](https://github.com/hexdigest/gowrap) - Generate decorators for Go interfaces using simple templates. - [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. - [jennifer](https://github.com/dave/jennifer) - Generate arbitrary Go code without templates. +- [oapi-codegen](https://github.com/deepmap/oapi-codegen) - This package contains a set of utilities for generating Go boilerplate code for services based on OpenAPI 3.0 API definitions. - [typeregistry](https://github.com/xiaoxin01/typeregistry) - A library to create type dynamically. **[⬆ back to top](#contents)** From 188dff8b51caa6c121b5427f5934805c3c483979 Mon Sep 17 00:00:00 2001 From: lim-yoona <44336448+lim-yoona@users.noreply.github.com> Date: Thu, 12 Oct 2023 12:23:55 +0800 Subject: [PATCH 3192/3440] Add tcpack (#5040) * add msgpack * add msgpack * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5bd2d82e4b5..091c1b48468 100644 --- a/README.md +++ b/README.md @@ -1920,6 +1920,7 @@ _Libraries for working with various layers of the network._ - [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. - [stun](https://github.com/go-rtc/stun) - Go implementation of RFC 5389 STUN protocol. - [tcp_server](https://github.com/firstrow/tcp_server) - Go library for building tcp servers faster. +- [tcpack](https://github.com/lim-yoona/tcpack) - tcpack is an application protocol based on TCP to Pack and Unpack bytes stream in go program. - [tspool](https://github.com/two/tspool) - A TCP Library use worker pool to improve performance and protect your server. - [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. - [vssh](https://github.com/yahoo/vssh) - Go library for building network and server automation over SSH protocol. From d3a0fdb59fb80d4b6a910b4b1ca9bd66a2f61ead Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Oct 2023 10:05:43 +0530 Subject: [PATCH 3193/3440] Bump golang.org/x/net from 0.7.0 to 0.17.0 (#5053) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 20 ++++++++++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 280a25b2707..4b31cc6f07d 100644 --- a/go.mod +++ b/go.mod @@ -13,9 +13,9 @@ require ( require ( github.com/andybalholm/cascadia v1.3.1 // indirect github.com/golang/protobuf v1.4.2 // indirect - golang.org/x/net v0.7.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect google.golang.org/appengine v1.6.6 // indirect google.golang.org/protobuf v1.25.0 // indirect ) diff --git a/go.sum b/go.sum index bc867a2f884..8a1175bebfd 100644 --- a/go.sum +++ b/go.sum @@ -137,6 +137,7 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -168,6 +169,7 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -197,8 +199,10 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -215,6 +219,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -246,11 +251,15 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -258,8 +267,10 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -304,6 +315,7 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From fbf2a641a4805b85a511cc2c7d2bdc911377c611 Mon Sep 17 00:00:00 2001 From: nkmr-jp Date: Thu, 12 Oct 2023 13:38:24 +0900 Subject: [PATCH 3194/3440] add zl (#5039) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 091c1b48468..9de59b78c51 100644 --- a/README.md +++ b/README.md @@ -1525,6 +1525,7 @@ _Libraries for generating and working with log files._ - [zax](https://github.com/yuseferi/zax) - Integrate Context with Zap logger, which leads to more flexibility in Go logging. - [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger. - [zkits-logger](https://github.com/edoger/zkits-logger) - A powerful zero-dependency JSON logger. +- [zl](https://github.com/nkmr-jp/zl) - High Developer Experience, zap based logger. It offers rich functionality but is easy to configure. **[⬆ back to top](#contents)** From 7af8642a12dc6654f5e552183420b3dc2224a706 Mon Sep 17 00:00:00 2001 From: Susheel Thapa <077bct090.susheel@pcampus.edu.np> Date: Fri, 20 Oct 2023 14:30:42 +0545 Subject: [PATCH 3195/3440] Chore: Typo fixed in README.md (#5061) * Chore: Typo fixed in README.md * Update README.md --------- Co-authored-by: Phani Rithvij --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 9de59b78c51..9443ed98f83 100644 --- a/README.md +++ b/README.md @@ -236,7 +236,7 @@ _Libraries for implementing authentication schemes._ - [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. - [jwt-go](https://github.com/golang-jwt/jwt) - A full featured implementation of JSON Web Tokens (JWT). This library supports the parsing and verification as well as the generation and signing of JWTs. - [keto](https://github.com/ory/keto) - Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models. -- [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. +- [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam. - [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support. - [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. - [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes. @@ -847,7 +847,7 @@ _Libraries for building and using SQL._ ### Search and Analytic Databases -- [clickhouse-go](https://github.com/ClickHouse/clickhouse-go/) - ClickHouse SQL client for Go with a `database/sql` compability. +- [clickhouse-go](https://github.com/ClickHouse/clickhouse-go/) - ClickHouse SQL client for Go with a `database/sql` compatibility. - [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go. - [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go. - [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. @@ -1422,7 +1422,7 @@ _Libraries for working with JSON._ - [ask](https://github.com/simonnilsson/ask) - Easy access to nested values in maps and slices. Works in combination with encoding/json and other packages that "Unmarshal" arbitrary data into Go data-types. - [dynjson](https://github.com/cocoonspace/dynjson) - Client-customizable JSON formats for dynamic APIs. - [ej](https://github.com/lucassscaravelli/ej) - Write and read JSON from different sources succinctly. -- [epoch](https://github.com/vtopc/epoch) - Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from build-in time.Time type in JSON. +- [epoch](https://github.com/vtopc/epoch) - Contains primitives for marshaling/unmarshalling Unix timestamp/epoch to/from build-in time.Time type in JSON. - [fastjson](https://github.com/valyala/fastjson) - Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection. - [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. - [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. @@ -1446,11 +1446,11 @@ _Libraries for working with JSON._ - [jsonhal](https://github.com/RichardKnop/jsonhal) - Simple Go package to make custom structs marshal into HAL compatible JSON responses. - [jsonhandlers](https://github.com/abusomani/jsonhandlers) - JSON library to expose simple handlers that lets you easily read and write json from various sources. - [jsonic](https://github.com/sinhashubham95/jsonic) - Utilities to handle and query JSON without defining structs in a type safe manner. -- [jsonvalue](https://github.com/Andrew-M-C/go.jsonvalue) - A fast and convinient library for unstructured JSON data, replacing `encoding/json`. +- [jsonvalue](https://github.com/Andrew-M-C/go.jsonvalue) - A fast and convenient library for unstructured JSON data, replacing `encoding/json`. - [jzon](https://github.com/zerosnake0/jzon) - JSON library with standard compatible API/behavior. - [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. - [mapslice-json](https://github.com/mickep76/mapslice-json) - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. -- [marshmallow](https://github.com/PerimeterX/marshmallow) - Performant JSON unmarshaling for flexible use cases. +- [marshmallow](https://github.com/PerimeterX/marshmallow) - Performant JSON unmarshalling for flexible use cases. - [mp](https://github.com/sanbornm/mp) - Simple cli email parser. It currently takes stdin and outputs JSON. - [OjG](https://github.com/ohler55/ojg) - Optimized JSON for Go is a high performance parser with a variety of additional JSON tools including JSONPath. - [omg.jsonparser](https://github.com/dedalqq/omg.jsonparser) - Simple JSON parser with validation by condition via golang struct fields tags. @@ -1867,8 +1867,8 @@ _Libraries for working with various layers of the network._ - [dnsmonster](https://github.com/mosajjal/dnsmonster) - Passive DNS Capture/Monitoring Framework. - [easytcp](https://github.com/DarthPestilane/easytcp) - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. - [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. -- [event](https://github.com/cheng-zhongliang/event) - Simple I/O event notification library wirtten in Golang. +- [ethernet](https://github.com/mdlayher/ethernet) - Package ethernet implements marshaling and unmarshalling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. +- [event](https://github.com/cheng-zhongliang/event) - Simple I/O event notification library written in Golang. - [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http. - [fortio](https://github.com/fortio/fortio) - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. - [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959). @@ -2295,7 +2295,7 @@ _Libraries for testing codebases and generating test data._ - [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. - [go-testpredicate](https://github.com/maargenton/go-testpredicate) - Test predicate style assertions library with extensive diagnostics output. - [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. + - [goblin](https://github.com/franela/goblin) - Mocha like testing framework of Go. - [goc](https://github.com/qiniu/goc) - Goc is a comprehensive coverage testing system for The Go Programming Language. - [gocheck](https://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. @@ -2395,7 +2395,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [go-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. - [go-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. - [goldmark](https://github.com/yuin/goldmark) - A Markdown parser written in Go. Easy to extend, standard (CommonMark) compliant, well structured. -- [goq](https://github.com/andrewstuart/goq) - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery). +- [goq](https://github.com/andrewstuart/goq) - Declarative unmarshalling of HTML using struct tags with jQuery syntax (uses GoQuery). - [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. - [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. - [htmlyaml](https://github.com/nikolaydubina/htmlyaml) - Rich rendering of YAML as HTML in Go @@ -2652,7 +2652,7 @@ _General utilities and tools to make your life easier._ - [goctx](https://github.com/zerosnake0/goctx) - Get your context value with high performance. - [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons. - [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. -- [gofn](https://github.com/tiendc/gofn) - High performance utitlity functions written using Generics for Go 1.18+. +- [gofn](https://github.com/tiendc/gofn) - High performance utility functions written using Generics for Go 1.18+. - [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. - [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. - [golog](https://github.com/mlimaloureiro/golog) - Easy and lightweight CLI tool to time track your tasks. @@ -3035,7 +3035,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. - [unconvert](https://github.com/mdempsky/unconvert) - Remove unnecessary type conversions from Go source. - [usestdlibvars](https://github.com/sashamelentyev/usestdlibvars) - A linter that detect the possibility to use variables/constants from the Go standard library. -- [vaccum](https://github.com/daveshanley/vacuum) - An ultra-super-fast, lightweight OpenAPI linter and quality checking tool. +- [vacuum](https://github.com/daveshanley/vacuum) - An ultra-super-fast, lightweight OpenAPI linter and quality checking tool. - [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. **[⬆ back to top](#contents)** From cdc214da1e0016fa4d29317b02e61a1c73ed6f2b Mon Sep 17 00:00:00 2001 From: Susmita Dey Date: Thu, 26 Oct 2023 13:57:19 +0530 Subject: [PATCH 3196/3440] Add kubo framework (#5078) Add kubo framework --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9443ed98f83..e7e9130099b 100644 --- a/README.md +++ b/README.md @@ -196,7 +196,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Reddit](#reddit) - [Websites](#websites) - [Tutorials](#tutorials) - - [Guided Learning Paths](#guided-learning) + - [Guided Learning](#guided-learning) **[⬆ back to top](#contents)** @@ -261,6 +261,7 @@ _Tools for building blockchains._ - [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem. - [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol. - [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host. +- [kubo](https://github.com/ipfs/kubo) - A blockchain framework implemented in Go. It provides content-addressable storage which can be used for decentralized storage in DApps. It is based on the IPFS protocol. - [solana-go](https://github.com/gagliardetto/solana-go) - Go library to interface with Solana JSON RPC and WebSocket interfaces. - [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. From 3223582ef9c79ae0a89fd98068c4835577bc1a64 Mon Sep 17 00:00:00 2001 From: Avelino <31996+avelino@users.noreply.github.com> Date: Sat, 28 Oct 2023 22:04:12 -0300 Subject: [PATCH 3197/3440] fixed run-check job --- .github/workflows/run-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index 82534906a4f..20e875771f9 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -17,6 +17,6 @@ jobs: - name: Get dependencies run: go get -v -t -d ./... - name: run script - run: go test stale_repositories_test.go scripts.go + run: go test stale_repositories_test.go env: OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} From 3c4977e3f0030de14eec7f2fdf6fee2e50965ede Mon Sep 17 00:00:00 2001 From: Tim Middleton Date: Mon, 30 Oct 2023 15:48:51 +0800 Subject: [PATCH 3198/3440] Add coherence-go-client (#5083) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e7e9130099b..3c76d07b3cd 100644 --- a/README.md +++ b/README.md @@ -645,6 +645,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. - [cachego](https://github.com/faabiosr/cachego) - Golang Cache component for multiple drivers. - [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. +- [coherence-go-client](https://github.com/oracle/coherence-go-client) - Full implementation of Oracle Coherence cache API for Go applications using gRPC as network transport. - [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. - [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. - [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. From 3e5e3dc1e5dcc8498c69c60d1b15cd562c83826e Mon Sep 17 00:00:00 2001 From: Mario Candela Date: Mon, 30 Oct 2023 11:54:10 +0100 Subject: [PATCH 3199/3440] add beelzebub (#5059) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3c76d07b3cd..c27a41ce681 100644 --- a/README.md +++ b/README.md @@ -2134,6 +2134,7 @@ _Libraries that are used to help make your application more secure._ - [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. - [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. - [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. +- [beelzebub](https://github.com/mariocandela/beelzebub) - A secure low code honeypot framework, leveraging AI for System Virtualization. - [booster](https://github.com/anatol/booster) - Fast initramfs generator with full-disk encryption support. - [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras. - [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates. From c67cd9380279751257fcd778a3fe17d6dba4972b Mon Sep 17 00:00:00 2001 From: James Blair Date: Tue, 31 Oct 2023 17:23:24 +1300 Subject: [PATCH 3200/3440] Fix repository url for etcd. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c27a41ce681..ca6048e8be0 100644 --- a/README.md +++ b/README.md @@ -2204,7 +2204,7 @@ _Libraries and tools for binary serialization._ - [dudeldu](https://github.com/krotik/dudeldu) - A simple SHOUTcast server. - [dummy](https://github.com/neotoolkit/dummy) - Run mock server based off an API contract with one command. - [Easegress](https://github.com/megaease/easegress) - A cloud native high availability/performance traffic orchestration system with observability and extensibility. -- [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. +- [etcd](https://github.com/etcd-io/etcd) - Highly-available key value store for shared configuration and service discovery. - [Euterpe](https://github.com/ironsmile/euterpe) - Self-hosted music streaming server with built-in web UI and REST API. - [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. - [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. From c4fe5ce81d120e41f23ba8b1e52ae1e92d189846 Mon Sep 17 00:00:00 2001 From: beawkiattisak Date: Fri, 20 Oct 2023 23:51:19 +0700 Subject: [PATCH 3201/3440] fix comment --- main.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index a588eb50cc2..7ce78c8f1b9 100644 --- a/main.go +++ b/main.go @@ -5,14 +5,15 @@ import ( "bytes" "errors" "fmt" - "github.com/avelino/awesome-go/pkg/markdown" - cp "github.com/otiai10/copy" template2 "html/template" "net/url" "os" "path/filepath" "text/template" + "github.com/avelino/awesome-go/pkg/markdown" + cp "github.com/otiai10/copy" + "github.com/PuerkitoBio/goquery" "github.com/avelino/awesome-go/pkg/slug" ) @@ -241,8 +242,8 @@ func extractCategory(doc *goquery.Document, selector string) (*Category, error) doc.Find(selector).EachWithBreak(func(_ int, selCatHeader *goquery.Selection) bool { selDescr := selCatHeader.NextFiltered("p") // FIXME: bug. this would select links from all neighboring - // sub-categories until the next category. To prevent this we should - // find only first ul + // sub-categories until the next category. To prevent this we should + // find only first ul ul := selCatHeader.NextFilteredUntil("ul", "h2") var links []Link From 6bca62e8919423338d06dd76b2b7bcee200a015d Mon Sep 17 00:00:00 2001 From: Onur Cinar Date: Wed, 21 Jun 2023 19:44:51 -0700 Subject: [PATCH 3202/3440] Adding Checker library to Forms section. A link to the project's pkg.go.dev page https://pkg.go.dev/github.com/cinar/checker A link to the project's Go Report Card report https://goreportcard.com/report/github.com/cinar/checker A link to a code coverage report https://app.codecov.io/gh/cinar/checker --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ca6048e8be0..a10483c63f0 100644 --- a/README.md +++ b/README.md @@ -1107,6 +1107,7 @@ _Libraries for working with forms._ - [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. +- [checker](https://github.com/cinar/checker) - Checker helps validating user input through rules defined in struct tags or directly through functions. - [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. - [formam](https://github.com/monoculum/formam) - decode form's values into a struct. From 678447dcbee010fdcb7d5e21d00315307412dd1a Mon Sep 17 00:00:00 2001 From: Anton Telyshev Date: Mon, 6 Nov 2023 21:07:40 +0200 Subject: [PATCH 3203/3440] Add testifylint (#5095) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a10483c63f0..b9077f50462 100644 --- a/README.md +++ b/README.md @@ -3035,6 +3035,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [lint](https://github.com/surullabs/lint) - Run linters as part of go test. - [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. - [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#. +- [testifylint](https://github.com/Antonboom/testifylint) – A linter that checks usage of [github.com/stretchr/testify](https://github.com/stretchr/testify). - [tickgit](https://github.com/augmentable-dev/tickgit) - CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`to identify the author. - [todocheck](https://github.com/preslavmihaylov/todocheck) - Static code analyser which links TODO comments in code with issues in your issue tracker. - [unconvert](https://github.com/mdempsky/unconvert) - Remove unnecessary type conversions from Go source. From 9e42f35f0abd638773e592a61cccf721e95c0ba7 Mon Sep 17 00:00:00 2001 From: Anton Telyshev Date: Mon, 6 Nov 2023 21:08:08 +0200 Subject: [PATCH 3204/3440] Add golangci-lint (#5096) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b9077f50462..00e460cfc8e 100644 --- a/README.md +++ b/README.md @@ -3027,6 +3027,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. - [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. - [golang-ifood-sdk](https://github.com/arxdsilva/golang-ifood-sdk) - iFood API SDK. +- [golangci-lint](https://github.com/golangci/golangci-lint) – A fast Go linters runner. It runs linters in parallel, uses caching, supports `yaml` config, has integrations with all major IDE and has dozens of linters included. - [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. - [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. - [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. From 16f7c2d80523eb68c04519653b8edce255fa101b Mon Sep 17 00:00:00 2001 From: Anton Telyshev Date: Mon, 6 Nov 2023 21:08:23 +0200 Subject: [PATCH 3205/3440] Replace archived golint with revive (#5097) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 00e460cfc8e..38d31a14fb7 100644 --- a/README.md +++ b/README.md @@ -3029,12 +3029,12 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [golang-ifood-sdk](https://github.com/arxdsilva/golang-ifood-sdk) - iFood API SDK. - [golangci-lint](https://github.com/golangci/golangci-lint) – A fast Go linters runner. It runs linters in parallel, uses caching, supports `yaml` config, has integrations with all major IDE and has dozens of linters included. - [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. -- [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. - [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. - [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. - [gostatus](https://github.com/shurcooL/gostatus) - Command line tool, shows the status of repositories that contain Go packages. - [lint](https://github.com/surullabs/lint) - Run linters as part of go test. - [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. +- [revive](https://github.com/mgechev/revive) – ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for `golint`. - [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#. - [testifylint](https://github.com/Antonboom/testifylint) – A linter that checks usage of [github.com/stretchr/testify](https://github.com/stretchr/testify). - [tickgit](https://github.com/augmentable-dev/tickgit) - CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`to identify the author. From 02875ff239a58fc6464b8da3d4f99e4794f8360f Mon Sep 17 00:00:00 2001 From: Lucas Bremgartner Date: Mon, 6 Nov 2023 21:38:51 +0100 Subject: [PATCH 3206/3440] Add meetups in Berne and Zurich, Switzerland --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 38d31a14fb7..ea003b93ddb 100644 --- a/README.md +++ b/README.md @@ -3387,6 +3387,7 @@ _Where to discover new Go libraries._ ## Meetups +- [Bärner Go Meetup - Berne, Switzerland](https://www.meetup.com/berner-go-meetup/) - [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) - [Belfast Gophers](https://www.meetup.com/Belfast-Gophers/) - [Belgrade Golang Meetup](https://www.meetup.com/golang-serbia/) @@ -3447,6 +3448,7 @@ _Where to discover new Go libraries._ - [Ukrainian Golang User Groups](https://www.meetup.com/uagolang/) - [Utah Go User Group](https://www.meetup.com/utahgophers/) - [Women Who Go - San Francisco, CA](https://www.meetup.com/Women-Who-Go/) +- [Zürich Gophers - Zurich, Switzerland](https://www.meetup.com/zurich-gophers/) _Add the group of your city/country here (send **PR**)_ From e05fcc0cf6a721b918f619f0a4e2aa1a835c11e8 Mon Sep 17 00:00:00 2001 From: Lucas Bremgartner Date: Mon, 6 Nov 2023 21:44:28 +0100 Subject: [PATCH 3207/3440] Update name of Berne Go Meetup --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ea003b93ddb..83f8f176c98 100644 --- a/README.md +++ b/README.md @@ -3387,7 +3387,7 @@ _Where to discover new Go libraries._ ## Meetups -- [Bärner Go Meetup - Berne, Switzerland](https://www.meetup.com/berner-go-meetup/) +- [Berne Go Meetup, Switzerland](https://www.meetup.com/berner-go-meetup/) - [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) - [Belfast Gophers](https://www.meetup.com/Belfast-Gophers/) - [Belgrade Golang Meetup](https://www.meetup.com/golang-serbia/) From 2f0a68bc72e3aea3917667b1b4dff57e38c6dcb7 Mon Sep 17 00:00:00 2001 From: Lucas Bremgartner Date: Mon, 6 Nov 2023 21:45:42 +0100 Subject: [PATCH 3208/3440] Fix order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 83f8f176c98..f58fc48b488 100644 --- a/README.md +++ b/README.md @@ -3387,12 +3387,12 @@ _Where to discover new Go libraries._ ## Meetups -- [Berne Go Meetup, Switzerland](https://www.meetup.com/berner-go-meetup/) - [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/) - [Belfast Gophers](https://www.meetup.com/Belfast-Gophers/) - [Belgrade Golang Meetup](https://www.meetup.com/golang-serbia/) - [Berlin Golang](https://www.meetup.com/golang-users-berlin/) - [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) +- [Bärner Go Meetup - Berne, Switzerland](https://www.meetup.com/berner-go-meetup/) - [Canberra Gophers](https://www.meetup.com/Canberra-Gophers/) - [Go Language NYC](https://www.meetup.com/golanguagenewyork/) - [Go London User Group](https://www.meetup.com/Go-London-User-Group/) From 5ce5af38bd8f0e2a4ac11aed29a0488486f9d1ba Mon Sep 17 00:00:00 2001 From: Valentine Date: Thu, 9 Nov 2023 17:03:58 +0000 Subject: [PATCH 3209/3440] Adds templ to README (#5074) Adds templ to the Template Engines subsection of the README. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f58fc48b488..b640a5ae593 100644 --- a/README.md +++ b/README.md @@ -2260,6 +2260,7 @@ _Libraries and tools for templating and lexing._ - [Soy](https://github.com/robfig/soy) - Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/). - [sprig](https://github.com/Masterminds/sprig) - Useful template functions for Go templates. - [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata. +- [templ](https://github.com/a-h/templ) - A HTML templating language that has great developer tooling. **[⬆ back to top](#contents)** From 2486ed26c0f1c3466328873024af36df11072613 Mon Sep 17 00:00:00 2001 From: Emanuele Fumagalli Date: Thu, 9 Nov 2023 17:17:24 +0000 Subject: [PATCH 3210/3440] Removed syndfeed (#5099) syndfeed doesn't seem to be available --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b640a5ae593..20e0e2a6e76 100644 --- a/README.md +++ b/README.md @@ -2461,7 +2461,6 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A ### RSS - [podcast](https://github.com/eduncan911/podcast) - iTunes Compliant and RSS 2.0 Podcast Generator in Golang -- [syndfeed](https://github.com/zhengchun/syndfeed) - A syndication feed for Atom 1.0 and RSS 2.0. ### Utility/Miscellaneous From 46c578e075d52ec3156e613979974202f51760b2 Mon Sep 17 00:00:00 2001 From: Avelino <31996+avelino@users.noreply.github.com> Date: Sat, 2 Dec 2023 21:29:36 -0300 Subject: [PATCH 3211/3440] CONTRIBUTING: how to become a proofreader --- CONTRIBUTING.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 26e2ce1eb0e..2234cfe4ebc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,7 @@ This resource was made by the Go community and wouldn't be possible without you! We appreciate and recognize [all contributors](https://github.com/avelino/awesome-go/graphs/contributors). + # Contribution Guidelines > Please be aware that we want to accept your contribution, but we have **some rules to keep the minimum quality** of the packages listed here. All reviews are **not personal feedback**, even if you are a _developer reviewing your contribution_. **Sorry, if we can't meet your expectations; we do our best**. @@ -12,6 +13,9 @@ and other lists, awesome-go is a specially curated list of high-quality, activel Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. +> the maintainers do not work full-time on the project, meaning that we do not have a set periodicity for reviewing contributions - rest assured that we will do our best to review and eventually accept contributions + + ## Quality standards To be on the list, project repositories should adhere to the following quality standards. @@ -30,6 +34,7 @@ To be on the list, project repositories should adhere to the following quality s Categories must have at least 3 items. + ## Preparing for review Projects listed must have the following in their documentation. When submitting, you will be asked @@ -44,6 +49,7 @@ One way to accomplish the above is to add badges to your project's README file. - Go to https://goreportcard.com/ to generate a Go Report Card report, then click on the report badge in the upper-right corner to see details on how to add the badge to your README. - Codecov, coveralls, and gocover all offer ways to create badges for code coverage reports. Another option is to generate a badge as part of a continuous integration process. See [Code Coverage](COVERAGE.md) for an example. + ## How to add an item to the list Open a pull request against the README.md document that adds the repository to the list. @@ -70,6 +76,8 @@ You are an outstanding project now! Feel encouraged to tell others about it by a [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go) [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go) ``` + + ## Maintenance expectations for projects listed here To prevent removal from awesome-go, your project must maintain the following quality standards. @@ -82,6 +90,7 @@ Highly recommended but not required: - That the project uses a pull-request process, and the owners do not commit directly to the repository - That the pull-request process requires the continuous-integration tests to pass before a pull request can be merged + ## How to remove an item from the list - Open a pull request that deletes the line of the project in question. @@ -107,6 +116,7 @@ This project is scheduled to be removed within 2 weeks of this posting. To conti Then, comment on your PR at awesome-go with a link to the removal issue at the project. + ## Maintainers To make sure every PR is checked, we have [team maintainers](MAINTAINERS). Every PR MUST be reviewed by at least one maintainer before it can get merged. @@ -124,6 +134,35 @@ Removal changes will not be applied until they have been pending for a minimum o Thanks, everyone! + ## How decisions are made The official group of maintainers has the final decision on what PRs are accepted. Discussions are made openly in issues. Decisions are made by consensus. + + +## How to become a contributor? + +awesome-go is an open source project (created and maintained by the community), we are always open to new people to help us review the contributions (pull requests), **you don't need permission** or _name on the maintainers list_ to review a contribution and mark it as **LGTM**. + +> Before you do anything, please read [this topic](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards) very carefully. + +Now that you've read it, let's go! + +Go into the pull requests (PR) and look at the following aspects: + +* **shared links in the body of the PR:** they need to be valid and follow the quality specified above +* **check that the link added to `README.md`** is the same as the link to the repository mentioned in the body of the PR. +* **is it in the correct category?** + +If everything is OK, mark the PR as approved, [read this documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request#starting-a-review) on how to do it. + +**Welcome to awesome-go!** + + +## How to become an ~~"official maintainer"~~? + +We don't give this name to people who are allowed to accept the PR. + +If you are a person who is constantly active in reviewing PR and contributing to the project, you will be invited by a maintainer. + +> **remember:** if you stop contributing with awesome-go for a long time, you will automatically be removed from the list of maintainers. From 1fb56cbece36b502db6e46cc1def8d7082858345 Mon Sep 17 00:00:00 2001 From: Ian Flynn Date: Thu, 7 Dec 2023 03:39:21 -0500 Subject: [PATCH 3212/3440] add maddy (#5057) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20e0e2a6e76..674b6e542d7 100644 --- a/README.md +++ b/README.md @@ -976,6 +976,7 @@ _Libraries and tools that implement email creation and sending._ - [go-simple-mail](https://github.com/xhit/go-simple-mail) - Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send. - [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. +- [Maddy](https://github.com/foxcpp/maddy) - All-in-one (SMTP, IMAP, DKIM, DMARC, MTA-STS, DANE) email server - [mailchain](https://github.com/mailchain/mailchain) - Send encrypted emails to blockchain addresses written in Go. - [mailgun-go](https://github.com/mailgun/mailgun-go) - Go library for sending mail with the Mailgun API. - [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface. From bf8c1688eea42fbd274acc30ab9210a2706de0d8 Mon Sep 17 00:00:00 2001 From: Mitar Date: Thu, 7 Dec 2023 00:40:52 -0800 Subject: [PATCH 3213/3440] Add gitlab.com/tozd/go/errors. (#5049) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 674b6e542d7..c958f5901c6 100644 --- a/README.md +++ b/README.md @@ -1027,6 +1027,7 @@ _Libraries for handling errors._ - [errors](https://github.com/emperror/errors) - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives. - [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. - [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. +- [errors](https://gitlab.com/tozd/go/errors) - Providing errors with a stack trace and optional structured details. Compatible with github.com/pkg/errors API but does not use it internally. - [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. - [errors](https://github.com/cockroachdb/errors) - Go error library with error portability over the network. - [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. From 67bebd6d44740864d24464df1b416dbbbc8cd990 Mon Sep 17 00:00:00 2001 From: Alexei Shevchenko Date: Thu, 7 Dec 2023 11:55:55 +0300 Subject: [PATCH 3214/3440] add decompose (#4982) * add decompose * move to Devops Tools category --------- Co-authored-by: Phani Rithvij --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c958f5901c6..6146634c314 100644 --- a/README.md +++ b/README.md @@ -3132,7 +3132,9 @@ _Software written in Go._ - [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework. - [cassowary](https://github.com/rogerwelin/cassowary) - Modern cross-platform HTTP load-testing tool written in Go. - [Ddosify](https://github.com/ddosify/ddosify) - High-performance load testing tool, written in Golang. +- [decompose](https://github.com/s0rg/decompose) - tool to generate and process Docker containers connections graphs. - [DepCharge](https://github.com/centerorbit/depcharge) - Helps orchestrating the execution of commands across the many dependencies in larger projects. +- [Docker](https://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. - [docker-go-mingw](https://github.com/x1unix/docker-go-mingw) - Docker image for building Go binaries for Windows with MinGW toolchain. - [Dockerfile-Generator](https://github.com/ozankasikci/dockerfile-generator) - A go library and an executable that produces valid Dockerfiles using various input channels. - [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). @@ -3221,7 +3223,6 @@ _Software written in Go._ - [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. - [crawley](https://github.com/s0rg/crawley) - Web scraper/crawler for cli. - [croc](https://github.com/schollz/croc) - Easily and securely send files or folders from one computer to another. -- [Docker](https://www.docker.com/) - Open platform for distributed applications for developers and sysadmins. - [Documize](https://github.com/documize/community) - Modern wiki software that integrates data from SaaS tools. - [dp](https://github.com/scryinfo/dp) - Through SDK for data exchange with blockchain, developers can get easy access to DAPP development. - [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. From db1c90d2052e4ed96bfba470eaa9ecd15f19ff3a Mon Sep 17 00:00:00 2001 From: Arran Ubels Date: Thu, 7 Dec 2023 20:09:05 +1100 Subject: [PATCH 3215/3440] Goey added. (#4723) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6146634c314..b6bb65bcf02 100644 --- a/README.md +++ b/README.md @@ -1289,6 +1289,7 @@ _Toolkits_ - [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron). - [go-gtk](https://mattn.github.io/go-gtk/) - Go bindings for GTK. - [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. +- [Goey](https://bitbucket.org/rj/goey/src/master/) - Cross platform UI toolkit aggregator for Windows / Linux / Mac. GTK, Cocoa, Windows API - [goradd/html5tag](https://github.com/goradd/html5tag) - Library for outputting HTML5 tags. - [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. From 74278d30fbf29462e48966d2d98065d47ef9207d Mon Sep 17 00:00:00 2001 From: Rasool Ziafaty Date: Thu, 7 Dec 2023 13:45:28 +0330 Subject: [PATCH 3216/3440] add gotiny (#4763) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b6bb65bcf02..89adf99a214 100644 --- a/README.md +++ b/README.md @@ -2188,6 +2188,7 @@ _Libraries and tools for binary serialization._ - [go-lctree](https://github.com/sbourlon/go-lctree) - Provides a CLI and primitives to serialize and deserialize [LeetCode binary trees](https://support.leetcode.com/hc/en-us/articles/360011883654-What-does-1-null-2-3-mean-in-binary-tree-representation). - [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. +- [gotiny](https://github.com/raszia/gotiny) - Efficient Go serialization library, gotiny is almost as fast as serialization libraries that generate code. - [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. From 71bd428ebde335eeb25a4d9cbb941d3f2bfc50a9 Mon Sep 17 00:00:00 2001 From: Jonathan VUILLEMIN Date: Fri, 8 Dec 2023 19:59:52 +0100 Subject: [PATCH 3217/3440] feat: added yai (#4929) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89adf99a214..8b1e9c4f8ef 100644 --- a/README.md +++ b/README.md @@ -3283,6 +3283,7 @@ _Software written in Go._ - [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. - [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). - [woke](https://github.com/get-woke/woke) - Detect non-inclusive language in your source code. +- [yai](https://github.com/ekkinox/yai) - AI powered terminal assistant. - [zs](https://git.mills.io/prologic/zs) - an extremely minimal static site generator. **[⬆ back to top](#contents)** From d99571efb537f1c91748252a020be48e5c604daf Mon Sep 17 00:00:00 2001 From: Kirill Date: Mon, 18 Dec 2023 10:44:19 +0400 Subject: [PATCH 3218/3440] Add envdoc (#5142) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8b1e9c4f8ef..9c321814a8c 100644 --- a/README.md +++ b/README.md @@ -3075,6 +3075,7 @@ _Plugin for text editors and IDEs._ ## Go Generate Tools +- [envdoc](https://github.com/g4s8/envdoc) - generate documentation for environment variables from Go source files. - [generic](https://github.com/usk81/generic) - flexible data type for Go. - [genny](https://github.com/cheekybits/genny) - Elegant generics for Go. - [gocontracts](https://github.com/Parquery/gocontracts) - brings design-by-contract to Go by synchronizing the code with the documentation. From d6690642ec15d398c9aea64182903b904822b19e Mon Sep 17 00:00:00 2001 From: Aryan Mehrotra <44036979+aryanmehrotra@users.noreply.github.com> Date: Sun, 5 Nov 2023 05:29:17 +0530 Subject: [PATCH 3219/3440] Add GoFr --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c321814a8c..0e895de5108 100644 --- a/README.md +++ b/README.md @@ -2870,6 +2870,7 @@ _Full stack web frameworks._ - [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. - [Goa](https://github.com/goadesign/goa) - Goa provides a holistic approach for developing remote APIs and microservices in Go. - [goa](https://github.com/goa-go/goa) - goa is just like koajs for golang, it is a flexible, light, high-performance and extensible web framework based on middleware. +- [GoFr](https://github.com/gofr-dev/gofr) - Gofr is an opinionated microservice development framework. - [GoFrame](https://github.com/gogf/gf) - GoFrame is a modular, full-featured and production-ready application development framework of golang. - [golamb](https://github.com/twharmon/golamb) - Golamb makes it easier to write API endpoints for use with AWS Lambda and API Gateway. - [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. From 39b1c0c1780b49b1ba314a267a7a1bf776bef3cb Mon Sep 17 00:00:00 2001 From: Alex Bozhenko Date: Mon, 11 Dec 2023 16:40:15 -0800 Subject: [PATCH 3220/3440] update go and deps --- go.mod | 23 ++-- go.sum | 406 +++++---------------------------------------------------- 2 files changed, 43 insertions(+), 386 deletions(-) diff --git a/go.mod b/go.mod index 4b31cc6f07d..96056e72a63 100644 --- a/go.mod +++ b/go.mod @@ -1,21 +1,22 @@ module github.com/avelino/awesome-go -go 1.17 +go 1.21 require ( - github.com/PuerkitoBio/goquery v1.8.0 + github.com/PuerkitoBio/goquery v1.8.1 github.com/avelino/slugify v0.0.0-20180501145920-855f152bd774 - github.com/otiai10/copy v1.9.0 - github.com/yuin/goldmark v1.4.13 - golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 + github.com/otiai10/copy v1.14.0 + github.com/yuin/goldmark v1.6.0 + golang.org/x/oauth2 v0.15.0 ) require ( github.com/andybalholm/cascadia v1.3.1 // indirect - github.com/golang/protobuf v1.4.2 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - google.golang.org/appengine v1.6.6 // indirect - google.golang.org/protobuf v1.25.0 // indirect + github.com/golang/protobuf v1.5.3 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/sync v0.3.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/protobuf v1.31.0 // indirect ) diff --git a/go.sum b/go.sum index 8a1175bebfd..17b016bd363 100644 --- a/go.sum +++ b/go.sum @@ -1,412 +1,68 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U= -github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI= +github.com/PuerkitoBio/goquery v1.8.1 h1:uQxhNlArOIdbrH1tr0UXwdVFgDcZDrZVdcpygAcwmWM= +github.com/PuerkitoBio/goquery v1.8.1/go.mod h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ= github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c= github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= github.com/avelino/slugify v0.0.0-20180501145920-855f152bd774 h1:HrMVYtly2IVqg9EBooHsakQ256ueojP7QuG32K71X/U= github.com/avelino/slugify v0.0.0-20180501145920-855f152bd774/go.mod h1:5wi5YYOpfuAKwL5XLFYopbgIl/v7NZxaJpa/4X6yFKE= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/otiai10/copy v1.9.0 h1:7KFNiCgZ91Ru4qW4CWPf/7jqtxLagGRmIxWldPP9VY4= -github.com/otiai10/copy v1.9.0/go.mod h1:hsfX19wcn0UWIHUQ3/4fHuehhk2UyArQ9dVFAn3FczI= -github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= -github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= -github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= -github.com/otiai10/mint v1.4.0 h1:umwcf7gbpEwf7WFzqmWwSv0CzbeMsae2u9ZvpP8j2q4= -github.com/otiai10/mint v1.4.0/go.mod h1:gifjb2MYOoULtKLqUAEILUG/9KONW6f7YsJ6vQLTlFI= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= +github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= +github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= +github.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68= +github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= +golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= From 28461e33914589e469070810d4ebf159bb8c28a8 Mon Sep 17 00:00:00 2001 From: Alex Bozhenko Date: Mon, 11 Dec 2023 16:56:29 -0800 Subject: [PATCH 3221/3440] correct test run usage --- .github/workflows/run-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index 20e875771f9..d2e54c0d126 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -17,6 +17,6 @@ jobs: - name: Get dependencies run: go get -v -t -d ./... - name: run script - run: go test stale_repositories_test.go + run: go test -v -run ^TestStaleRepository$ env: OAUTH_TOKEN: ${{secrets.OAUTH_TOKEN}} From 263d3e63628f014ae1290aa721d9caa584d3dc77 Mon Sep 17 00:00:00 2001 From: Travis Cline Date: Thu, 21 Dec 2023 18:22:54 -0800 Subject: [PATCH 3222/3440] Add AI category, some initial entries. (#5118) * Add langchaingo I'm a maintainer of this project and am proposing inclusion. * Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 0e895de5108..c04b91361d2 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Awesome Go](#awesome-go) - [Contents](#contents) + - [Artificial Intelligence](#artificial-intelligence) - [Audio and Music](#audio-and-music) - [Authentication and OAuth](#authentication-and-oauth) - [Blockchain](#blockchain) @@ -200,6 +201,16 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a **[⬆ back to top](#contents)** +## Artificial Intelligence + +_Libraries for building programs that leverage AI._ + +- [langchaingo](https://github.com/tmc/langchaingo) - LangChainGo is a framework for developing applications powered by language models. +- [LocalAI](https://github.com/mudler/LocalAI) - Open Source OpenAI alternative, self-host AI models. +- [Ollama](https://github.com/jmorganca/ollama) - Run large language models locally. + +**[⬆ back to top](#contents)** + ## Audio and Music _Libraries for manipulating audio._ From 17d5bc618ad1bc552799c32c54839d2e9b5f1a8b Mon Sep 17 00:00:00 2001 From: Marko Kungla Date: Fri, 22 Dec 2023 04:38:30 +0200 Subject: [PATCH 3223/3440] update: bexp import path (#5148) bexp Brace Expansion package has moved to new github org. From my personal account github.com/mkungla/bexp to github.com/happy-sdk/happy-go/strings/bexp Signed-off-by: Marko Kungla --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c04b91361d2..e456a18b1fa 100644 --- a/README.md +++ b/README.md @@ -1722,7 +1722,7 @@ _**Unofficial** set of patterns for structuring projects._ _Libraries for working with strings._ -- [bexp](https://github.com/mkungla/bexp) - Go implementation of Brace Expansion mechanism to generate arbitrary strings. +- [bexp](https://github.com/happy-sdk/happy-go/tree/main/strings/bexp) - Go implementation of Brace Expansion mechanism to generate arbitrary strings. - [caps](https://github.com/chanced/caps) - A case conversion library. - [go-formatter](https://gitlab.com/tymonx/go-formatter) - Implements **replacement fields** surrounded by curly braces `{}` format strings. - [gobeam/Stringy](https://github.com/gobeam/Stringy) - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. From da0757a51be90110e512223475b42856883f69da Mon Sep 17 00:00:00 2001 From: mffap Date: Fri, 5 Jan 2024 12:38:43 +0200 Subject: [PATCH 3224/3440] add oidc (authentication & Oauth) (#5126) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e456a18b1fa..e6a6c7bf83d 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,7 @@ _Libraries for implementing authentication schemes._ - [keto](https://github.com/ory/keto) - Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models. - [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam. - [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support. +- [oidc](https://github.com/zitadel/oidc) - Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation - [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. - [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes. - [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. From f8dc5507438ab8ea01532b16b299ec0a55c390ae Mon Sep 17 00:00:00 2001 From: mffap Date: Fri, 5 Jan 2024 12:39:50 +0200 Subject: [PATCH 3225/3440] add passwap (security) (#5125) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6a6c7bf83d..fe80dad15cc 100644 --- a/README.md +++ b/README.md @@ -2170,6 +2170,7 @@ _Libraries that are used to help make your application more secure._ - [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. - [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. - [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. +- [passwap](https://github.com/zitadel/passwap) - Provides a unified implementation between different password hashing algorithms - [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std\* etc. - [secure](https://github.com/unrolled/secure) - HTTP middleware for Go that facilitates some quick security wins. - [secureio](https://github.com/xaionaro-go/secureio) - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519. From cb487bf07a347100c04426007d30fd609735964a Mon Sep 17 00:00:00 2001 From: goodliu Date: Fri, 5 Jan 2024 18:56:10 +0800 Subject: [PATCH 3226/3440] add trpc-go (#5075) * README: add trpc-go package to the Distributed Systems list * update description * update description cont'd --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fe80dad15cc..5a2114dd081 100644 --- a/README.md +++ b/README.md @@ -957,6 +957,7 @@ _Packages that help with building Distributed Systems._ - [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)). - [Temporal](https://github.com/temporalio/sdk-go) - Durable execution system for making code fault-tolerant and simple. - [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. +- [trpc-go](https://github.com/trpc-group/trpc-go) - The Go language implementation of tRPC, which is a pluggable, high-performance RPC framework. **[⬆ back to top](#contents)** From ebe748e7b41d15b1e8a17be30d74dd38a1c889bb Mon Sep 17 00:00:00 2001 From: #571 <31502293+number571@users.noreply.github.com> Date: Sat, 6 Jan 2024 16:46:16 +0700 Subject: [PATCH 3227/3440] Update README.md (#4946) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a2114dd081..de7601cf1ff 100644 --- a/README.md +++ b/README.md @@ -2162,6 +2162,7 @@ _Libraries that are used to help make your application more secure._ - [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. - [go-htpasswd](https://github.com/tg123/go-htpasswd) - Apache htpasswd Parser for Go. - [go-password-validator](https://github.com/lane-c-wagner/go-password-validator) - Password validator based on raw cryptographic entropy values. +- [go-peer](https://github.com/number571/go-peer) - A software library for creating secure and anonymous decentralized systems. - [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)". - [goArgonPass](https://github.com/dwin/goArgonPass) - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. - [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. From 9bebb77c25fd2e8d60a2bf341186785fbea92949 Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Fri, 19 Jan 2024 07:42:22 -0800 Subject: [PATCH 3228/3440] Wording tweaks to the PR comment added by the first-comment GH Action. (#5177) --- .github/workflows/pull-request-first-comment.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pull-request-first-comment.yaml b/.github/workflows/pull-request-first-comment.yaml index ca216b706ad..e5f3ac03474 100644 --- a/.github/workflows/pull-request-first-comment.yaml +++ b/.github/workflows/pull-request-first-comment.yaml @@ -20,11 +20,12 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.pull_request.number }} body: | - Thank you for contributing with [awesome-go](https://awesome-go.com/), we will revise your contribution as soon as possible. + Thank you for contributing to [awesome-go](https://awesome-go.com/). We will review your contribution as soon as possible. Make sure you add the links in the body of the pull request that are requested in the [contribution guide](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md): - - godoc.org or pkg.go.dev + - repo link + - pkg.go.dev - goreportcard.com - coverage - > your project is about to be approved, it's under revision, it may take a few days + > Your project is under review. It may take a few days to be approved. From fde7c01fb1ab10350e45eedd050ad3bc1da137b0 Mon Sep 17 00:00:00 2001 From: Alexey Mayshev <72698179+maypok86@users.noreply.github.com> Date: Fri, 26 Jan 2024 01:07:48 +0300 Subject: [PATCH 3229/3440] Add otter (#5183) Co-authored-by: Aleksey Mayshev --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index de7601cf1ff..0751318570d 100644 --- a/README.md +++ b/README.md @@ -669,6 +669,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. - [imcache](https://github.com/erni27/imcache) - A generic in-memory cache Go library. It supports expiration, sliding expiration, max entries limit, eviction callbacks and sharding. - [nscache](https://github.com/no-src/nscache) - A Go caching framework that supports multiple data source drivers. +- [otter](https://github.com/maypok86/otter) - A high performance lockless cache for Go. Many times faster than Ristretto and friends. - [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). - [theine](https://github.com/Yiling-J/theine-go) - High performance, near optimal in-memory cache with proactive TTL expiration and generics. - [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. From a0c1ee014ba023ac1e3869d6aebb34071a1e7961 Mon Sep 17 00:00:00 2001 From: Udayan Joshi <14udayanjoshi@gmail.com> Date: Thu, 25 Jan 2024 14:35:33 -0800 Subject: [PATCH 3230/3440] remove incorrect link (#5178) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0751318570d..7bc35f423de 100644 --- a/README.md +++ b/README.md @@ -3450,7 +3450,6 @@ _Where to discover new Go libraries._ - [Golang Lyon](https://www.meetup.com/Golang-Lyon/) - [Golang Marseille](https://www.meetup.com/fr-FR/Golang-Marseille/) - [Golang Melbourne](https://www.meetup.com/golang-mel/) -- [Golang Mountain View](https://www.meetup.com/Golang-Mountain-View/) - [Golang North East](https://www.meetup.com/en-AU/Golang-North-East/) - [Golang Paris](https://www.meetup.com/Golang-Paris/) - [Golang Poland](https://www.meetup.com/Golang-Poland/) From 5aa9820ae38881a84fd3f0a23bc592fb749f6422 Mon Sep 17 00:00:00 2001 From: Richard Carson Derr Date: Thu, 25 Jan 2024 17:38:50 -0500 Subject: [PATCH 3231/3440] add z5labs bedrock (#5180) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7bc35f423de..2a0556ba964 100644 --- a/README.md +++ b/README.md @@ -906,6 +906,7 @@ _Libraries for working with dates and times._ _Packages that help with building Distributed Systems._ - [arpc](https://github.com/lesismal/arpc) - More effective network communication, support two-way-calling, notify, broadcast. +- [bedrock](https://github.com/z5labs/bedrock) - Provides a minimal, modular and composable foundation for quickly developing services and more use case specific frameworks in Go. - [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. - [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. - [consistenthash](https://github.com/mbrostami/consistenthash) - Consistent hashing with configurable replicas. From 841a93178ca3c8d28cf647f19af3c254914574ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Victor?= Date: Thu, 25 Jan 2024 19:47:25 -0300 Subject: [PATCH 3232/3440] Add Lit to README's Web Frameworks section (#5171) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2a0556ba964..dd5b4bab586 100644 --- a/README.md +++ b/README.md @@ -2900,6 +2900,7 @@ _Full stack web frameworks._ - [Hertz](https://github.com/cloudwego/hertz) - A high-performance and strong-extensibility Go HTTP framework that helps developers build microservices. - [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. - [Huma](https://github.com/danielgtaylor/huma/) - Framework for modern REST/GraphQL APIs with built-in OpenAPI 3, generated documentation, and a CLI. +- [Lit](https://github.com/jvcoutinho/lit) - Highly performant declarative web framework for Golang, aiming for simplicity and quality of life. - [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. From 387bd8b88f8133af83244df4d2379142572773cd Mon Sep 17 00:00:00 2001 From: zhuyasen Date: Fri, 26 Jan 2024 06:53:09 +0800 Subject: [PATCH 3233/3440] add sponge (#5166) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dd5b4bab586..92619ba7699 100644 --- a/README.md +++ b/README.md @@ -957,6 +957,7 @@ _Packages that help with building Distributed Systems._ - [rpcx](https://github.com/smallnest/rpcx) - Distributed pluggable RPC service framework like alibaba Dubbo. - [Semaphore](https://github.com/jexia/semaphore) - A straightforward (micro) service orchestrator. - [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)). +- [sponge](https://github.com/zhufuyi/sponge) - A distributed development framework that integrates automatic code generation, gin and grpc frameworks, base development frameworks. - [Temporal](https://github.com/temporalio/sdk-go) - Durable execution system for making code fault-tolerant and simple. - [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - [trpc-go](https://github.com/trpc-group/trpc-go) - The Go language implementation of tRPC, which is a pluggable, high-performance RPC framework. From 8201ec0e77b614971ca8f86fdfce6990716aa170 Mon Sep 17 00:00:00 2001 From: Nikita Date: Sat, 27 Jan 2024 22:35:37 +0400 Subject: [PATCH 3234/3440] add go-accumulator (#5151) Co-authored-by: Nikita Terentyev --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92619ba7699..b03fec4b233 100644 --- a/README.md +++ b/README.md @@ -1254,6 +1254,7 @@ _Tools for managing and working with Goroutines._ - [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. - [execpool](https://github.com/hexdigest/execpool) - A pool built around exec.Cmd that spins up a given number of processes in advance and attaches stdin and stdout to them when needed. Very similar to FastCGI or Apache Prefork MPM but works for any command. - [flowmatic](https://github.com/carlmjohnson/flowmatic) - Structured concurrency made easy. +- [go-accumulator](https://github.com/nar10z/go-accumulator) - Solution for accumulation of events and their subsequent processing. - [go-actor](https://github.com/vladopajic/go-actor) - A tiny library for writing concurrent programs using actor model. - [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. - [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. From 7a38915c6dace11e044b18880d46c83cef2e5be1 Mon Sep 17 00:00:00 2001 From: "Dmitry N. Pokidov" <124110+dooman87@users.noreply.github.com> Date: Sun, 28 Jan 2024 05:42:05 +1100 Subject: [PATCH 3235/3440] Added transformimgs to images section (#5154) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b03fec4b233..a3447b964e5 100644 --- a/README.md +++ b/README.md @@ -1390,6 +1390,7 @@ _Libraries for manipulating images._ - [stegify](https://github.com/DimitarPetrov/stegify) - Go tool for LSB steganography, capable of hiding any file within an image. - [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. - [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. +- [transformimgs](https://github.com/Pixboost/transformimgs) - Transformimgs resizes and optimises images for Web using next-generation formats. - [webp-server](https://github.com/mehdipourfar/webp-server) - Simple and minimal image server capable of storing, resizing, converting and caching images. **[⬆ back to top](#contents)** From 0417c70102b15238cc2b2a8cde1f677afa00a3cc Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Sat, 27 Jan 2024 10:54:53 -0800 Subject: [PATCH 3236/3440] Add htree. (#5159) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3447b964e5..0c52d859d1c 100644 --- a/README.md +++ b/README.md @@ -2428,6 +2428,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) - Convert HTML to Markdown. Even works with entire websites and can be extended through rules. - [htmlquery](https://github.com/antchfx/htmlquery) - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression. - [htmlyaml](https://github.com/nikolaydubina/htmlyaml) - Rich rendering of YAML as HTML in Go +- [htree](https://github.com/bobg/htree) - Traverse, navigate, filter, and otherwise process trees of [html.Node](https://pkg.go.dev/golang.org/x/net/html#Node) objects. - [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. - [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). From dcdc39265155a22971f963f47b4a391d88e1a944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20R=C3=BChsen?= Date: Sat, 27 Jan 2024 20:00:22 +0100 Subject: [PATCH 3237/3440] Add go-freelru (#5160) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0c52d859d1c..a5b8e7cab30 100644 --- a/README.md +++ b/README.md @@ -663,6 +663,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. - [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. - [go-cache](https://github.com/viney-shih/go-cache) - A flexible multi-layer Go caching library to deal with in-memory and shared cache by adopting Cache-Aside pattern. +- [go-freelru](https://github.com/elastic/go-freelru) A GC-less, fast and generic LRU hashmap library with optional locking, sharding, eviction and expiration. - [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches. - [gocache](https://github.com/eko/gocache) - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [gocache](https://github.com/yuseferi/gocache) - A data race free Go ache library with high performance and auto pruge functionality From 5570eb586fa25c610175918d9b4b142a2edc53ea Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Sat, 27 Jan 2024 15:21:30 -0800 Subject: [PATCH 3238/3440] Add decouple. (#5179) * Add decouple. * Improve the description of decouple per the suggestion by Sourcery AI (I for one welcome our new robotic code-review overlords). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a5b8e7cab30..a144afebe5e 100644 --- a/README.md +++ b/README.md @@ -3119,6 +3119,7 @@ _Plugin for text editors and IDEs._ ## Go Tools - [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output. +- [decouple](https://github.com/bobg/decouple) - Find “overspecified” function parameters that could be generalized with interface types. - [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. - [docs](https://github.com/go-oas/docs) - Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard. - [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. From 8c0e8cfc4a8caa274b8d2eb821d7636ffcab5364 Mon Sep 17 00:00:00 2001 From: Benjamin Cane Date: Sat, 17 Feb 2024 11:24:24 -0700 Subject: [PATCH 3239/3440] Adding Tarmac (#5205) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a144afebe5e..0bd2bf7fb9d 100644 --- a/README.md +++ b/README.md @@ -959,6 +959,7 @@ _Packages that help with building Distributed Systems._ - [Semaphore](https://github.com/jexia/semaphore) - A straightforward (micro) service orchestrator. - [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)). - [sponge](https://github.com/zhufuyi/sponge) - A distributed development framework that integrates automatic code generation, gin and grpc frameworks, base development frameworks. +- [Tarmac](https://github.com/tarmac-project/tarmac) - Framework for writing functions, microservices, or monoliths with WebAssembly - [Temporal](https://github.com/temporalio/sdk-go) - Durable execution system for making code fault-tolerant and simple. - [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - [trpc-go](https://github.com/trpc-group/trpc-go) - The Go language implementation of tRPC, which is a pluggable, high-performance RPC framework. From cc148def9e11a1664ee9758e446bae07cb87ce86 Mon Sep 17 00:00:00 2001 From: Sasha Savchuk Date: Sun, 18 Feb 2024 23:50:29 +0200 Subject: [PATCH 3240/3440] Add go-tg to Bot Building section (#5208) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0bd2bf7fb9d..be534a5bd00 100644 --- a/README.md +++ b/README.md @@ -289,6 +289,7 @@ _Libraries for building and working with bots._ - [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. - [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go. - [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build a bot for desired chat services including LINE, Slack, Gitter, and more. +- [go-tg](https://github.com/mr-linch/go-tg) - Generated from official docs Go client library for accessing Telegram Bot API, with batteries for building complex bots included. - [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router, and middleware. - [go-twitch-irc](https://github.com/gempir/go-twitch-irc) - Library to write bots for twitch.tv chat - [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges. From 46208166bddf48dec7c55258e6fd7fb4863c742e Mon Sep 17 00:00:00 2001 From: Kuisong Tong Date: Sun, 18 Feb 2024 13:55:41 -0800 Subject: [PATCH 3241/3440] add konf (#5204) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index be534a5bd00..ec3f6601978 100644 --- a/README.md +++ b/README.md @@ -479,6 +479,7 @@ _Libraries for configuration parsing._ - [joshbetz/config](https://github.com/joshbetz/config) - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. - [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. - [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. +- [konf](https://github.com/nil-go/konf) - The simplest API for reading/watching config from file, env, flag and clouds (e.g. AWS, Azure, GCP). - [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era. - [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (successor to `kingpin`). - [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. From 5331d2b0f5bfb41bbbbc73b5db85d76f90634401 Mon Sep 17 00:00:00 2001 From: andreis <1249760+andreis@users.noreply.github.com> Date: Sun, 18 Feb 2024 21:57:06 +0000 Subject: [PATCH 3242/3440] luontola/gospec has been dead for 12 years (#5193) https://github.com/luontola/gospec > NOTICE: GoSpec has not been developed for quite some time, but there is a new testing framework called GoConvey which was inspired by GoSpec and does the same things plus much more. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index ec3f6601978..cc66153f091 100644 --- a/README.md +++ b/README.md @@ -2339,7 +2339,6 @@ _Libraries for testing codebases and generating test data._ - [gomatch](https://github.com/jfilipczyk/gomatch) - library created for testing JSON against patterns. - [gomega](https://onsi.github.io/gomega/) - Rspec like matcher/assertion library. - [Gont](https://github.com/stv0g/gont) - Go network testing toolkit for testing building complex network topologies using Linux namespaces. - - [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. - [got](https://github.com/ysmood/got) - An enjoyable golang test framework. From 7e73d81f75b64fc6f58e1cd78031fd0fd2166102 Mon Sep 17 00:00:00 2001 From: Marko Kungla Date: Sun, 18 Feb 2024 23:58:37 +0200 Subject: [PATCH 3243/3440] fix: bexp repo url in readme (#5192) Signed-off-by: Marko Kungla --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cc66153f091..8c590c171ea 100644 --- a/README.md +++ b/README.md @@ -1733,7 +1733,7 @@ _**Unofficial** set of patterns for structuring projects._ _Libraries for working with strings._ -- [bexp](https://github.com/happy-sdk/happy-go/tree/main/strings/bexp) - Go implementation of Brace Expansion mechanism to generate arbitrary strings. +- [bexp](https://github.com/happy-sdk/happy/tree/main/pkg/strings/bexp) - Go implementation of Brace Expansion mechanism to generate arbitrary strings. - [caps](https://github.com/chanced/caps) - A case conversion library. - [go-formatter](https://gitlab.com/tymonx/go-formatter) - Implements **replacement fields** surrounded by curly braces `{}` format strings. - [gobeam/Stringy](https://github.com/gobeam/Stringy) - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. From 5aa68b12ecbffa412f8a5c9992bfa8a0fbe5cb46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E5=8F=AF?= Date: Mon, 19 Feb 2024 06:08:20 +0800 Subject: [PATCH 3244/3440] Add go-kod (#5203) * Add go-kod * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8c590c171ea..e6378a3358b 100644 --- a/README.md +++ b/README.md @@ -1701,6 +1701,7 @@ _Libraries for working with dependency injection._ - [google/wire](https://github.com/google/wire) - Automated Initialization in Go. - [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility. - [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. +- [kod](https://github.com/go-kod/kod) - A generics based dependency injection framework for Go. - [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. - [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, http endpoints, and service startup. - [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. From f10eed1698b0e20099c91225dc22d6f7134ef4d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20W=C3=BCstenberg?= Date: Sun, 18 Feb 2024 23:16:27 +0100 Subject: [PATCH 3245/3440] Add gomponents to Template Engines (#5202) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds gomponents to the list of template engines. I've added a compoment example directly in the description, which I think is both informative and a bit fun. 😊 If that's frowned upon, I'd be happy to create a more traditional description. > Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! **Please provide package links to:** - repo link (github.com, gitlab.com, etc): https://github.com/maragudk/gomponents - pkg.go.dev: https://pkg.go.dev/github.com/maragudk/gomponents - goreportcard.com: https://goreportcard.com/report/github.com/maragudk/gomponents - coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), etc.): https://app.codecov.io/gh/maragudk/gomponents **Note**: _that new categories can be added only when there are 3 packages or more._ **Make sure that you've checked the boxes below that apply before you submit PR.** _Not every repository (project) will require every option, but most projects should. Check the Contribution Guidelines for details._ - [X] The package has been added to the list in alphabetical order. - [X] The package has an appropriate description with correct grammar. - [X] As far as I know, the package has not been listed here before. - [X] The repo documentation has a pkg.go.dev link. - [X] The repo documentation has a coverage service link. - [X] The repo documentation has a goreportcard link. - [X] The repo has a version-numbered release and a go.mod file. - [X] I have read the [Contribution Guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#contribution-guidelines), [Maintainers Note](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#maintainers) and [Quality Standards](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards). - [X] The repo has a continuous integration process that automatically runs tests that must pass before new pull requests are merged. - [X] Continuous integration is used to attempt to catch issues prior to releasing this package to end-users. Thanks for your PR, you're awesome! :+1: --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6378a3358b..c83944ddf44 100644 --- a/README.md +++ b/README.md @@ -2276,6 +2276,7 @@ _Libraries and tools for templating and lexing._ - [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. - [extemplate](https://github.com/dannyvankooten/extemplate) - Tiny wrapper around html/template to allow for easy file-based template inheritance. - [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). +- [gomponents](https://www.gomponents.com) - HTML 5 components in pure Go, that look something like this: `func(name string) g.Node { return Div(Class("headline"), g.Textf("Hi %v!", name)) }`. - [gospin](https://github.com/m1/gospin) - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations. - [got](https://github.com/goradd/got) - A Go code generator inspired by Hero and Fasttemplate. Has include files, custom tag definitions, injected Go code, language translation, and more. - [goview](https://github.com/foolin/goview) - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. From 2dbc817fbdf66854306a295265c260221338c112 Mon Sep 17 00:00:00 2001 From: Jonathan VUILLEMIN Date: Sun, 18 Feb 2024 23:21:41 +0100 Subject: [PATCH 3246/3440] Add Yokai (#5194) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c83944ddf44..74e45076098 100644 --- a/README.md +++ b/README.md @@ -2930,6 +2930,7 @@ _Full stack web frameworks._ - [vox](https://github.com/aisk/vox) - A golang web framework for humans, inspired by Koa heavily. - [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc). - [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. +- [Yokai](https://github.com/ankorstore/yokai) - Simple, modular, and observable Go framework for backend applications. **[⬆ back to top](#contents)** From e9dda1893337b64ef557968b2544cd3ead1d762e Mon Sep 17 00:00:00 2001 From: kcmvp <7655276+kcmvp@users.noreply.github.com> Date: Mon, 19 Feb 2024 06:31:20 +0800 Subject: [PATCH 3247/3440] Add gob (#5181) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74e45076098..f993149d4b0 100644 --- a/README.md +++ b/README.md @@ -321,6 +321,7 @@ _Libraries and tools help with build automation._ - [anko](https://github.com/GuilhermeCaruso/anko) - Simple application watcher for multiple programming languages. - [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. - [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. +- [gob](https://github.com/kcmvp/gob) - [Gradle](https://docs.gradle.org/)/[Maven](https://maven.apache.org/) like build tool for Go projects. - [goyek](https://github.com/goyek/goyek) - Create build pipelines in Go. - [mage](https://github.com/magefile/mage) - Mage is a make/rake-like build tool using Go. - [mmake](https://github.com/tj/mmake) - Modern Make. From 45d76e7a04a8cf926fc858ca856cd782bcc10666 Mon Sep 17 00:00:00 2001 From: Zhao vistart Date: Mon, 19 Feb 2024 06:35:49 +0800 Subject: [PATCH 3248/3440] Add `go-dag` (#5187) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f993149d4b0..a970b57400c 100644 --- a/README.md +++ b/README.md @@ -1429,6 +1429,7 @@ _Libraries for scheduling jobs._ - [cronticker](https://github.com/krayzpipes/cronticker) - A ticker implementation to support cron schedules. - [Dagu](https://github.com/dagu-go/dagu) - No-code workflow executor. it executes DAGs defined in a simple YAML format. - [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-dag](https://github.com/rhosocial/go-dag) - A framework developed in Go that manages the execution of workflows described by directed acyclic graphs. - [go-quartz](https://github.com/reugn/go-quartz) - Simple, zero-dependency scheduling library for Go. - [gocron](https://github.com/go-co-op/gocron) - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). - [goflow](https://github.com/fieldryand/goflow) - A simple but powerful DAG scheduler and dashboard. From 9936bf68f3eda4b52933e253ceaf047d69da5930 Mon Sep 17 00:00:00 2001 From: fogfish Date: Mon, 19 Feb 2024 00:40:25 +0200 Subject: [PATCH 3249/3440] Add dynamo - key-value abstraction over AWS services (#5185) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a970b57400c..ed702dc7956 100644 --- a/README.md +++ b/README.md @@ -809,6 +809,7 @@ _Libraries for building and using SQL._ - [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. +- [dynamo](https://github.com/fogfish/dynamo) - A simple key-value abstraction to store algebraic and linked-data data types at AWS storage services: AWS DynamoDB and AWS S3. - [go-transaction-manager](https://github.com/avito-tech/go-transaction-manager) - Transaction manager with multiple adapters (sql, sqlx, gorm, mongo, ...) controls transaction boundaries. - [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more). From 84cf98380a21c81ea917c7c4baaecb7b079601a0 Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Sun, 18 Feb 2024 14:41:52 -0800 Subject: [PATCH 3250/3440] Add encid. (#5184) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed702dc7956..a643723b815 100644 --- a/README.md +++ b/README.md @@ -2171,6 +2171,7 @@ _Libraries that are used to help make your application more secure._ - [CertMagic](https://github.com/caddyserver/certmagic) - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal. - [Coraza](https://github.com/corazawaf/coraza) - Enterprise-ready, modsecurity and OWASP CRS compatible WAF library. - [dongle](https://github.com/golang-module/dongle) - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption. +- [encid](https://github.com/bobg/encid) - Encode and decode encrypted integer IDs. - [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server. - [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library. - [go-htpasswd](https://github.com/tg123/go-htpasswd) - Apache htpasswd Parser for Go. From 94bd0bda3fb87f28d83a92b59ba137086d474b30 Mon Sep 17 00:00:00 2001 From: Igor Sokolenko Date: Mon, 19 Feb 2024 01:46:26 +0300 Subject: [PATCH 3251/3440] add gomemcached (#5182) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a643723b815..4f1f38ab1e5 100644 --- a/README.md +++ b/README.md @@ -849,6 +849,7 @@ _Libraries for building and using SQL._ - [godis](https://github.com/piaohao/godis) - redis client implement by golang, inspired by jedis. - [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. - [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language. +- [gomemcached](https://github.com/aliexpressru/gomemcached) - A binary Memcached client for Go with support for sharding using consistent hashing, along with SASL. - [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB. - [goriak](https://github.com/zegl/goriak) - Go language driver for Riak KV. - [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. From 0f03bfb0d0794232ea727a8849822d36e20e7f7f Mon Sep 17 00:00:00 2001 From: Thomas Poignant Date: Mon, 19 Feb 2024 15:44:15 +0100 Subject: [PATCH 3252/3440] Update README.md (#5209) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4f1f38ab1e5..c82db610a54 100644 --- a/README.md +++ b/README.md @@ -2244,7 +2244,7 @@ _Libraries and tools for binary serialization._ - [Fider](https://github.com/getfider/fider) - Fider is an open platform to collect and organize customer feedback. - [Flagr](https://github.com/checkr/flagr) - Flagr is an open-source feature flagging and A/B testing service. - [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js -- [go-feature-flag](https://github.com/thomaspoignant/go-feature-flag) - A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. +- [go-feature-flag](https://github.com/thomaspoignant/go-feature-flag) - A simple, complete and lightweight self-hosted feature flag solution 100% Open Source. - [go-proxy-cache](https://github.com/fabiocicerchia/go-proxy-cache) - Simple Reverse Proxy with Caching, written in Go, using Redis. - [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. - [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. From 93aaa177760808fbfdc7792735db26693be82052 Mon Sep 17 00:00:00 2001 From: cosban Date: Sun, 25 Feb 2024 17:14:57 -0700 Subject: [PATCH 3253/3440] add cosban/di to the depenency injection category (#5140) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c82db610a54..16ef72adc4f 100644 --- a/README.md +++ b/README.md @@ -1692,6 +1692,7 @@ _Libraries for working with dependency injection._ - [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. - [boot-go](http://github.com/boot-go/boot) - Component-based development with dependency injection using reflections for Go developers. +- [cosban/di](https://gitlab.com/cosban/di) - A code generation based dependency injection wiring tool. - [di](https://github.com/goava/di) - A dependency injection container for go programming language. - [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. - [dingo](https://github.com/i-love-flamingo/dingo) - A dependency injection toolkit for Go, based on Guice. From 771c12af0856b2a1ee9af1660c956fe98a97c434 Mon Sep 17 00:00:00 2001 From: Saleh Rahimzadeh <6342081+saleh-rahimzadeh@users.noreply.github.com> Date: Mon, 26 Feb 2024 03:48:12 +0330 Subject: [PATCH 3254/3440] Add go-words (#5141) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 16ef72adc4f..9c699ae9c67 100644 --- a/README.md +++ b/README.md @@ -1873,6 +1873,7 @@ See also [Text Processing](#text-processing) and [Text Analysis](#text-analysis) - [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. - [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. - [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. +- [go-words](https://github.com/saleh-rahimzadeh/go-words) - A words table and text resource library for Golang projects. - [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. - [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. - [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. From 4750aac2f9655bfe972234300a8d214453bc52a8 Mon Sep 17 00:00:00 2001 From: Aurelie Vache Date: Mon, 26 Feb 2024 02:02:18 +0100 Subject: [PATCH 3255/3440] readme: add go in a visual way (#5212) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c699ae9c67..ed2f48b3574 100644 --- a/README.md +++ b/README.md @@ -3621,6 +3621,7 @@ _Add the group of your city/country here (send **PR**)_ - [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs. - [Scaling Go Applications](https://betterstack.com/community/guides/scaling-go/) - Everything about building, deploying and scaling Go applications in production. - [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) +- [Understanding Go in a visual way](https://dev.to/aurelievache/series/26234) - Learn Go visually - [W3basic Go Tutorials](https://www.w3basic.com/golang/) - W3Basic provides an in-depth tutorial and well-organized content to learn Golang programming. - [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers. - [Your basic Go](https://yourbasic.org/golang) - Huge collection of tutorials and how to's. From e486106d9d24b692eafc9c246e6819495cf88cdd Mon Sep 17 00:00:00 2001 From: Deatil <2217957370@qq.com> Date: Mon, 26 Feb 2024 09:42:25 +0800 Subject: [PATCH 3256/3440] add go-datebin (#5163) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed2f48b3574..0e65de6d41d 100644 --- a/README.md +++ b/README.md @@ -891,6 +891,7 @@ _Libraries for working with dates and times._ - [durafmt](https://github.com/hako/durafmt) - Time duration formatting library for Go. - [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving... - [go-anytime](https://github.com/ijt/go-anytime) - Parse dates/times like "next dec 22nd at 3pm" and ranges like "from today until next thursday" without knowing the format in advance. +- [go-datebin](https://github.com/deatil/go-datebin) - A simple datetime parse pkg. - [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). - [go-str2duration](https://github.com/xhit/go-str2duration) - Convert string to duration. Support time.Duration returned string and more. - [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location. From cfc198ed949bbf3f66e8b38690734d8401bc9e64 Mon Sep 17 00:00:00 2001 From: whoops <35476126+wzlove@users.noreply.github.com> Date: Mon, 26 Feb 2024 09:45:10 +0800 Subject: [PATCH 3257/3440] add gabs (#5188) For parsing, creating and editing unknown or dynamic JSON in Go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0e65de6d41d..3f68ff0479c 100644 --- a/README.md +++ b/README.md @@ -1457,6 +1457,7 @@ _Libraries for working with JSON._ - [ej](https://github.com/lucassscaravelli/ej) - Write and read JSON from different sources succinctly. - [epoch](https://github.com/vtopc/epoch) - Contains primitives for marshaling/unmarshalling Unix timestamp/epoch to/from build-in time.Time type in JSON. - [fastjson](https://github.com/valyala/fastjson) - Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection. +- [gabs](https://github.com/Jeffail/gabs) - For parsing, creating and editing unknown or dynamic JSON in Go. - [gjo](https://github.com/skanehira/gjo) - Small utility to create JSON objects. - [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. - [go-jsonerror](https://github.com/ddymko/go-jsonerror) - Go-JsonError is meant to allow us to easily create json response errors that follow the JsonApi spec. From b361ab8715406fe28000aee4fc04b316b04c5724 Mon Sep 17 00:00:00 2001 From: Franco Liberali Date: Sun, 25 Feb 2024 22:54:07 -0300 Subject: [PATCH 3258/3440] add cql (#5150) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f68ff0479c..f0d8c345dc0 100644 --- a/README.md +++ b/README.md @@ -2013,6 +2013,7 @@ _Libraries that implement Object-Relational Mapping or datamapping techniques._ - [bun](https://github.com/uptrace/bun) - SQL-first Golang ORM. Successor of go-pg. - [cacheme](https://github.com/Yiling-J/cacheme-go) - Schema based, typed Redis caching/memoize framework for Go. +- [CQL](https://github.com/FrancoLiberali/cql) - Built on top of GORM, adds compile-time verified queries based on auto-generated code. - [ent](https://github.com/facebook/ent) - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. - [go-dbw](https://github.com/hashicorp/go-dbw) - A simple package that encapsulates database operations. - [go-firestorm](https://github.com/jschoedt/go-firestorm) - A simple ORM for Google/Firebase Cloud Firestore. From 0b5c0c74f3a714478af2fff19794b10c6d5d28cd Mon Sep 17 00:00:00 2001 From: Radosvet M Date: Mon, 26 Feb 2024 04:01:31 +0200 Subject: [PATCH 3259/3440] Add Gosemble (#5210) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0d8c345dc0..ca09b4be915 100644 --- a/README.md +++ b/README.md @@ -272,6 +272,7 @@ _Tools for building blockchains._ - [cometbft](https://github.com/cometbft/cometbft) - A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. It is a fork of Tendermint Core and implements the Tendermint consensus algorithm. - [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem. - [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol. +- [gosemble](https://github.com/LimeChain/gosemble) - A Go-based framework for building Polkadot/Substrate-compatible runtimes. - [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host. - [kubo](https://github.com/ipfs/kubo) - A blockchain framework implemented in Go. It provides content-addressable storage which can be used for decentralized storage in DApps. It is based on the IPFS protocol. - [solana-go](https://github.com/gagliardetto/solana-go) - Go library to interface with Solana JSON RPC and WebSocket interfaces. From c9da47a796c12aa0243aafab5a83be1926243f67 Mon Sep 17 00:00:00 2001 From: oliverpool <3864879+oliverpool@users.noreply.github.com> Date: Tue, 27 Feb 2024 19:13:56 +0100 Subject: [PATCH 3260/3440] Remove godoc.org references (#5219) * remove github.com/posener/tarfs - has not been updated for 7 years. - implements the github.com/kr/fs#FileSystem (and not the stdlib io.FS interface), package which has been replaced by kr.dev/walk * Cleanup godoc.org - remove package with no tagged version - update documentation link to pkg.go.dev for maintained libraries * adjust pkg.go.dev position * gowalker.org does not serve Go content --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ca09b4be915..a99004c14f6 100644 --- a/README.md +++ b/README.md @@ -1092,7 +1092,6 @@ _Libraries for handling files and file systems._ - [pdfcpu](https://github.com/pdfcpu/pdfcpu) - PDF processor. - [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. - [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. -- [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files. - [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [_todo.txt_](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [_todo.txt_ format](https://github.com/todotxt/todo.txt). - [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. @@ -2169,7 +2168,7 @@ _Libraries that are used to help make your application more secure._ - [age](https://github.com/FiloSottile/age) - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. - [argon2-hashing](https://github.com/andskur/argon2-hashing) - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package. - [argon2pw](https://github.com/raja/argon2pw) - Argon2 password hash generation with constant-time password comparison. -- [autocert](https://godoc.org/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. +- [autocert](https://pkg.go.dev/golang.org/x/crypto/acme/autocert) - Auto provision Let's Encrypt certificates and start a TLS server. - [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. - [beelzebub](https://github.com/mariocandela/beelzebub) - A secure low code honeypot framework, leveraging AI for System Virtualization. - [booster](https://github.com/anatol/booster) - Fast initramfs generator with full-disk encryption support. @@ -2368,7 +2367,6 @@ _Libraries for testing codebases and generating test data._ - [testcontainers-go](https://github.com/testcontainers/testcontainers-go) - A Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done. - [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. - - [testmd](https://godoc.org/github.com/tvastar/test/cmd/testmd) - Convert markdown snippets into testable go code. - [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. - [testza](https://github.com/MarvinJWendt/testza) - Full-featured test framework with nice colorized output. - [trial](https://github.com/jgroeneveld/trial) - Quick and easy extendable assertions without introducing much boilerplate. @@ -2436,7 +2434,6 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [bafi](https://github.com/mmalcek/bafi) - Universal JSON, BSON, YAML, XML translator to ANY format using templates. - [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. -- [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-output-format](https://github.com/drewstinnett/go-output-format) - Output go structures into multiple formats (YAML/JSON/etc) in your command line app. - [go-toml](https://github.com/pelletier/go-toml) - Go library for the TOML format with query support and handy cli tools. - [goldmark](https://github.com/yuin/goldmark) - A Markdown parser written in Go. Easy to extend, standard (CommonMark) compliant, well structured. @@ -3069,7 +3066,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [go-mod-outdated](https://github.com/psampaz/go-mod-outdated) - An easy way to find outdated dependencies of your Go projects. - [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages. - [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. -- [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. +- [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. - [golang-ifood-sdk](https://github.com/arxdsilva/golang-ifood-sdk) - iFood API SDK. - [golangci-lint](https://github.com/golangci/golangci-lint) – A fast Go linters runner. It runs linters in parallel, uses caching, supports `yaml` config, has integrations with all major IDE and has dozens of linters included. - [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. @@ -3555,7 +3552,6 @@ _Add the group of your city/country here (send **PR**)_ - [Go Report Card](https://goreportcard.com) - A report card for your Go package. - [go.dev](https://go.dev/) - A hub for Go developers. - [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. -- [godoc.org](https://godoc.org/) - Documentation for open source Go packages. - [Golang Developer Jobs](https://golangjob.xyz) - Developer Jobs exclusively for Golang related Roles. - [Golang Flow](https://golangflow.io) - Post Updates, News, Packages and more. - [Golang News](https://golangnews.com) - Links and news about Go programming. @@ -3566,11 +3562,11 @@ _Add the group of your city/country here (send **PR**)_ - [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. - [Gopher Community Chat](https://invite.slack.golangbridge.org) - Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)). - [Gophercises](https://gophercises.com/) - Free coding exercises for budding gophers. -- [gowalker.org](https://gowalker.org) - Go Project API documentation. - [json2go](https://m-zajac.github.io/json2go) - Advanced JSON to Go struct conversion - online tool. - [justforfunc](https://www.youtube.com/c/justforfunc) - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc). - [Learn Go Programming](https://blog.learngoprogramming.com) - Learn Go concepts with illustrations. - [Made with Golang](https://madewithgolang.com/?ref=awesome-go) +- [pkg.go.dev](https://pkg.go.dev/) - Documentation for open source Go packages. - [r/Golang](https://www.reddit.com/r/golang) - News about Go. - [studygolang](https://studygolang.com) - The community of studygolang in China. - [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. From 8ae37f6fbc8822a86ca4aaacdbc1373196061ae1 Mon Sep 17 00:00:00 2001 From: Aleksei Sviridkin <3811295@gmail.com> Date: Thu, 29 Feb 2024 08:03:35 +0400 Subject: [PATCH 3261/3440] remove go-astilectron coz depricated (#5221) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a99004c14f6..287a85f6993 100644 --- a/README.md +++ b/README.md @@ -1311,7 +1311,6 @@ _Toolkits_ - [energy](https://github.com/energye/energy) - Cross-platform based on LCL(Native System UI Control Library) and CEF(Chromium Embedded Framework) (Windows/ macOS / Linux) - [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. - [gio](https://gioui.org) - Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly. -- [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron). - [go-gtk](https://mattn.github.io/go-gtk/) - Go bindings for GTK. - [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. - [Goey](https://bitbucket.org/rj/goey/src/master/) - Cross platform UI toolkit aggregator for Windows / Linux / Mac. GTK, Cocoa, Windows API From d5bc92454ebb5b0fedb64a48a7f623a627cdcdbf Mon Sep 17 00:00:00 2001 From: oliverpool <3864879+oliverpool@users.noreply.github.com> Date: Thu, 29 Feb 2024 05:21:42 +0100 Subject: [PATCH 3262/3440] Add code.pfad.fr/swift (#5218) * Add code.pfad.fr/swift * Update README.md * learn the alphabet... --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 287a85f6993..a36609bb7ac 100644 --- a/README.md +++ b/README.md @@ -1120,6 +1120,7 @@ _Packages for accounting and finance._ - [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang. - [payme](https://github.com/jovandeginste/payme) - QR code generator (ASCII & PNG) for SEPA payments. - [sleet](https://github.com/BoltApp/sleet) - One unified interface for multiple Payment Service Providers (PsP) to process online payment. +- [swift](https://code.pfad.fr/swift/) - Offline validity check of IBAN (International Bank Account Number) and retrieval of BIC (for some countries). - [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies. - [ticker](https://github.com/achannarasappa/ticker) - Terminal stock watcher and stock position tracker. - [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode. From 265afd9a40bbb437e0b096a9dbb41d4453adfafb Mon Sep 17 00:00:00 2001 From: oliverpool <3864879+oliverpool@users.noreply.github.com> Date: Fri, 1 Mar 2024 13:55:14 +0100 Subject: [PATCH 3263/3440] Remove unmaintained "telemetry" projects (#5224) --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index a36609bb7ac..02e00d3168f 100644 --- a/README.md +++ b/README.md @@ -1947,7 +1947,6 @@ _Libraries for working with various layers of the network._ - [netpoll](https://github.com/cloudwego/netpoll) - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance. - [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). - [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. -- [panoptes-stream](https://github.com/yahoo/panoptes-stream) - A cloud native distributed streaming network telemetry (gNMI, Juniper JTI and Cisco MDT). - [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast. - [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). @@ -3308,7 +3307,6 @@ _Software written in Go._ - [scc](https://github.com/boyter/scc) - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates. - [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. - [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). -- [snap](https://github.com/intelsdi-x/snap) - Powerful telemetry framework. - [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. - [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. - [stew](https://github.com/marwanhawari/stew) - An independent package manager for compiled binaries. From 5ab2f0ca8096413b84db52191b63f3f9417a4509 Mon Sep 17 00:00:00 2001 From: "Firas M. Darwish" <1930361+firasdarwish@users.noreply.github.com> Date: Mon, 4 Mar 2024 00:00:23 +0300 Subject: [PATCH 3264/3440] add ore package (#5211) Co-authored-by: Firas Darwish --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 02e00d3168f..61f97c94cdc 100644 --- a/README.md +++ b/README.md @@ -1711,6 +1711,7 @@ _Libraries for working with dependency injection._ - [kod](https://github.com/go-kod/kod) - A generics based dependency injection framework for Go. - [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support. - [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, http endpoints, and service startup. +- [ore](https://github.com/firasdarwish/ore) - Lightweight, generic & simple dependency injection (DI) container. - [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang. **[⬆ back to top](#contents)** From f9f4778731e2df5550841e2271756b2e893bb9ec Mon Sep 17 00:00:00 2001 From: Hariharan Date: Mon, 4 Mar 2024 02:37:43 +0530 Subject: [PATCH 3265/3440] Add dot (#5137) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 61f97c94cdc..98e881fa2b1 100644 --- a/README.md +++ b/README.md @@ -504,6 +504,7 @@ _Libraries for configuration parsing._ _Tools for help with continuous integration._ - [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. +- [dot](https://github.com/opnlabs/dot) - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages. - [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. - [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. - [go-fuzz-action](https://github.com/jidicula/go-fuzz-action) - Use Go 1.18's built-in fuzz testing in GitHub Actions. From ca8183108ff7f9436f3c4f826c26acfcc0403648 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Sun, 3 Mar 2024 14:14:14 -0700 Subject: [PATCH 3266/3440] docs: Update README.md with go-lambda-cleanup (#5122) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 98e881fa2b1..a1895cdb19e 100644 --- a/README.md +++ b/README.md @@ -2682,6 +2682,7 @@ _General utilities and tools to make your life easier._ - [go-funk](https://github.com/thoas/go-funk) - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...). - [go-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. - [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. +- [go-lambda-cleanup](https://github.com/karl-cardenas-coding/go-lambda-cleanup) - A CLI for removing unused or previous versions of AWS Lambdas. - [go-lock](https://github.com/viney-shih/go-lock) - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation. - [go-pattern-match](https://github.com/PhakornKiong/go-pattern-match) - A Pattern matching library inspired by ts-pattern. - [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. From fe47c536bed8a6bcf59bee94e91dfa68e1788324 Mon Sep 17 00:00:00 2001 From: oldme <45782393+oldme-git@users.noreply.github.com> Date: Wed, 6 Mar 2024 19:56:12 +0800 Subject: [PATCH 3267/3440] update description of goframe (#5230) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1895cdb19e..f2ec0d10d5c 100644 --- a/README.md +++ b/README.md @@ -2907,7 +2907,7 @@ _Full stack web frameworks._ - [Goa](https://github.com/goadesign/goa) - Goa provides a holistic approach for developing remote APIs and microservices in Go. - [goa](https://github.com/goa-go/goa) - goa is just like koajs for golang, it is a flexible, light, high-performance and extensible web framework based on middleware. - [GoFr](https://github.com/gofr-dev/gofr) - Gofr is an opinionated microservice development framework. -- [GoFrame](https://github.com/gogf/gf) - GoFrame is a modular, full-featured and production-ready application development framework of golang. +- [GoFrame](https://github.com/gogf/gf) - GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang. - [golamb](https://github.com/twharmon/golamb) - Golamb makes it easier to write API endpoints for use with AWS Lambda and API Gateway. - [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. - [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. From 78fb932a22353507d4324ed19b264455ea73c33f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stjepan=20Jurekovi=C4=87?= Date: Thu, 7 Mar 2024 02:20:12 +0100 Subject: [PATCH 3268/3440] Added Go in Practice, Second Edition (#5231) Hi, Stjepan from Manning here. I thought this title might be a good match for your list. Thank you for considering it. Best, --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f2ec0d10d5c..1aa9f5d5233 100644 --- a/README.md +++ b/README.md @@ -3385,6 +3385,7 @@ _Where to discover new Go libraries._ - [Effective Go: Elegant, efficient, and testable code](https://www.manning.com/books/effective-go) - Unlock Go’s unique perspective on program design, and start writing simple, maintainable, and testable Go code. - [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. - [Go Faster](https://leanpub.com/gofaster) - This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster. +- [Go in Practice, Second Edition](https://www.manning.com/books/go-in-practice-second-edition) - Your practical guide on the ins-and-outs of Go development, covering the standard library and the most important tools from Go’s powerful ecosystem. - [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - A guide to understanding and using generics in Go. - [Lets-Go](https://lets-go.alexedwards.net) - A step-by-step guide to creating fast, secure and maintanable web applications with Go. - [Lets-Go-Further](https://lets-go-further.alexedwards.net) - Advanced patterns for building APIs and web applications in Go. From e5228d703014f405a28961f5d990569ef46f7821 Mon Sep 17 00:00:00 2001 From: oliverpool <3864879+oliverpool@users.noreply.github.com> Date: Fri, 8 Mar 2024 10:44:25 +0100 Subject: [PATCH 3269/3440] Refactor PR template: hint to curate packages around the submission (#5233) * refactor PR template * typo --- .github/PULL_REQUEST_TEMPLATE.md | 44 +++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 12487a1cd9e..860db5d261c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,26 +1,40 @@ -> Please check if what you want to add to `awesome-go` list meets [quality standards](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards) before sending pull request. Thanks! +## We want to ensure high quality of the packages. Make sure that you've checked the boxes below before sending a pull request. -**Please provide package links to:** +- [ ] I have read the [Contribution Guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#contribution-guidelines) +- [ ] I have read the [Maintainers Note](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#maintainers) +- [ ] I have read the [Quality Standards](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards) -- repo link (github.com, gitlab.com, etc): -- pkg.go.dev: -- goreportcard.com: -- coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), etc.): - -**Note**: _that new categories can be added only when there are 3 packages or more._ - -**Make sure that you've checked the boxes below that apply before you submit PR.** _Not every repository (project) will require every option, but most projects should. Check the Contribution Guidelines for details._ -- [ ] The package has been added to the list in alphabetical order. -- [ ] The package has an appropriate description with correct grammar. -- [ ] As far as I know, the package has not been listed here before. - [ ] The repo documentation has a pkg.go.dev link. - [ ] The repo documentation has a coverage service link. - [ ] The repo documentation has a goreportcard link. - [ ] The repo has a version-numbered release and a go.mod file. -- [ ] I have read the [Contribution Guidelines](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#contribution-guidelines), [Maintainers Note](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#maintainers) and [Quality Standards](https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md#quality-standards). - [ ] The repo has a continuous integration process that automatically runs tests that must pass before new pull requests are merged. - [ ] Continuous integration is used to attempt to catch issues prior to releasing this package to end-users. -Thanks for your PR, you're awesome! :+1: +## Please provide some links to your package to ease the review + +- [ ] forge link (github.com, gitlab.com, etc): +- [ ] pkg.go.dev: +- [ ] goreportcard.com: +- [ ] coverage service link ([codecov](https://codecov.io/), [coveralls](https://coveralls.io/), etc.): + +## Pull Request content + +- [ ] The package has been added to the list in alphabetical order. +- [ ] The package has an appropriate description with correct grammar. +- [ ] As far as I know, the package has not been listed here before. + +## Category quality + +_Note that new categories can be added only when there are 3 packages or more._ + +Packages added a long time ago might not meet the current guidelines anymore. It would be very helpful if you could check 3-5 packages above and below your submission to ensure that they also still meet the Quality Standards. + +Please delete one of the following lines: + +- [ ] The packages around my addition still meet the Quality Standards. +- [ ] I removed the following packages around my addition: (please give a short reason for each removal) + +Thanks for your PR, you're awesome! :sunglasses: From d55f073b5d3b0e879ea26e3f4504b3e563522785 Mon Sep 17 00:00:00 2001 From: Samy Fodil <76626119+samyfodil@users.noreply.github.com> Date: Fri, 8 Mar 2024 16:09:54 -0600 Subject: [PATCH 3270/3440] Added github.com/taubyte/tau to the DevOps category (#5234) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1aa9f5d5233..fb9cbbbb6a7 100644 --- a/README.md +++ b/README.md @@ -3241,6 +3241,7 @@ _Software written in Go._ - [sg](https://github.com/ChristopherRabotin/sg) - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the response code and data between each call for specific server stress based on its previous response. - [skm](https://github.com/TimothyYe/skm) - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! - [StatusOK](https://github.com/sanathp/statusok) - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. +- [tau](https://github.com/taubyte/tau) - Easily build Cloud Computing Platforms with features like Serverless WebAssembly Functions, Frontend Hosting, CI/CD, Object Storage, K/V Database, and Pub-Sub Messaging. - [terraform-provider-openapi](https://github.com/dikhan/terraform-provider-openapi) - Terraform provider plugin that dynamically configures itself at runtime based on an OpenAPI document (formerly known as swagger file) containing the definitions of the APIs exposed. - [tf-profile](https://github.com/datarootsio/tf-profile) - Profiler for Terraform runs. Generate global stats, resource-level stats or visualizations. - [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. From 444006c18a5598909b9c1546b7041a5599829fae Mon Sep 17 00:00:00 2001 From: Maria Ines Parnisari Date: Sat, 9 Mar 2024 07:41:19 -0800 Subject: [PATCH 3271/3440] add openfga (#5223) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb9cbbbb6a7..98298b50a60 100644 --- a/README.md +++ b/README.md @@ -250,6 +250,7 @@ _Libraries for implementing authentication schemes._ - [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam. - [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support. - [oidc](https://github.com/zitadel/oidc) - Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation +- [openfga](https://github.com/openfga/openfga) - Implementation of fine-grained authorization based on the "Zanzibar: Google's Consistent, Global Authorization System" paper. Backed by [CNCF](https://www.cncf.io/). - [osin](https://github.com/openshift/osin) - Golang OAuth2 server library. - [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes. - [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. From 10c398c1ca77294dbec0fcf91a19931f9dc4c763 Mon Sep 17 00:00:00 2001 From: naison <895703375@qq.com> Date: Sat, 9 Mar 2024 23:44:13 +0800 Subject: [PATCH 3272/3440] Add kubevpn (#5114) * Add kubevpn * Rename org --------- Co-authored-by: fengcaiwen --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 98298b50a60..8c71a61215b 100644 --- a/README.md +++ b/README.md @@ -3220,6 +3220,7 @@ _Software written in Go._ - [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. - [kubeshark](https://github.com/kubeshark/kubeshark) - API traffic analyzer for Kubernetes, inspired by Wireshark, purposely built for Kubernetes. - [KubeVela](https://github.com/kubevela/kubevela) - Cloud native application delivery. +- [kubevpn](https://github.com/kubenetworks/kubevpn) - VPN tools to connect kubernetes cluster network and proxy workloads inbound traffic to local PC with service mesh. - [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly. - [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. - [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. From a2e788d3f288cdf42e02e44493ead4e31d2efac7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 21:31:28 -0300 Subject: [PATCH 3273/3440] Bump google.golang.org/protobuf from 1.31.0 to 1.33.0 (#5246) Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 96056e72a63..ea59eae96c1 100644 --- a/go.mod +++ b/go.mod @@ -18,5 +18,5 @@ require ( golang.org/x/sys v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) diff --git a/go.sum b/go.sum index 17b016bd363..90f8bf8a843 100644 --- a/go.sum +++ b/go.sum @@ -64,5 +64,5 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= From 517202809680953bc9ffb2f74a779dca8d89443e Mon Sep 17 00:00:00 2001 From: Clayton Kehoe <118750525+kehoecj@users.noreply.github.com> Date: Fri, 15 Mar 2024 10:49:40 -0500 Subject: [PATCH 3274/3440] Adding config-file-validator (#5079) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8c71a61215b..f4b108b7101 100644 --- a/README.md +++ b/README.md @@ -2644,6 +2644,7 @@ _General utilities and tools to make your life easier._ - [clockwork](https://github.com/jonboulle/clockwork) - A simple fake clock for golang. - [cmd](https://github.com/SimonBaeumer/cmd) - Library for executing shell commands on osx, windows and linux. - [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. +- [config-file-validator](https://github.com/Boeing/config-file-validator) - Cross Platform tool to validate configuration files. - [contextplus](https://github.com/contextplus/contextplus) - Package contextplus provide more easy to use functions for contexts. - [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. - [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. From 54ec98e68d295166a499872659c03c4bde2915df Mon Sep 17 00:00:00 2001 From: IP2Location Date: Fri, 15 Mar 2024 23:52:57 +0800 Subject: [PATCH 3275/3440] Added IP2Location.io Go SDK (#5170) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f4b108b7101..6bb2767aa44 100644 --- a/README.md +++ b/README.md @@ -2586,6 +2586,7 @@ _Libraries for accessing third party APIs._ - [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. - [igdb](https://github.com/Henry-Sarabia/igdb) - Go client for the [Internet Game Database API](https://api.igdb.com/). +- [ip2location-io-go](https://github.com/ip2location/ip2location-io-go) - Go wrapper for the IP2Location.io API [IP2Location.io](https://www.ip2location.io/). - [jokeapi-go](https://github.com/icelain/jokeapi) - Go client for [JokeAPI](https://sv443.net/jokeapi/v2/). - [lark](https://github.com/chyroc/lark) - [Feishu](https://open.feishu.cn/)/[Lark](https://open.larksuite.com/) Open API Go SDK, Support ALL Open API and Event Callback. - [lastpass-go](https://github.com/ansd/lastpass-go) - Go client library for the [LastPass](https://www.lastpass.com/) API. From 7b9250fe8ab30cebf374bab8fc43f9363633210f Mon Sep 17 00:00:00 2001 From: Navid Yaghoobi Date: Sun, 17 Mar 2024 01:00:01 +1100 Subject: [PATCH 3276/3440] Add gopensky (go client for opensky network live's API) (#5107) Signed-off-by: Navid Yaghoobi --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6bb2767aa44..29f5c98ad02 100644 --- a/README.md +++ b/README.md @@ -2581,6 +2581,7 @@ _Libraries for accessing third party APIs._ - [google-email-audit-api](https://github.com/ngs/go-google-email-audit-api) - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/). - [google-play-scraper](https://github.com/n0madic/google-play-scraper) - Get data from Google Play Store. - [gopaapi5](https://github.com/utekaravinash/gopaapi5) - Go Client Library for [Amazon Product Advertising API 5.0](https://webservices.amazon.com/paapi5/documentation/). +- [gopensky](https://github.com/navidys/gopensky) - Go client implementation for [OpenSKY Network](https://opensky-network.org/) live's API (airspace ADS-B and Mode S data). - [gosip](https://github.com/koltyakov/gosip) - Client library for SharePoint. - [gostorm](https://github.com/jsgilmore/gostorm) - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. - [hipchat](https://github.com/andybons/hipchat) - This project implements a golang client library for the Hipchat API. From 0c4fd173cd83ab6d785d79419d7a50048cfeb2e8 Mon Sep 17 00:00:00 2001 From: Weetile Date: Wed, 20 Mar 2024 02:04:48 +0000 Subject: [PATCH 3277/3440] fix: move Go Faster to the Free e-books section (#5250) Go Faster has an optional payment, it is possible to get this e-book without payment. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29f5c98ad02..7dd52257d8c 100644 --- a/README.md +++ b/README.md @@ -3390,7 +3390,6 @@ _Where to discover new Go libraries._ - [Creative DIY Microcontroller Project With TinyGo and WebAssembly](https://www.packtpub.com/product/creative-diy-microcontroller-projects-with-tinygo-and-webassembly/9781800560208) - An introduction into the TinyGo compiler with projects involving Arduino and WebAssembly. - [Effective Go: Elegant, efficient, and testable code](https://www.manning.com/books/effective-go) - Unlock Go’s unique perspective on program design, and start writing simple, maintainable, and testable Go code. - [For the Love of Go](https://bitfieldconsulting.com/books/love) - An introductory book for Go beginners. -- [Go Faster](https://leanpub.com/gofaster) - This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster. - [Go in Practice, Second Edition](https://www.manning.com/books/go-in-practice-second-edition) - Your practical guide on the ins-and-outs of Go development, covering the standard library and the most important tools from Go’s powerful ecosystem. - [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - A guide to understanding and using generics in Go. - [Lets-Go](https://lets-go.alexedwards.net) - A step-by-step guide to creating fast, secure and maintanable web applications with Go. @@ -3408,6 +3407,7 @@ _Where to discover new Go libraries._ - [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) - [Go 101](https://go101.org) - A book focusing on Go syntax/semantics and all kinds of details. - [Go AST Book (Chinese)](https://github.com/chai2010/go-ast-book) - A book focusing on Go `go/*` packages. +- [Go Faster](https://leanpub.com/gofaster) - This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster. - [Go Succinctly](https://github.com/thedevsir/gosuccinctly) - in Persian. - [Go with the domain](https://threedots.tech/go-with-the-domain/) - A book showing how to apply DDD, Clean Architecture, and CQRS by practical refactoring. - [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. From f18c76ac277f76bef22972dfefc4b4f659494fca Mon Sep 17 00:00:00 2001 From: Knox Lively Date: Thu, 21 Mar 2024 20:32:54 -0600 Subject: [PATCH 3278/3440] adding Wave Terminal to the tools list (#5253) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7dd52257d8c..152552d3e70 100644 --- a/README.md +++ b/README.md @@ -3327,6 +3327,7 @@ _Software written in Go._ - [tsuru](https://tsuru.io/) - Extensible and open source Platform as a Service software. - [vaku](https://github.com/lingrino/vaku) - CLI & API for folder-based functions in Vault like copy, move, and search. - [vFlow](https://github.com/VerizonDigital/vflow) - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector. +- [Wave Terminal](https://waveterm.dev) - Wave is an open-source, AI-native terminal built for seamless developer workflows with inline rendering, a modern UI, and persistent sessions. - [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass). - [woke](https://github.com/get-woke/woke) - Detect non-inclusive language in your source code. - [yai](https://github.com/ekkinox/yai) - AI powered terminal assistant. From c647ccd826833ba918f978f6f1d2eb442962b679 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 26 Mar 2024 19:17:36 +0530 Subject: [PATCH 3279/3440] add natiu-mqtt (#5261) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 152552d3e70..8a7025046e9 100644 --- a/README.md +++ b/README.md @@ -1946,6 +1946,7 @@ _Libraries for working with various layers of the network._ - [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. - [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. +- [natiu-mqtt](https://github.com/soypat/natiu-mqtt) - A dead-simple, non-allocating, low level implementation of MQTT well suited for embedded systems. - [nbio](https://github.com/lesismal/nbio) - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. - [netpoll](https://github.com/cloudwego/netpoll) - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance. - [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). From 2be5fc4181513d276d8f4b11570f46ff307a8a5e Mon Sep 17 00:00:00 2001 From: xhd2015 Date: Tue, 2 Apr 2024 13:42:41 +0800 Subject: [PATCH 3280/3440] add xgo(a mocking library), remove awterman/monkey and pasdam/mockit (#5263) Co-authored-by: huadong.xiao --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8a7025046e9..fa42abbc12a 100644 --- a/README.md +++ b/README.md @@ -2391,10 +2391,9 @@ _Libraries for testing codebases and generating test data._ - [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. - [mockery](https://github.com/vektra/mockery) - Tool to generate Go interfaces. - [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. - - [mockit](https://github.com/pasdam/mockit) - Allows functions and method easy mocking, without defining new types; it's similar to Mockito for Java. - - [monkey](https://github.com/awterman/monkey) - One line to mock functions/methods/variables in place without dependency injection or code generation. - - [mooncake](https://github.com/GuilhermeCaruso/mooncake) - A simple way to generate mocks for multiple purposes + - [mooncake](https://github.com/GuilhermeCaruso/mooncake) - A simple way to generate mocks for multiple purposes. - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. + - [xgo](https://github.com/xhd2015/xgo) - A general pureposed function mocking library. - Fuzzing and delta-debugging/reducing/shrinking. From 423092b66169760a26c7d7efa9708b789c73b39a Mon Sep 17 00:00:00 2001 From: redistay <165581775+redistay@users.noreply.github.com> Date: Wed, 3 Apr 2024 01:08:24 +0800 Subject: [PATCH 3281/3440] use the built-in const (#5267) --- stale_repositories_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index a83ca7d7d0f..20b013ff55c 100644 --- a/stale_repositories_test.go +++ b/stale_repositories_test.go @@ -39,7 +39,7 @@ var awesomeGoGETISSUES = "http://api.github.com/repos/avelino/awesome-go/issues" // time.Hour * ... or change type of variable var numberOfYears time.Duration = 1 var timeNow = time.Now() -var issueTitle = fmt.Sprintf("Investigate repositories with more than 1 year without update - %s", timeNow.Format("2006-01-02")) +var issueTitle = fmt.Sprintf("Investigate repositories with more than 1 year without update - %s", timeNow.Format(time.DateOnly)) const deadLinkMessage = " this repository might no longer exist! (status code >= 400 returned)" const movedPermanently = " status code 301 received" From c3d02d70340e1892b53e9394c71b884f0a9d11ab Mon Sep 17 00:00:00 2001 From: Everett Pompeii Date: Thu, 4 Apr 2024 11:16:22 -0400 Subject: [PATCH 3282/3440] Add Bencher (#4745) https://github.com/bencherdev/bencher --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa42abbc12a..044b170806a 100644 --- a/README.md +++ b/README.md @@ -504,6 +504,7 @@ _Libraries for configuration parsing._ _Tools for help with continuous integration._ +- [Bencher](https://bencher.dev/) - A suite of continuous benchmarking tools designed to catch performance regressions in CI. - [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. - [dot](https://github.com/opnlabs/dot) - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages. - [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. From 8bb6644ab837936c526b27572609d307a4b29177 Mon Sep 17 00:00:00 2001 From: askeladdk Date: Tue, 16 Apr 2024 22:14:00 +0200 Subject: [PATCH 3283/3440] Add prattle (#5082) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 044b170806a..d37192daafc 100644 --- a/README.md +++ b/README.md @@ -2468,6 +2468,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. - [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. +- [prattle](https://github.com/askeladdk/prattle) - Scan and parse LL(1) grammars simply and efficiently. - [sdp](https://github.com/gortc/sdp) - SDP: Session Description Protocol [[RFC 4566](https://tools.ietf.org/html/rfc4566)]. - [sh](https://github.com/mvdan/sh) - Shell parser and formatter. - [tokenizer](https://github.com/bzick/tokenizer) - Parse any string, slice or infinite buffer to any tokens. From ec74a8f1edefdb45adbab0d776dd4332ebf2580c Mon Sep 17 00:00:00 2001 From: Gospel Lekia <47338915+Yigaue@users.noreply.github.com> Date: Sat, 20 Apr 2024 13:45:44 +0100 Subject: [PATCH 3284/3440] update README - meetups section (#5277) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d37192daafc..f538797ee32 100644 --- a/README.md +++ b/README.md @@ -3499,6 +3499,7 @@ _Where to discover new Go libraries._ - [Golang Москва](https://www.meetup.com/Golang-Moscow/) - [GoSF - San Francisco, CA](https://www.meetup.com/golangsf) - [Istanbul Golang](https://www.meetup.com/Istanbul-Golang/) +- [Lagos Gophers](https://www.meetup.com/GolangNigeria/) - [Seattle Go Programmers](https://www.meetup.com/golang/) - [Ukrainian Golang User Groups](https://www.meetup.com/uagolang/) - [Utah Go User Group](https://www.meetup.com/utahgophers/) From 8d99e7940291c7280583b04c0eb3c2262f79e5cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Apr 2024 09:48:02 -0300 Subject: [PATCH 3285/3440] Bump golang.org/x/net from 0.19.0 to 0.23.0 (#5276) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.19.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.19.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index ea59eae96c1..9c0a0c9ae77 100644 --- a/go.mod +++ b/go.mod @@ -13,9 +13,9 @@ require ( require ( github.com/andybalholm/cascadia v1.3.1 // indirect github.com/golang/protobuf v1.5.3 // indirect - golang.org/x/net v0.19.0 // indirect + golang.org/x/net v0.23.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.33.0 // indirect diff --git a/go.sum b/go.sum index 90f8bf8a843..95538c178ec 100644 --- a/go.sum +++ b/go.sum @@ -27,8 +27,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -42,8 +42,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From 1f5bcf3da94461c1636d41b97ceda521cf760ea5 Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Mon, 22 Apr 2024 14:37:22 +0200 Subject: [PATCH 3286/3440] fix typos (#5279) --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f538797ee32..8a00f216903 100644 --- a/README.md +++ b/README.md @@ -369,7 +369,7 @@ _Libraries for building Console Applications and Console User Interfaces._ - [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in a terminal with Go. - [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. - [tabby](https://github.com/cheynewallace/tabby) - A tiny library for super simple Golang tables. -- [table](https://github.com/tomlazar/table) - Small library for terminal color based tables . +- [table](https://github.com/tomlazar/table) - Small library for terminal color based tables. - [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. - [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. - [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). @@ -445,7 +445,7 @@ _Libraries for configuration parsing._ - [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader. - [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). - [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. -- [config](https://github.com/num30/config) - configure you app using file, environment variables, or flags in two lines of code +- [config](https://github.com/num30/config) - configure your app using file, environment variables, or flags in two lines of code - [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. - [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. - [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. @@ -470,15 +470,15 @@ _Libraries for configuration parsing._ - [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. - [GoLobby/Config](https://github.com/golobby/config) - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language. -- [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. +- [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep your config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. - [gonfig](https://github.com/milad-abbasi/gonfig) - Tag-based configuration parser which loads values from different providers into typesafe struct. - [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. -- [harvester](https://github.com/beatlabs/harvester) - Harvester, a easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration. +- [harvester](https://github.com/beatlabs/harvester) - Harvester, an easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration. - [hjson](https://github.com/hjson/hjson-go) - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. - [hocon](https://github.com/gurkankaymak/hocon) - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files. - [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file. - [ini](https://github.com/go-ini/ini) - Go package to read and write INI files. -- [ini](https://github.com/wlevene/ini) - INI Parser & Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file. +- [ini](https://github.com/wlevene/ini) - INI Parser & Write Library, Unmarshal to Struct, Marshal to Json, Write File, watch file. - [joshbetz/config](https://github.com/joshbetz/config) - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. - [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables. - [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. @@ -552,7 +552,7 @@ _Libraries for preprocessing CSS files._ - [bloom](https://github.com/yourbasic/bloom) - Golang Bloom filter implementation. - [bloomfilter](https://github.com/OldPanda/bloomfilter) - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library. - [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams. -- [cuckoo-filter](https://github.com/linvon/cuckoo-filter) - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper is available. +- [cuckoo-filter](https://github.com/linvon/cuckoo-filter) - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper are available. - [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. - [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter. @@ -708,7 +708,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [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. -- [libradb](https://github.com/amit-davidson/LibraDB) - LibraDB is a simple database with less then 1000 lines of code for learning. +- [libradb](https://github.com/amit-davidson/LibraDB) - LibraDB is a simple database with less than 1000 lines of code for learning. - [LinDB](https://github.com/lindb/lindb) - LinDB is a scalable, high performance, high availability distributed time series database. - [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree. - [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search. @@ -1261,7 +1261,7 @@ _Tools for managing and working with Goroutines._ - [breaker](https://github.com/kamilsk/breaker) - Flexible mechanism to make execution flow interruptible. - [channelify](https://github.com/ddelizia/channelify) - Transform your function to return channels for easy and powerful parallel processing. - [conc](https://github.com/sourcegraph/conc) - `conc` is your toolbelt for structured concurrency in go, making common tasks easier and safer. -- [concurrency-limiter](https://github.com/vivek-ng/concurrency-limiter) - Concurrency limiter with support for timeouts , dynamic priority and context cancellation of goroutines. +- [concurrency-limiter](https://github.com/vivek-ng/concurrency-limiter) - Concurrency limiter with support for timeouts, dynamic priority and context cancellation of goroutines. - [conexec](https://github.com/ITcathyh/conexec) - A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency. - [cyclicbarrier](https://github.com/marusama/cyclicbarrier) - CyclicBarrier for golang. - [execpool](https://github.com/hexdigest/execpool) - A pool built around exec.Cmd that spins up a given number of processes in advance and attaches stdin and stdout to them when needed. Very similar to FastCGI or Apache Prefork MPM but works for any command. From 16c78448407989c42f290924bfc69a37ca33ac36 Mon Sep 17 00:00:00 2001 From: Alessio Greggi Date: Tue, 23 Apr 2024 21:42:06 +0200 Subject: [PATCH 3287/3440] docs(networking): add fwdctl project (#5268) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a00f216903..3b29e91e51d 100644 --- a/README.md +++ b/README.md @@ -1915,6 +1915,7 @@ _Libraries for working with various layers of the network._ - [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959). - [ftpserverlib](https://github.com/fclairamb/ftpserverlib) - Fully featured FTP server library. - [fullproxy](https://github.com/shoriwe/fullproxy) - A fully featured scriptable and daemon configurable proxy and pivoting toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols. +- [fwdctl](https://github.com/alegrey91/fwdctl) - A simple and intuitive CLI to manage IPTables forwards in your Linux server. - [gaio](https://github.com/xtaci/gaio) - High performance async-io networking for Golang in proactor mode. - [gev](https://github.com/Allenxuxu/gev) - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. - [gldap](https://github.com/jimlambrt/gldap) - gldap provides an ldap server implementation and you provide handlers for its ldap operations. From 42d3af4edcd70a3dc34ca14f31de1e7734011af6 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Wed, 24 Apr 2024 04:47:44 +0530 Subject: [PATCH 3288/3440] remove outdated (#5285) --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 3b29e91e51d..0336bccca8d 100644 --- a/README.md +++ b/README.md @@ -1510,7 +1510,6 @@ _Libraries for generating and working with log files._ - [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. - [go-log](https://github.com/ian-kent/go-log) - Log4j implementation in Go. - [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. -- [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Console, Simple Console, File or Elasticsearch. - [gomol](https://github.com/aphistic/gomol) - Multiple-output, structured logging for Go with extensible logging outputs. - [gone/log](https://github.com/One-com/gone/tree/master/log) - Fast, extendable, full-featured, std-lib source compatible log library. - [httpretty](https://github.com/henvic/httpretty) - Pretty-prints your regular HTTP requests on your terminal for debugging (similar to http.DumpRequest). @@ -1527,7 +1526,6 @@ _Libraries for generating and working with log files._ - [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. -- [logmatic](https://github.com/borderstech/logmatic) - Colorized logger for Golang with dynamic log level configuration. - [logo](https://github.com/mbndr/logo) - Golang logger to different configurable writers. - [logrus](https://github.com/Sirupsen/logrus) - Structured logger for Go. - [logrusiowriter](https://github.com/cabify/logrusiowriter) - `io.Writer` implementation using [logrus](https://github.com/sirupsen/logrus) logger. From 4a67505593615c6bb705f93ccd6c222968c6f87b Mon Sep 17 00:00:00 2001 From: Kevin Tang <73975146+vt128@users.noreply.github.com> Date: Sun, 5 May 2024 16:13:39 +0000 Subject: [PATCH 3289/3440] Add `starlet` under `Embeddable Scripting Languages` (#5297) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0336bccca8d..2ea91e31b1b 100644 --- a/README.md +++ b/README.md @@ -1041,6 +1041,7 @@ _Embedding other languages inside your go code._ - [prolog](https://github.com/ichiban/prolog) - Embeddable Prolog. - [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go. - [starlark-go](https://github.com/google/starlark-go) - Go implementation of Starlark: Python-like language with deterministic evaluation and hermetic execution. +- [starlet](https://github.com/1set/starlet) - Go wrapper for [starlark-go](https://github.com/google/starlark-go) that simplifies script execution, offers data conversion, and useful Starlark libraries and extensions. - [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. **[⬆ back to top](#contents)** From 9743b6dc4d57f66a7c6d638bd1d2fef315ef9975 Mon Sep 17 00:00:00 2001 From: "lyon.nee" <30852031+lyonnee@users.noreply.github.com> Date: Thu, 9 May 2024 16:28:45 +0800 Subject: [PATCH 3290/3440] add hvalid project (#5283) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2ea91e31b1b..4b78299ed7b 100644 --- a/README.md +++ b/README.md @@ -2839,6 +2839,7 @@ _Libraries for validation._ - [govalid](https://github.com/twharmon/govalid) - Fast, tag-based validation for structs. - [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. - [govalidator](https://github.com/thedevsaddam/govalidator) - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. +- [hvalid](https://github.com/lyonnee/hvalid) hvalid is a lightweight validation library written in Go language. It provides a custom validator interface and a series of common validation functions to help developers quickly implement data validation. - [jio](https://github.com/faceair/jio) - jio is a json schema validator similar to [joi](https://github.com/hapijs/joi). - [ozzo-validation](https://github.com/go-ozzo/ozzo-validation) - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags. - [validate](https://github.com/gookit/validate) - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features. From 7e67bfca259ed9f736125876e2a281f34aaa3538 Mon Sep 17 00:00:00 2001 From: utagawa kiki Date: Fri, 10 May 2024 01:28:06 +0900 Subject: [PATCH 3291/3440] Use embed.FS for templates (#5303) Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- main.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 7ce78c8f1b9..5d65e75c640 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "bytes" + "embed" "errors" "fmt" template2 "html/template" @@ -42,11 +43,11 @@ var staticFiles = []string{ "tmpl/robots.txt", } -// TODO: embed // Templates -var tplIndex = template.Must(template.ParseFiles("tmpl/index.tmpl.html")) -var tplCategoryIndex = template.Must(template.ParseFiles("tmpl/category-index.tmpl.html")) -var tplSitemap = template.Must(template.ParseFiles("tmpl/sitemap.tmpl.xml")) +//go:embed tmpl/*.tmpl.html tmpl/*.tmpl.xml +var tplFs embed.FS + +var tpl = template.Must(template.ParseFS(tplFs, "tmpl/*.tmpl.html", "tmpl/*.tmpl.xml")) // Output files const outDir = "out/" // NOTE: trailing slash is required @@ -152,7 +153,7 @@ func renderCategories(categories map[string]Category) error { fmt.Printf("Write category Index file: %s\n", categoryIndexFilename) buf := bytes.NewBuffer(nil) - if err := tplCategoryIndex.Execute(buf, category); err != nil { + if err := tpl.Lookup("category-index.tmpl.html").Execute(buf, category); err != nil { return fmt.Errorf("render category `%s`: %w", categoryDir, err) } @@ -186,7 +187,7 @@ func renderSitemap(categories map[string]Category) error { fmt.Printf("Render Sitemap to: %s\n", outSitemapFile) - if err := tplSitemap.Execute(f, categories); err != nil { + if err := tpl.Lookup("sitemap.tmpl.xml").Execute(f, categories); err != nil { return fmt.Errorf("render sitemap: %w", err) } @@ -352,7 +353,7 @@ func renderIndex(srcFilename, outFilename string) error { data := map[string]interface{}{ "Body": template2.HTML(body), } - if err := tplIndex.Execute(f, data); err != nil { + if err := tpl.Lookup("index.tmpl.html").Execute(f, data); err != nil { return err } From 6a1413fb1bb978f1bcd1975949e86c0fdab3a8b6 Mon Sep 17 00:00:00 2001 From: Zxilly <31370133+Zxilly@users.noreply.github.com> Date: Sat, 11 May 2024 09:18:40 +0800 Subject: [PATCH 3292/3440] feat: add go-size-analyzer (#5286) * feat: add go-size-analyzer * fix: reorder and remove outdated project --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4b78299ed7b..76426d9add9 100644 --- a/README.md +++ b/README.md @@ -3145,8 +3145,7 @@ _Plugin for text editors and IDEs._ - [depth](https://github.com/KyleBanks/depth) - Visualize dependency trees of any package by analyzing imports. - [docs](https://github.com/go-oas/docs) - Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard. - [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format. -- [go-james](https://github.com/pieterclaerhout/go-james) - Go project skeleton creator, builds and tests your projects without the manual setup. -- [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. +- [go-size-analyzer](https://github.com/Zxilly/go-size-analyzer) - Analyze and visualize the size of dependencies in compiled Golang binaries, providing insight into their impact on the final build. - [go-swagger](https://github.com/go-swagger/go-swagger) - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. - [godbg](https://github.com/tylerwince/godbg) - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. - [gomodrun](https://github.com/dustinblackman/gomodrun/) - Go tool that executes and caches binaries included in go.mod files. @@ -3162,6 +3161,7 @@ _Plugin for text editors and IDEs._ - [textra](https://github.com/ravsii/textra) - Extract Go struct field names, types and tags for filtering and exporting. - [typex](https://github.com/dtgorski/typex) - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration. + **[⬆ back to top](#contents)** ## Software Packages From c860a47fa81809c8618184ad26d494a7c9e7022a Mon Sep 17 00:00:00 2001 From: Wojciech Kaczmarek Date: Sat, 11 May 2024 04:06:37 +0200 Subject: [PATCH 3293/3440] add bcl to Configuration section (#5289) Hi! Requesting add after few months of polishing the BCL project. Pleasr review --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 76426d9add9..7edfb178f38 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,7 @@ _Libraries for building standard or basic Command Line applications._ _Libraries for configuration parsing._ - [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader. +- [bcl](https://github.com/wkhere/bcl) - BCL is a configuration language similar to HCL. - [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). - [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. - [config](https://github.com/num30/config) - configure your app using file, environment variables, or flags in two lines of code From b9d01c0d172f6cc8d73c2b8e852595fce1d5867c Mon Sep 17 00:00:00 2001 From: Quentin Renard Date: Sat, 11 May 2024 04:08:17 +0200 Subject: [PATCH 3294/3440] Add go-astiav (#5115) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7edfb178f38..47fa0607a57 100644 --- a/README.md +++ b/README.md @@ -2872,6 +2872,7 @@ _Libraries for version control._ _Libraries for manipulating video._ - [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. +- [go-astiav](https://github.com/asticode/go-astiav) - Better C bindings for ffmpeg in GO. - [go-astisub](https://github.com/asticode/go-astisub) - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.). - [go-astits](https://github.com/asticode/go-astits) - Parse and demux MPEG Transport Streams (.ts) natively in GO. - [go-m3u8](https://github.com/etherlabsio/go-m3u8) - Parser and generator library for Apple m3u8 playlists. Actively maintained version of quangngotan95/go-m3u8 with improvements and latest HLS playlist parsing compatibility. From 229593cd1ebb0fead784c9484469628e77f7d78f Mon Sep 17 00:00:00 2001 From: Max <39492740+s0ders@users.noreply.github.com> Date: Sat, 11 May 2024 04:17:28 +0200 Subject: [PATCH 3295/3440] docs(continuous integration): add go-semver-release project (#5300) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 47fa0607a57..bb4a0549b47 100644 --- a/README.md +++ b/README.md @@ -511,6 +511,7 @@ _Tools for help with continuous integration._ - [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. - [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. - [go-fuzz-action](https://github.com/jidicula/go-fuzz-action) - Use Go 1.18's built-in fuzz testing in GitHub Actions. +- [go-semver-release](https://github.com/s0ders/go-semver-release) - Automate the semantic versioning of Git repositories. - [go-test-coverage](https://github.com/vladopajic/go-test-coverage) - Tool and GitHub action which reports issues when test coverage is below set threshold. - [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. - [gotestfmt](https://github.com/GoTestTools/gotestfmt) - go test output for humans. From 49da01922e4362655bde549ee8e419dc5a3e1372 Mon Sep 17 00:00:00 2001 From: chai2010 Date: Sun, 19 May 2024 11:02:46 +0800 Subject: [PATCH 3296/3440] add wa language (#4517) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bb4a0549b47..67d3131ec68 100644 --- a/README.md +++ b/README.md @@ -1045,6 +1045,7 @@ _Embedding other languages inside your go code._ - [starlark-go](https://github.com/google/starlark-go) - Go implementation of Starlark: Python-like language with deterministic evaluation and hermetic execution. - [starlet](https://github.com/1set/starlet) - Go wrapper for [starlark-go](https://github.com/google/starlark-go) that simplifies script execution, offers data conversion, and useful Starlark libraries and extensions. - [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go. +- [Wa/凹语言](https://github.com/wa-lang/wa) - The Wa Programming Language embedded in Go. **[⬆ back to top](#contents)** From fedc9d20da39556b39785f062bcebcd1f2815090 Mon Sep 17 00:00:00 2001 From: Adriano Sela Aviles Date: Sat, 18 May 2024 20:46:44 -0700 Subject: [PATCH 3297/3440] add multikey to security list (#4855) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 67d3131ec68..717a3cb0049 100644 --- a/README.md +++ b/README.md @@ -2196,6 +2196,7 @@ _Libraries that are used to help make your application more secure._ - [Interpol](https://github.com/avahidi/interpol) - Rule-based data generator for fuzzing and penetration testing. - [lego](https://github.com/go-acme/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. +- [multikey](https://github.com/adrianosela/multikey) - An n-out-of-N keys encryption/decryption framework based on Shamir's Secret Sharing algorithm. - [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. - [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm. - [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. From f98f7dfc02b7f1e8ff202555d822c120b96dbe06 Mon Sep 17 00:00:00 2001 From: Kilian Ciuffolo <385716+kilianc@users.noreply.github.com> Date: Sat, 18 May 2024 20:55:03 -0700 Subject: [PATCH 3298/3440] add go-beautiful-html-coverage (#5310) * add go-beautiful-html-coverage * alphabetically * remove archived project --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 717a3cb0049..58b3ad9cb17 100644 --- a/README.md +++ b/README.md @@ -509,7 +509,7 @@ _Tools for help with continuous integration._ - [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. - [dot](https://github.com/opnlabs/dot) - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages. - [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. -- [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages. +- [go-beautiful-html-coverage](https://github.com/gha-common/go-beautiful-html-coverage) - A GitHub Action to track code coverage in your pull requests, with a beautiful HTML preview, for free. - [go-fuzz-action](https://github.com/jidicula/go-fuzz-action) - Use Go 1.18's built-in fuzz testing in GitHub Actions. - [go-semver-release](https://github.com/s0ders/go-semver-release) - Automate the semantic versioning of Git repositories. - [go-test-coverage](https://github.com/vladopajic/go-test-coverage) - Tool and GitHub action which reports issues when test coverage is below set threshold. From 89ad8ac2238cba99a2d539f40b1aa2d1b622f4a8 Mon Sep 17 00:00:00 2001 From: Kilian Ciuffolo <385716+kilianc@users.noreply.github.com> Date: Mon, 20 May 2024 22:43:25 -0700 Subject: [PATCH 3299/3440] remove https://covergates.com/ (#5314) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 58b3ad9cb17..b8eb4877670 100644 --- a/README.md +++ b/README.md @@ -2326,7 +2326,6 @@ _Libraries for testing codebases and generating test data._ - [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. - [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. - [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. - - [covergates](https://github.com/covergates/covergates) - Self-hosted code coverage report review and management service. - [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. From b340f38c7b736ddab5de4d26539c33142ff874be Mon Sep 17 00:00:00 2001 From: imalasong Date: Wed, 22 May 2024 03:02:55 +0800 Subject: [PATCH 3300/3440] add pebble (#5271) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b8eb4877670..0dbf0766114 100644 --- a/README.md +++ b/README.md @@ -717,6 +717,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. - [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. - [objectbox-go](https://github.com/objectbox/objectbox-go) - High-performance embedded Object Database (NoSQL) with Go API. +- [pebble](https://github.com/cockroachdb/pebble) - RocksDB/LevelDB inspired key-value database in Go. - [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures. - [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. - [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. From 76f9f70fd43d1cfdb4917cae1d76e1017c64e852 Mon Sep 17 00:00:00 2001 From: Walter Jenkins Date: Tue, 21 May 2024 14:03:10 -0500 Subject: [PATCH 3301/3440] add geoos (#5266) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0dbf0766114..f79ba1e0b8d 100644 --- a/README.md +++ b/README.md @@ -1223,6 +1223,7 @@ _Tools that generate Go code._ _Geographic tools and servers_ +- [geoos](https://github.com/spatial-go/geoos) - A library provides spatial data and geometric algorithms. - [geoserver](https://github.com/hishamkaram/geoserver) - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API. - [gismanager](https://github.com/hishamkaram/gismanager) - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver. - [godal](https://github.com/airbusgeo/godal) - Go wrapper for GDAL. From 0d241a3ccc5b64292834c5efdb1cd91bf610f6f2 Mon Sep 17 00:00:00 2001 From: SwitchUpCB <81384235+switchupcb@users.noreply.github.com> Date: Wed, 22 May 2024 14:21:59 -0500 Subject: [PATCH 3302/3440] add disgo (#4633) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f79ba1e0b8d..9ab36a8f78c 100644 --- a/README.md +++ b/README.md @@ -2538,6 +2538,7 @@ _Libraries for accessing third party APIs._ - [coinpaprika-go](https://github.com/coinpaprika/coinpaprika-api-go-client) - Go client library for interacting with Coinpaprika's API. - [device-check-go](https://github.com/rinchsan/device-check-go) - Go client library for interacting with [iOS DeviceCheck API](https://developer.apple.com/documentation/devicecheck) v1. - [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API. +- [disgo](https://github.com/switchupcb/disgo) - Go API Wrapper for the Discord API. - [dusupay-sdk-go](https://github.com/Kachit/dusupay-sdk-go) - Unofficial Dusupay payment gateway API Client for Go - [ethrpc](https://github.com/onrik/ethrpc) - Go bindings for Ethereum JSON RPC API. - [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API. From cecec34b32964c5ce8854498cef16dccb45b5551 Mon Sep 17 00:00:00 2001 From: Asep saepulloh Date: Thu, 23 May 2024 02:27:32 +0700 Subject: [PATCH 3303/3440] add podinfo in go tools (#4468) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ab36a8f78c..467e9437d29 100644 --- a/README.md +++ b/README.md @@ -3246,6 +3246,7 @@ _Software written in Go._ - [Packer](https://github.com/mitchellh/packer) - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. - [Pewpew](https://github.com/bengadbois/pewpew) - Flexible HTTP command line stress tester. - [PipeCD](https://github.com/pipe-cd/pipecd) - A GitOps-style continuous delivery platform that provides consistent deployment and operations experience for any applications. +- [podinfo](https://github.com/stefanprodan/podinfo) - Podinfo is a tiny web application made with Go that showcases best practices of running microservices in Kubernetes. Podinfo is used by CNCF projects like Flux and Flagger for end-to-end testing and workshops. - [Pomerium](https://github.com/pomerium/pomerium) - Pomerium is an identity-aware access proxy. - [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. - [s3-proxy](https://github.com/oxyno-zeta/s3-proxy) - S3 Proxy with GET, PUT and DELETE methods and authentication (OpenID Connect and Basic Auth). From 481326c0d7c164c55ea7f9716742ef8e881d36fc Mon Sep 17 00:00:00 2001 From: earayu Date: Thu, 23 May 2024 03:34:08 +0800 Subject: [PATCH 3304/3440] add wescale (#5006) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 467e9437d29..566ebca43e2 100644 --- a/README.md +++ b/README.md @@ -778,6 +778,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [rdb](https://github.com/HDT3213/rdb) - Redis RDB file parser for secondary development and memory analysis. - [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup. - [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. +- [wescale](https://github.com/wesql/wescale) - WeScale is a database proxy designed to enhance the scalability, performance, security, and resilience of your applications. ### SQL Query Builders From 9b61a5037c739bae92706bac99377730ea35df92 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Thu, 23 May 2024 01:11:46 +0530 Subject: [PATCH 3305/3440] add kubeblocks (#5317) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 566ebca43e2..d706884e50e 100644 --- a/README.md +++ b/README.md @@ -3231,6 +3231,7 @@ _Software written in Go._ - [kind](https://github.com/kubernetes-sigs/kind) - Kubernetes IN Docker - local clusters for testing Kubernetes. - [ko](https://github.com/google/ko) - Command line tool for building and deploying Go applications on Kubernetes - [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way. +- [kubeblocks](https://github.com/apecloud/kubeblocks) - KubeBlocks is an open-source control plane that runs and manages databases, message queues and other data infrastructure on K8s. - [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. - [kubeshark](https://github.com/kubeshark/kubeshark) - API traffic analyzer for Kubernetes, inspired by Wireshark, purposely built for Kubernetes. - [KubeVela](https://github.com/kubevela/kubevela) - Cloud native application delivery. From 5627872162077e373f11d37c312a4cf0c294f654 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Thu, 23 May 2024 02:05:49 +0530 Subject: [PATCH 3306/3440] restructure testing category (#5318) --- README.md | 205 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 105 insertions(+), 100 deletions(-) diff --git a/README.md b/README.md index d706884e50e..ce2befebfd4 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Stream Processing](#stream-processing) - [Template Engines](#template-engines) - [Testing](#testing) + - [Testing Frameworks](#testing-frameworks) + - [Mock](#mock) + - [Fuzzing and delta-debugging/reducing/shrinking](#fuzzing-and-delta-debuggingreducingshrinking) + - [Selenium and browser control tools](#selenium-and-browser-control-tools) + - [Fail injection](#fail-injection) - [Text Processing](#text-processing) - [Formatters](#formatters) - [Markup Languages](#markup-languages) @@ -2319,106 +2324,106 @@ _Libraries and tools for templating and lexing._ _Libraries for testing codebases and generating test data._ -- Testing Frameworks - - - [apitest](https://apitest.dev) - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams. - - [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. - - [be](https://github.com/carlmjohnson/be) - The minimalist generic test assertion library. - - [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. - - [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. - - [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. - - [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. - - [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. - - [endly](https://github.com/viant/endly) - Declarative end to end functional testing. - - [fixenv](https://github.com/rekby/fixenv) - Fixture manage engine, inspired by pytest fixtures. - - [fluentassert](https://github.com/fluentassert/verify) - Extensible, type-safe, fluent assertion Go library. - - [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. - - [frisby](https://github.com/verdverm/frisby) - REST API testing framework. - - [gherkingen](https://github.com/hedhyw/gherkingen) - BDD boilerplate generator and framework. - - [ginkgo](https://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. - - [gnomock](https://github.com/orlangure/gnomock) - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks. - - [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal. - - [go-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests. - - [go-hit](https://github.com/Eun/go-hit) - Hit is an http integration test framework written in golang. - - [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. - - [go-mysql-test-container](https://github.com/arikama/go-mysql-test-container) - Golang MySQL testcontainer to help with MySQL integration testing. - - [go-snaps](http://github.com/gkampitakis/go-snaps) - Jest-like snapshot testing in Golang. - - [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. - - [go-testpredicate](https://github.com/maargenton/go-testpredicate) - Test predicate style assertions library with extensive diagnostics output. - - [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 of Go. - - [goc](https://github.com/qiniu/goc) - Goc is a comprehensive coverage testing system for The Go Programming Language. - - [gocheck](https://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. - - [gocrest](https://github.com/corbym/gocrest) - Composable hamcrest-like matchers for Go assertions. - - [godog](https://github.com/cucumber/godog) - Cucumber BDD framework for Go. - - [gofight](https://github.com/appleboy/gofight) - API Handler Testing for Golang Router framework. - - [gogiven](https://github.com/corbym/gogiven) - YATSPEC-like BDD testing framework for Go. - - [gomatch](https://github.com/jfilipczyk/gomatch) - library created for testing JSON against patterns. - - [gomega](https://onsi.github.io/gomega/) - Rspec like matcher/assertion library. - - [Gont](https://github.com/stv0g/gont) - Go network testing toolkit for testing building complex network topologies using Linux namespaces. - - [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. - - [got](https://github.com/ysmood/got) - An enjoyable golang test framework. - - [gotest.tools](https://github.com/gotestyourself/gotest.tools) - A collection of packages to augment the go testing package and support common patterns. - - [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. - - [is](https://github.com/matryer/is) - Professional lightweight testing mini-framework for Go. - - [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. - - [omg.testingtools](https://github.com/dedalqq/omg.testingtools) - The simple library for change a values of private fields for testing. - - [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. - - [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. - - [stop-and-go](https://github.com/elgohr/stop-and-go) - Testing helper for concurrency. - - [testcase](https://github.com/adamluzsi/testcase) - Idiomatic testing framework for Behavior Driven Development. - - [testcontainers-go](https://github.com/testcontainers/testcontainers-go) - A Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done. - - [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. - - [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. - - [testza](https://github.com/MarvinJWendt/testza) - Full-featured test framework with nice colorized output. - - [trial](https://github.com/jgroeneveld/trial) - Quick and easy extendable assertions without introducing much boilerplate. - - [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. - - [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. - - [genmock](https://gitlab.com/so_literate/genmock) - Go mocking system with code generator for building calls of the interface methods. - - [go-localstack](https://github.com/elgohr/go-localstack) - Tool for using localstack in AWS testing. - - [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. - - [hoverfly](https://github.com/SpectoLabs/hoverfly) - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI. - - [httpmock](https://github.com/jarcoal/httpmock) - Easy mocking of HTTP responses from external resources. - - [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. - - [mockery](https://github.com/vektra/mockery) - Tool to generate Go interfaces. - - [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. - - [mooncake](https://github.com/GuilhermeCaruso/mooncake) - A simple way to generate mocks for multiple purposes. - - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. - - [xgo](https://github.com/xhd2015/xgo) - A general pureposed function mocking library. - -- 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. - - - [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. - - [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. - - [playwright-go](https://github.com/mxschmitt/playwright-go) - browser automation library to control Chromium, Firefox and WebKit with a single API. - - [rod](https://github.com/go-rod/rod) - A Devtools driver to make web automation and scraping easy. - - [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. - -- Fail injection - - [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](https://www.freebsd.org/cgi/man.cgi?query=fail) for Golang. +### Testing Frameworks + +- [apitest](https://apitest.dev) - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams. +- [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. +- [be](https://github.com/carlmjohnson/be) - The minimalist generic test assertion library. +- [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. +- [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests. +- [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. +- [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. +- [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. +- [endly](https://github.com/viant/endly) - Declarative end to end functional testing. +- [fixenv](https://github.com/rekby/fixenv) - Fixture manage engine, inspired by pytest fixtures. +- [fluentassert](https://github.com/fluentassert/verify) - Extensible, type-safe, fluent assertion Go library. +- [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. +- [frisby](https://github.com/verdverm/frisby) - REST API testing framework. +- [gherkingen](https://github.com/hedhyw/gherkingen) - BDD boilerplate generator and framework. +- [ginkgo](https://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. +- [gnomock](https://github.com/orlangure/gnomock) - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks. +- [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal. +- [go-cmp](https://github.com/google/go-cmp) - Package for comparing Go values in tests. +- [go-hit](https://github.com/Eun/go-hit) - Hit is an http integration test framework written in golang. +- [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. +- [go-mysql-test-container](https://github.com/arikama/go-mysql-test-container) - Golang MySQL testcontainer to help with MySQL integration testing. +- [go-snaps](http://github.com/gkampitakis/go-snaps) - Jest-like snapshot testing in Golang. +- [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible golang deep comparison, extends the go testing package. +- [go-testpredicate](https://github.com/maargenton/go-testpredicate) - Test predicate style assertions library with extensive diagnostics output. +- [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 of Go. +- [goc](https://github.com/qiniu/goc) - Goc is a comprehensive coverage testing system for The Go Programming Language. +- [gocheck](https://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. +- [gocrest](https://github.com/corbym/gocrest) - Composable hamcrest-like matchers for Go assertions. +- [godog](https://github.com/cucumber/godog) - Cucumber BDD framework for Go. +- [gofight](https://github.com/appleboy/gofight) - API Handler Testing for Golang Router framework. +- [gogiven](https://github.com/corbym/gogiven) - YATSPEC-like BDD testing framework for Go. +- [gomatch](https://github.com/jfilipczyk/gomatch) - library created for testing JSON against patterns. +- [gomega](https://onsi.github.io/gomega/) - Rspec like matcher/assertion library. +- [Gont](https://github.com/stv0g/gont) - Go network testing toolkit for testing building complex network topologies using Linux namespaces. +- [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. +- [got](https://github.com/ysmood/got) - An enjoyable golang test framework. +- [gotest.tools](https://github.com/gotestyourself/gotest.tools) - A collection of packages to augment the go testing package and support common patterns. +- [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. +- [is](https://github.com/matryer/is) - Professional lightweight testing mini-framework for Go. +- [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. +- [omg.testingtools](https://github.com/dedalqq/omg.testingtools) - The simple library for change a values of private fields for testing. +- [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. +- [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. +- [stop-and-go](https://github.com/elgohr/stop-and-go) - Testing helper for concurrency. +- [testcase](https://github.com/adamluzsi/testcase) - Idiomatic testing framework for Behavior Driven Development. +- [testcontainers-go](https://github.com/testcontainers/testcontainers-go) - A Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done. +- [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. +- [testsql](https://github.com/zhulongcheng/testsql) - Generate test data from SQL files before testing and clear it after finished. +- [testza](https://github.com/MarvinJWendt/testza) - Full-featured test framework with nice colorized output. +- [trial](https://github.com/jgroeneveld/trial) - Quick and easy extendable assertions without introducing much boilerplate. +- [Tt](https://github.com/vcaesar/tt) - Simple and colorful test tools. +- [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. +- [genmock](https://gitlab.com/so_literate/genmock) - Go mocking system with code generator for building calls of the interface methods. +- [go-localstack](https://github.com/elgohr/go-localstack) - Tool for using localstack in AWS testing. +- [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. +- [hoverfly](https://github.com/SpectoLabs/hoverfly) - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI. +- [httpmock](https://github.com/jarcoal/httpmock) - Easy mocking of HTTP responses from external resources. +- [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. +- [mockery](https://github.com/vektra/mockery) - Tool to generate Go interfaces. +- [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. +- [mooncake](https://github.com/GuilhermeCaruso/mooncake) - A simple way to generate mocks for multiple purposes. +- [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. +- [xgo](https://github.com/xhd2015/xgo) - A general pureposed function mocking library. + +## 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 + +- [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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. +- [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs. +- [playwright-go](https://github.com/mxschmitt/playwright-go) - browser automation library to control Chromium, Firefox and WebKit with a single API. +- [rod](https://github.com/go-rod/rod) - A Devtools driver to make web automation and scraping easy. +- [selenoid](https://github.com/aerokube/selenoid) - alternative Selenium hub server that launches browsers within containers. + +### Fail injection +- [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](https://www.freebsd.org/cgi/man.cgi?query=fail) for Golang. **[⬆ back to top](#contents)** From 798d96270171ba3290e751860d351d9875fa91fc Mon Sep 17 00:00:00 2001 From: Benjamin Cane Date: Wed, 22 May 2024 13:41:23 -0700 Subject: [PATCH 3307/3440] Adding testcerts to Testing Section (#5313) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ce2befebfd4..ef425d41b13 100644 --- a/README.md +++ b/README.md @@ -2379,6 +2379,7 @@ _Libraries for testing codebases and generating test data._ - [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. - [stop-and-go](https://github.com/elgohr/stop-and-go) - Testing helper for concurrency. - [testcase](https://github.com/adamluzsi/testcase) - Idiomatic testing framework for Behavior Driven Development. +- [testcerts](https://github.com/madflojo/testcerts) - Dynamically generate self-signed certificates and certificate authorities within your test functions. - [testcontainers-go](https://github.com/testcontainers/testcontainers-go) - A Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done. - [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. From 362368f43b4928c5b8b6d0752502a575e2c0a82c Mon Sep 17 00:00:00 2001 From: Robert Lillack Date: Wed, 22 May 2024 22:43:58 +0200 Subject: [PATCH 3308/3440] Add Spot GUI toolkit (#5316) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef425d41b13..4ad86013dcd 100644 --- a/README.md +++ b/README.md @@ -1334,6 +1334,7 @@ _Toolkits_ - [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). +- [Spot](https://github/roblillack/spot) - Reactive, cross-platform desktop GUI toolkit. - [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. Cross platform. - [unison](https://github.com/richardwilkes/unison) - A unified graphical user experience toolkit for Go desktop applications. macOS, Windows, and Linux are supported. - [Wails](https://wails.io) - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer. From 2f7e7c29dfe5dbb85716289f82d51957eda4c4e1 Mon Sep 17 00:00:00 2001 From: GreyXor <79602273+GreyXor@users.noreply.github.com> Date: Wed, 22 May 2024 22:52:10 +0200 Subject: [PATCH 3309/3440] Add slogor: A colorful slog handler (#5270) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4ad86013dcd..ac73ff9206d 100644 --- a/README.md +++ b/README.md @@ -1559,6 +1559,7 @@ _Libraries for generating and working with log files._ - [slog](https://github.com/gookit/slog) - Lightweight, configurable, extensible logger for Go. - [slog-formatter](https://github.com/samber/slog-formatter) - Common formatters for slog and helpers to build your own. - [slog-multi](https://github.com/samber/slog-multi) - Chain of slog.Handler (pipeline, fanout...). +- [slogor](https://gitlab.com/greyxor/slogor) - A colorful slog handler. - [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. - [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing \*sql.DB stdlib usage. - [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. From c0e7e89d3ef1e934194cbf062d76ef646cd52c6a Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Thu, 30 May 2024 18:55:50 +0530 Subject: [PATCH 3310/3440] move air category --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac73ff9206d..02cb5a68600 100644 --- a/README.md +++ b/README.md @@ -325,6 +325,7 @@ _Libraries for building and working with bots._ _Libraries and tools help with build automation._ - [1build](https://github.com/gopinath-langote/1build) - Command line tool to frictionlessly manage project-specific commands. +- [air](https://github.com/cosmtrek/air) - Air - Live reload for Go apps. - [anko](https://github.com/GuilhermeCaruso/anko) - Simple application watcher for multiple programming languages. - [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes. - [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects. @@ -2648,7 +2649,6 @@ _Libraries for accessing third party APIs._ _General utilities and tools to make your life easier._ -- [air](https://github.com/cosmtrek/air) - Air - Live reload for Go apps. - [apm](https://github.com/topfreegames/apm) - Process manager for Golang applications with an HTTP API. - [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. - [beyond](https://github.com/wesovilabs/beyond) - The Go tool that will drive you to the AOP world! From 542d60b2485479a4dd0ffb24337cc251b0fbb11e Mon Sep 17 00:00:00 2001 From: Dmitriy Basenko Date: Thu, 30 May 2024 18:34:03 +0500 Subject: [PATCH 3311/3440] add go-cfg (#5242) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02cb5a68600..d058ef31e12 100644 --- a/README.md +++ b/README.md @@ -466,9 +466,9 @@ _Libraries for configuration parsing._ - [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. - [envh](https://github.com/antham/envh) - Helpers to manage environment variables. - [fig](https://github.com/kkyr/fig) - Tiny library for reading configuration from a file and from environment variables (with validation & defaults). -- [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. - [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. - [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store. +- [go-cfg](https://github.com/dsbasko/go-cfg) - The library provides a unified way to read configuration data into a structure from various sources, such as env, flags, and configuration files (.json, .yaml, .toml, .env). - [go-conf](https://github.com/ThomasObenaus/go-conf) - Simple library for application configuration based on annotated structs. It supports reading the configuration from environment variables, config files and command line parameters. - [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. - [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). From 4ec97f7d534e65d2a1929406142b1ab3f678e3df Mon Sep 17 00:00:00 2001 From: Bart Venter <72999113+bartventer@users.noreply.github.com> Date: Thu, 30 May 2024 15:37:45 +0200 Subject: [PATCH 3312/3440] docs(database tools): Add `gorm-multitenancy` project (#5306) --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index d058ef31e12..d1987e404c2 100644 --- a/README.md +++ b/README.md @@ -771,12 +771,10 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [dg](https://github.com/codingconcepts/dg) - A fast data generator that produces CSV files from generated relational data. - [dynago](https://github.com/twharmon/dynago) - Simplify working with AWS DynamoDB. - [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. -- [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. +- [gorm-multitenancy](https://github.com/bartventer/gorm-multitenancy) - Multi-tenancy support for GORM managed databases. - [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. -- [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. - [octillery](https://github.com/knocknote/octillery) - Go package for sharding databases ( Supports every ORM or raw SQL ). - [onedump](https://github.com/liweiyi88/onedump) - Database backup from different drivers to different destinations with one command and configuration. -- [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer. - [pg_timetable](https://github.com/cybertec-postgresql/pg_timetable) - Advanced scheduling for PostgreSQL. - [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. - [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code. From 6eb05160ab6b330dadfa7a97f770e3ba0b9af49a Mon Sep 17 00:00:00 2001 From: Nguyen Dang Quy Date: Fri, 31 May 2024 05:56:55 +0700 Subject: [PATCH 3313/3440] Add evans: more expressive universal gRPC client (#5321) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1987e404c2..d1b72e4c6f0 100644 --- a/README.md +++ b/README.md @@ -939,6 +939,7 @@ _Packages that help with building Distributed Systems._ - [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation. - [dynatomic](https://github.com/tylfin/dynatomic) - A library for using DynamoDB as an atomic counter. - [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. +- [evans](https://github.com/ktr0731/evans) - Evans: more expressive universal gRPC client. - [failured](https://github.com/andy2046/failured) - adaptive accrual failure detector for distributed systems. - [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package. - [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. From 5dcccc0714112dbbac1462d5a4341563a35f2170 Mon Sep 17 00:00:00 2001 From: Amogh Desai Date: Fri, 31 May 2024 15:15:57 +0530 Subject: [PATCH 3314/3440] Adding moq to utilities (#5022) Co-authored-by: adesai Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1b72e4c6f0..0e99da782d2 100644 --- a/README.md +++ b/README.md @@ -2407,6 +2407,7 @@ _Libraries for testing codebases and generating test data._ - [mockery](https://github.com/vektra/mockery) - Tool to generate Go interfaces. - [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. - [mooncake](https://github.com/GuilhermeCaruso/mooncake) - A simple way to generate mocks for multiple purposes. +- [moq](https://github.com/matryer/moq) - Utility that generates a struct from any interface. The struct can be used in test code as a mock of the interface. - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. - [xgo](https://github.com/xhd2015/xgo) - A general pureposed function mocking library. From 613e86a4160dceb66571f0a90392c8b9bdb73ff7 Mon Sep 17 00:00:00 2001 From: Bhanu Date: Sat, 1 Jun 2024 15:40:15 -0700 Subject: [PATCH 3315/3440] add pocketbase (#5328) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0e99da782d2..a22f226e3bc 100644 --- a/README.md +++ b/README.md @@ -2275,6 +2275,7 @@ _Libraries and tools for binary serialization._ - [Moxy](https://github.com/sinhashubham95/moxy) - Moxy is a simple mocker and proxy application server, you can create mock endpoints as well as proxy requests in case no mock exists for the endpoint. - [nginx-prometheus](https://github.com/blind-oracle/nginx-prometheus) - Nginx log parser and exporter to Prometheus. - [nsq](https://nsq.io/) - A realtime distributed messaging platform. +- [pocketbase](https://github.com/pocketbase/pocketbase) - PocketBase is a realtime backend in 1 file consisting of embedded database (SQLite) with realtime subscriptions, built-in auth management and much more. - [protoxy](https://github.com/camgraff/protoxy) - A proxy server that converts JSON request bodies to Protocol Buffers. - [psql-streamer](https://github.com/blind-oracle/psql-streamer) - Stream database events from PostgreSQL to Kafka. - [riemann-relay](https://github.com/blind-oracle/riemann-relay) - Relay to load-balance Riemann events and/or convert them to Carbon. From 4dde4392037855da0dc269e646d8bd30330dd918 Mon Sep 17 00:00:00 2001 From: Riccardo Pinosio Date: Tue, 4 Jun 2024 04:15:40 +0200 Subject: [PATCH 3316/3440] Add knights-analytics/hugot (#5243) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a22f226e3bc..1827cbe1858 100644 --- a/README.md +++ b/README.md @@ -1608,6 +1608,7 @@ _Libraries for Machine Learning._ - [gorse](https://github.com/zhenghaoz/gorse) - An offline recommender system backend based on collaborative filtering written in Go. - [goscore](https://github.com/asafschers/goscore) - Go Scoring API for PMML. - [gosseract](https://github.com/otiai10/gosseract) - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. +- [hugot](https://github.com/knights-analytics/hugot) - Huggingface transformer pipelines for golang with onnxruntime. - [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. - [m2cgen](https://github.com/BayesWitnesses/m2cgen) - A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies, written in Python with Go language support. - [neat](https://github.com/jinyeom/neat) - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT). From a4d76dbbf7692257a0b2c534fa8f1ed131c14d6a Mon Sep 17 00:00:00 2001 From: KH <96801545+kleineshertz@users.noreply.github.com> Date: Tue, 4 Jun 2024 19:10:16 -0700 Subject: [PATCH 3317/3440] Added capillaries (#5133) * Added capillaries * Trigger Build * Trigger Build --------- Co-authored-by: KH <> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1827cbe1858..ad1ae8d3092 100644 --- a/README.md +++ b/README.md @@ -926,6 +926,7 @@ _Packages that help with building Distributed Systems._ - [arpc](https://github.com/lesismal/arpc) - More effective network communication, support two-way-calling, notify, broadcast. - [bedrock](https://github.com/z5labs/bedrock) - Provides a minimal, modular and composable foundation for quickly developing services and more use case specific frameworks in Go. +- [capillaries](https://github.com/capillariesio/capillaries) - distributed batch data processing framework. - [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. - [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads. - [consistenthash](https://github.com/mbrostami/consistenthash) - Consistent hashing with configurable replicas. From 77f795aa485e42ae7190b337670a37d0f35bb629 Mon Sep 17 00:00:00 2001 From: Deatil <2217957370@qq.com> Date: Wed, 5 Jun 2024 10:13:24 +0800 Subject: [PATCH 3318/3440] add go-array (#5236) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad1ae8d3092..523338580a8 100644 --- a/README.md +++ b/README.md @@ -467,6 +467,7 @@ _Libraries for configuration parsing._ - [envh](https://github.com/antham/envh) - Helpers to manage environment variables. - [fig](https://github.com/kkyr/fig) - Tiny library for reading configuration from a file and from environment variables (with validation & defaults). - [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support. +- [go-array](https://github.com/deatil/go-array) - A Go package that read or set data from map, slice or json. - [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store. - [go-cfg](https://github.com/dsbasko/go-cfg) - The library provides a unified way to read configuration data into a structure from various sources, such as env, flags, and configuration files (.json, .yaml, .toml, .env). - [go-conf](https://github.com/ThomasObenaus/go-conf) - Simple library for application configuration based on annotated structs. It supports reading the configuration from environment variables, config files and command line parameters. From 864c97f0cf099380c5732fcaacceae3341abe6af Mon Sep 17 00:00:00 2001 From: Steve Manuel Date: Wed, 5 Jun 2024 07:59:58 -0600 Subject: [PATCH 3319/3440] feat: add extism go-sdk (#5143) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 523338580a8..89544aab43d 100644 --- a/README.md +++ b/README.md @@ -3041,6 +3041,7 @@ _Full stack web frameworks._ ## WebAssembly - [dom](https://github.com/dennwc/dom) - DOM library. +- [Extism Go SDK](https://github.com/extism/go-sdk) - Universal, cross-language WebAssembly framework for building plug-in systems and polyglot apps. - [go-canvas](https://github.com/markfarnan/go-canvas) - Library to use HTML5 Canvas, with all drawing within go code. - [tinygo](https://github.com/tinygo-org/tinygo) - Go compiler for small places. Microcontrollers, WebAssembly, and command-line tools. Based on LLVM. - [vert](https://github.com/norunners/vert) - Interop between Go and JS values. From 3fb2e408f76b5b333569c932388c947c4c8ee7ad Mon Sep 17 00:00:00 2001 From: Jagerente <47350537+Jagerente@users.noreply.github.com> Date: Wed, 5 Jun 2024 21:02:41 +0700 Subject: [PATCH 3320/3440] Add GoCfg (#5272) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89544aab43d..b2e0274134c 100644 --- a/README.md +++ b/README.md @@ -474,6 +474,7 @@ _Libraries for configuration parsing._ - [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files. - [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store). - [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic. +- [GoCfg](https://github.com/Jagerente/gocfg) - Config manager with Struct Tags based contracts, custom value providers, parsers, and documentation generation. Customizable yet simple. - [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from 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. From 697a191a376799f5799b4ae55c6127f2d31b03a2 Mon Sep 17 00:00:00 2001 From: Adam Glazer <116560988+greencoda@users.noreply.github.com> Date: Wed, 5 Jun 2024 16:04:28 +0200 Subject: [PATCH 3321/3440] Adds greencoda/confiq (#5284) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b2e0274134c..b4f8ca59ff8 100644 --- a/README.md +++ b/README.md @@ -457,6 +457,7 @@ _Libraries for configuration parsing._ - [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. - [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. - [configuro](https://github.com/sherifabdlnaby/configuro) - opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications. +- [confiq](https://github.com/greencoda/confiq) - Structured data format to config struct decoder library for Go - supporting multiple data formats - [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct. - [conflate](https://github.com/the4thamigo-uk/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. - [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). From f403e6677ccbb528bc8d4e509a8fac71fe67b5a0 Mon Sep 17 00:00:00 2001 From: chai2010 Date: Wed, 5 Jun 2024 22:17:24 +0800 Subject: [PATCH 3322/3440] add KusionStack for DevOps Tools (#4511) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b4f8ca59ff8..06c8d9a943d 100644 --- a/README.md +++ b/README.md @@ -3251,6 +3251,7 @@ _Software written in Go._ - [kubeshark](https://github.com/kubeshark/kubeshark) - API traffic analyzer for Kubernetes, inspired by Wireshark, purposely built for Kubernetes. - [KubeVela](https://github.com/kubevela/kubevela) - Cloud native application delivery. - [kubevpn](https://github.com/kubenetworks/kubevpn) - VPN tools to connect kubernetes cluster network and proxy workloads inbound traffic to local PC with service mesh. +- [KusionStack](https://github.com/KusionStack/kusion) - A unified programmable configuration techstack to deliver modern app in 'platform as code' and 'infra as code' approach. - [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly. - [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. - [lwc](https://github.com/timdp/lwc) - A live-updating version of the UNIX wc command. From 30388000948c68029b626b160d2443ebd5a5b29b Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Wed, 5 Jun 2024 19:56:01 +0530 Subject: [PATCH 3323/3440] add gitcs Missed in #5207 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06c8d9a943d..70f4b488621 100644 --- a/README.md +++ b/README.md @@ -2698,6 +2698,7 @@ _General utilities and tools to make your life easier._ - [ghokin](https://github.com/antham/ghokin) - Parallelized formatter with no external dependencies for gherkin (cucumber, behat...). - [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git. - [gitbatch](https://github.com/isacikgoz/gitbatch) - manage your git repositories in one place. +- [gitcs](https://github.com/knbr13/gitcs/) - Git Commits Visualizer, CLI tool to visualize your Git commits on your local machine. - [go-actuator](https://github.com/sinhashubham95/go-actuator) - Production ready features for Go based web frameworks. - [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). From c4f047d5e2a466a02b8221b4074060838b8cc580 Mon Sep 17 00:00:00 2001 From: Daniel Gregoire Date: Thu, 6 Jun 2024 02:13:14 -0400 Subject: [PATCH 3324/3440] Add goal embeddable scripting language (#5307) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 70f4b488621..c3e0d51a6f2 100644 --- a/README.md +++ b/README.md @@ -1045,6 +1045,7 @@ _Embedding other languages inside your go code._ - [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. +- [goal](https://codeberg.org/anaseto/goal) - An embeddable scripting array language. - [goja](https://github.com/dop251/goja) - ECMAScript 5.1(+) implementation in Go. - [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. From 048f29cdd4c9dfd67916d6d8fb3d08bb4cdb271c Mon Sep 17 00:00:00 2001 From: Ngoc Phuong Date: Thu, 30 May 2024 22:42:14 +0700 Subject: [PATCH 3325/3440] Add Fastschema: A flexible Go web framework and Headless CMS. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c3e0d51a6f2..ffd34652809 100644 --- a/README.md +++ b/README.md @@ -2925,6 +2925,7 @@ _Full stack web frameworks._ - [Confetti Framework](https://confetti-framework.github.io/docs/) - Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go. - [Don](https://github.com/abemedia/go-don) - A highly performant and simple to use API framework. - [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. +- [Fastschema](https://github.com/fastschema/fastschema) - A flexible Go web framework and Headless CMS. - [Fiber](https://github.com/gofiber/fiber) - An Express.js inspired web framework build on Fasthttp. - [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. - [Flamingo](https://github.com/i-love-flamingo/flamingo) - Framework for pluggable web projects. Including a concept for modules and offering features for DI, Configareas, i18n, template engines, graphql, observability, security, events, routing & reverse routing etc. From 8df52804217979bde8cf8fe36655a6c4a7605a02 Mon Sep 17 00:00:00 2001 From: Mingyong Chen <67659676+chenmingyong0423@users.noreply.github.com> Date: Sun, 2 Jun 2024 19:22:09 +0800 Subject: [PATCH 3326/3440] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ffd34652809..815e99aa14e 100644 --- a/README.md +++ b/README.md @@ -868,9 +868,9 @@ _Libraries for building and using SQL._ - [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB. - [goriak](https://github.com/zegl/goriak) - Go language driver for Riak KV. - [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. -- [mgm](https://github.com/kamva/mgm) - MongoDB model-based ODM for Go (based on official MongoDB driver). -- [mgo](https://github.com/globalsign/mgo) - (unmaintained) 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. -- [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. +- [mgm](https://github.com/kamva/mgm) - DB model-based ODM for Go (based on official DB driver). +- [mgo](https://github.com/globalsign/mgo) - (unmaintained) DB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms. +- [-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. - [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. @@ -880,6 +880,7 @@ _Libraries for building and using SQL._ - [redis](https://github.com/redis/go-redis) - Redis client for Golang. - [rueidis](http://github.com/rueian/rueidis) - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching. - [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. +- [go-mongox](https://github.com/chenmingyong0423/go-mongox) - A Go Mongo library based on the official driver, featuring streamlined document operations, generic binding of structs to collections, built-in CRUD, aggregation, automated field updates, struct validation, hooks, and plugin-based programming. ### Search and Analytic Databases From 8c1a1d4bc29405c358cb8e587ad0036ce2fd2679 Mon Sep 17 00:00:00 2001 From: Mingyong Chen <67659676+chenmingyong0423@users.noreply.github.com> Date: Fri, 7 Jun 2024 18:29:10 +0800 Subject: [PATCH 3327/3440] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 815e99aa14e..d32e85ba6ab 100644 --- a/README.md +++ b/README.md @@ -868,9 +868,9 @@ _Libraries for building and using SQL._ - [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB. - [goriak](https://github.com/zegl/goriak) - Go language driver for Riak KV. - [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. -- [mgm](https://github.com/kamva/mgm) - DB model-based ODM for Go (based on official DB driver). -- [mgo](https://github.com/globalsign/mgo) - (unmaintained) DB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms. -- [-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. +- [mgm](https://github.com/kamva/mgm) - MongoDB model-based ODM for Go (based on official MongoDB driver). +- [mgo](https://github.com/globalsign/mgo) - (unmaintained) 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. +- [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language. - [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. From 25455ea4eeb91228ea43a4f244e27aa86182e4ca Mon Sep 17 00:00:00 2001 From: Mingyong Chen <67659676+chenmingyong0423@users.noreply.github.com> Date: Fri, 7 Jun 2024 18:32:18 +0800 Subject: [PATCH 3328/3440] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d32e85ba6ab..77058899b51 100644 --- a/README.md +++ b/README.md @@ -856,6 +856,7 @@ _Libraries for building and using SQL._ - [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. - [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. - [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go. +- [go-mongox](https://github.com/chenmingyong0423/go-mongox) - A Go Mongo library based on the official driver, featuring streamlined document operations, generic binding of structs to collections, built-in CRUD, aggregation, automated field updates, struct validation, hooks, and plugin-based programming. - [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa. - [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. - [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. @@ -880,7 +881,6 @@ _Libraries for building and using SQL._ - [redis](https://github.com/redis/go-redis) - Redis client for Golang. - [rueidis](http://github.com/rueian/rueidis) - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching. - [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. -- [go-mongox](https://github.com/chenmingyong0423/go-mongox) - A Go Mongo library based on the official driver, featuring streamlined document operations, generic binding of structs to collections, built-in CRUD, aggregation, automated field updates, struct validation, hooks, and plugin-based programming. ### Search and Analytic Databases From 27f7ac9c24d45daaf97d244957608edd141607a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E9=B9=8F?= Date: Sun, 9 Jun 2024 10:39:40 +0800 Subject: [PATCH 3329/3440] Add Gone (#5320) Co-authored-by: dapeng --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 77058899b51..e3514086251 100644 --- a/README.md +++ b/README.md @@ -2945,6 +2945,7 @@ _Full stack web frameworks._ - [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. - [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. +- [Gone](https://github.com/gone-io/gone) - A lightweight dependency injection and web framework inspired by Spring. - [gongular](https://github.com/mustafaakin/gongular) - Fast Go web framework with input mapping/validation and (DI) Dependency Injection. - [GoTuna](https://github.com/gotuna/gotuna) - Minimalistic web framework for Go with mux router, middlewares, sessions, templates, embedded views and static files. - [goweb](https://github.com/twharmon/goweb) - Web framework with routing, websockets, logging, middleware, static file server (optional gzip), and automatic TLS. From 7da96bec0a298e03fc36b7471802231e30c49733 Mon Sep 17 00:00:00 2001 From: Kelvin Mwinuka Date: Sun, 9 Jun 2024 19:16:17 +0800 Subject: [PATCH 3330/3440] Add EchoVault to Database, Caches --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e3514086251..67fba922c98 100644 --- a/README.md +++ b/README.md @@ -677,6 +677,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration. - [coherence-go-client](https://github.com/oracle/coherence-go-client) - Full implementation of Oracle Coherence cache API for Go applications using gRPC as network transport. - [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. +- [EchoVault](https://github.com/EchoVault/EchoVault) - Embeddable Distributed in-memory data store compatible with Redis clients. - [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. - [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. - [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. From f1cc2e698efe7f54c5fb1810dc0fb847feea0a27 Mon Sep 17 00:00:00 2001 From: DrSheppard <60893791+Drsheppard01@users.noreply.github.com> Date: Wed, 12 Jun 2024 07:19:07 +0300 Subject: [PATCH 3331/3440] fix:typo (#5335) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 67fba922c98..31d20d4ef7c 100644 --- a/README.md +++ b/README.md @@ -1341,7 +1341,7 @@ _Toolkits_ - [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). -- [Spot](https://github/roblillack/spot) - Reactive, cross-platform desktop GUI toolkit. +- [Spot](https://github.com/roblillack/spot) - Reactive, cross-platform desktop GUI toolkit. - [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. Cross platform. - [unison](https://github.com/richardwilkes/unison) - A unified graphical user experience toolkit for Go desktop applications. macOS, Windows, and Linux are supported. - [Wails](https://wails.io) - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer. From 3773933777fbd3b67b2692dbbd96ea69cbb63ffb Mon Sep 17 00:00:00 2001 From: Victor Conner Date: Tue, 11 Jun 2024 07:39:04 +0200 Subject: [PATCH 3332/3440] Add sturdyc --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 31d20d4ef7c..0221e48af99 100644 --- a/README.md +++ b/README.md @@ -516,7 +516,7 @@ _Tools for help with continuous integration._ - [Bencher](https://bencher.dev/) - A suite of continuous benchmarking tools designed to catch performance regressions in CI. - [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. -- [dot](https://github.com/opnlabs/dot) - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages. +- [dot](https://github.com/opnlabs/dot) - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages. - [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. - [go-beautiful-html-coverage](https://github.com/gha-common/go-beautiful-html-coverage) - A GitHub Action to track code coverage in your pull requests, with a beautiful HTML preview, for free. - [go-fuzz-action](https://github.com/jidicula/go-fuzz-action) - Use Go 1.18's built-in fuzz testing in GitHub Actions. @@ -607,7 +607,7 @@ additional ordered map implementations. - [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. - [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. - [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. -- [plinko](https://github.com/shipt/plinko) - A finite state machine and workflow orchestrator that compiles for fast execution, easy debugging, auto-generated documentation. Includes advanced features such as side-effect hooks. +- [plinko](https://github.com/shipt/plinko) - A finite state machine and workflow orchestrator that compiles for fast execution, easy debugging, auto-generated documentation. Includes advanced features such as side-effect hooks. - [quadtree](https://github.com/s0rg/quadtree) - Generic, zero-alloc, 100%-test covered quadtree. - [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. - [slices](https://github.com/twharmon/slices) - Pure, generic functions for slices. @@ -691,6 +691,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [nscache](https://github.com/no-src/nscache) - A Go caching framework that supports multiple data source drivers. - [otter](https://github.com/maypok86/otter) - A high performance lockless cache for Go. Many times faster than Ristretto and friends. - [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). +- [sturdyc](https://github.com/creativecreature/sturdyc) - A caching library with advanced concurrency features designed to make I/O heavy applications both robust and highly performant. - [theine](https://github.com/Yiling-J/theine-go) - High performance, near optimal in-memory cache with proactive TTL expiration and generics. - [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. - [ttlcache](https://github.com/jellydator/ttlcache) - An in-memory cache with item expiration and generics. @@ -1754,7 +1755,7 @@ _**Unofficial** set of patterns for structuring projects._ - [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. - [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. - [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. -- [nunu](https://github.com/go-nunu/nunu) - Nunu is a scaffolding tool for building Go applications. +- [nunu](https://github.com/go-nunu/nunu) - Nunu is a scaffolding tool for building Go applications. - [pagoda](https://github.com/mikestefanello/pagoda) - Rapid, easy full-stack web development starter kit built in Go. - [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. - [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout. @@ -2713,7 +2714,7 @@ _General utilities and tools to make your life easier._ - [go-funk](https://github.com/thoas/go-funk) - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...). - [go-health](https://github.com/Talento90/go-health) - Health package simplifies the way you add health check to your services. - [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. -- [go-lambda-cleanup](https://github.com/karl-cardenas-coding/go-lambda-cleanup) - A CLI for removing unused or previous versions of AWS Lambdas. +- [go-lambda-cleanup](https://github.com/karl-cardenas-coding/go-lambda-cleanup) - A CLI for removing unused or previous versions of AWS Lambdas. - [go-lock](https://github.com/viney-shih/go-lock) - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation. - [go-pattern-match](https://github.com/PhakornKiong/go-pattern-match) - A Pattern matching library inspired by ts-pattern. - [go-pkg](https://github.com/chenquan/go-pkg) - A go toolkit. From 40b3d60bb8740cf217d94e2f34e9f67c3494d7be Mon Sep 17 00:00:00 2001 From: Victor Conner Date: Wed, 12 Jun 2024 20:42:07 +0200 Subject: [PATCH 3333/3440] Update the description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0221e48af99..3ab96c73991 100644 --- a/README.md +++ b/README.md @@ -691,7 +691,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [nscache](https://github.com/no-src/nscache) - A Go caching framework that supports multiple data source drivers. - [otter](https://github.com/maypok86/otter) - A high performance lockless cache for Go. Many times faster than Ristretto and friends. - [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). -- [sturdyc](https://github.com/creativecreature/sturdyc) - A caching library with advanced concurrency features designed to make I/O heavy applications both robust and highly performant. +- [sturdyc](https://github.com/creativecreature/sturdyc) - A caching library with advanced concurrency features designed to make I/O heavy applications robust and highly performant. - [theine](https://github.com/Yiling-J/theine-go) - High performance, near optimal in-memory cache with proactive TTL expiration and generics. - [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs. - [ttlcache](https://github.com/jellydator/ttlcache) - An in-memory cache with item expiration and generics. From 054ac053ff3170526afd0f30ad15dfa66514de50 Mon Sep 17 00:00:00 2001 From: Kyle Capehart Date: Mon, 24 Jun 2024 23:17:14 -0400 Subject: [PATCH 3334/3440] add go-salesforce under Third-party APIs category (#5342) Co-authored-by: Phani Rithvij --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3ab96c73991..0d36a92533f 100644 --- a/README.md +++ b/README.md @@ -2586,8 +2586,8 @@ _Libraries for accessing third party APIs._ - [go-postman-collection](https://github.com/rbretecher/go-postman-collection) - Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia). - [go-redoc](https://github.com/mvrilo/go-redoc) - Embedded OpenAPI/Swagger documentation ui for Go using [ReDoc](https://redocly.com/). - [go-restcountries](https://github.com/chriscross0/go-restcountries) - Go library for the [REST Countries API](https://countrylayer.com/). +- [go-salesforce](https://github.com/k-capehart/go-salesforce) - Go client library for interacting with the [Salesforce REST API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_list.htm). - [go-sophos](https://github.com/esurdam/go-sophos) - Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies. -- [go-sptrans](https://github.com/sergioaugrod/go-sptrans) - Go client library for the SPTrans Olho Vivo API. - [go-swagger-ui](https://github.com/esurdam/go-swagger-ui) - Go library containing precompiled [Swagger UI](https://swagger.io/tools/swagger-ui/) for serving swagger json. - [go-telegraph](https://gitlab.com/toby3d/telegraph) - Telegraph publishing platform API client. - [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. From a5010db1a46426ffd86704242597053374a40d0d Mon Sep 17 00:00:00 2001 From: Sam Lown Date: Mon, 24 Jun 2024 20:19:04 -0700 Subject: [PATCH 3335/3440] Adding ctxi18n to translations section. (#5288) --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 0d36a92533f..027eed73e3d 100644 --- a/README.md +++ b/README.md @@ -1896,13 +1896,12 @@ See also [Text Processing](#text-processing) and [Text Analysis](#text-analysis) ### Translation +- [ctxi18n](https://github.com/invopop/ctxi18n/) - Context aware i18n with a short and consise API, pluralization, interpolation, and `fs.FS` support. YAML locale definitions are based on [Rails i18n](https://guides.rubyonrails.org/i18n.html). - [go-i18n](https://github.com/nicksnyder/go-i18n/) - Package and an accompanying tool to work with localized text. -- [go-localize](https://github.com/m1/go-localize) - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings. - [go-mystem](https://github.com/dveselov/mystem) - CGo bindings to Yandex.Mystem - russian morphology analyzer. - [go-pinyin](https://github.com/mozillazg/go-pinyin) - CN Hanzi to Hanyu Pinyin converter. - [go-words](https://github.com/saleh-rahimzadeh/go-words) - A words table and text resource library for Golang projects. - [gotext](https://github.com/leonelquinteros/gotext) - GNU gettext utilities for Go. -- [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. - [iuliia-go](https://github.com/mehanizm/iuliia-go) - Transliterate Cyrillic → Latin in every possible way. - [spreak](https://github.com/vorlif/spreak) - Flexible translation and humanization library for Go, based on the concepts behind gettext. - [t](https://github.com/youthlin/t) - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. From 4a7c821f4c387fdf2403f688f445372d7798e10f Mon Sep 17 00:00:00 2001 From: James Pond Date: Tue, 25 Jun 2024 03:20:12 +0000 Subject: [PATCH 3336/3440] Add acopw-go to the Security category (#4884) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 027eed73e3d..b531896353c 100644 --- a/README.md +++ b/README.md @@ -2189,6 +2189,7 @@ _Libraries for scientific computing and data analyzing._ _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. +- [acopw-go](https://sr.ht/~jamesponddotco/acopw-go/) - Small cryptographically secure password generator package for Go. - [acra](https://github.com/cossacklabs/acra) - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system. - [age](https://github.com/FiloSottile/age) - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. - [argon2-hashing](https://github.com/andskur/argon2-hashing) - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package. From 2fa68de5b4f7d40fee54709c984c20492bddcdc6 Mon Sep 17 00:00:00 2001 From: Mohammad Date: Tue, 25 Jun 2024 12:21:20 +0900 Subject: [PATCH 3337/3440] add iCache (#4501) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b531896353c..a0f5ee00906 100644 --- a/README.md +++ b/README.md @@ -687,6 +687,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [gocache](https://github.com/eko/gocache) - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. - [gocache](https://github.com/yuseferi/gocache) - A data race free Go ache library with high performance and auto pruge functionality - [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. +- [icache](https://github.com/mdaliyan/icache) - A High Performance, Generic, thread-safe, zero-dependency cache package. - [imcache](https://github.com/erni27/imcache) - A generic in-memory cache Go library. It supports expiration, sliding expiration, max entries limit, eviction callbacks and sharding. - [nscache](https://github.com/no-src/nscache) - A Go caching framework that supports multiple data source drivers. - [otter](https://github.com/maypok86/otter) - A high performance lockless cache for Go. Many times faster than Ristretto and friends. From b1fe969cefb4684e8365056de651535e30e0ac20 Mon Sep 17 00:00:00 2001 From: "Roman A. Grigorovich" Date: Tue, 25 Jun 2024 06:29:17 +0300 Subject: [PATCH 3338/3440] add bob in ORM section (#5248) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a0f5ee00906..a619b2d1a47 100644 --- a/README.md +++ b/README.md @@ -2037,6 +2037,7 @@ _Libraries for using OpenGL in Go._ _Libraries that implement Object-Relational Mapping or datamapping techniques._ +- [bob](https://github.com/stephenafamo/bob) - SQL query builder and ORM/Factory generator for Go. Successor of SQLBoiler. - [bun](https://github.com/uptrace/bun) - SQL-first Golang ORM. Successor of go-pg. - [cacheme](https://github.com/Yiling-J/cacheme-go) - Schema based, typed Redis caching/memoize framework for Go. - [CQL](https://github.com/FrancoLiberali/cql) - Built on top of GORM, adds compile-time verified queries based on auto-generated code. From 84ceb6be31e129b1430285103cfffa46fdd7b5dd Mon Sep 17 00:00:00 2001 From: Jonathan Halterman Date: Mon, 24 Jun 2024 20:30:27 -0700 Subject: [PATCH 3339/3440] Add failsafe-go (#5245) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a619b2d1a47..cf33a022d2d 100644 --- a/README.md +++ b/README.md @@ -2696,6 +2696,7 @@ _General utilities and tools to make your life easier._ - [equalizer](https://github.com/reugn/equalizer) - Quota manager and rate limiter collection for Go. - [ergo](https://github.com/cristianoliveira/ergo) - The management of multiple local services running over different ports made easy. - [evaluator](https://github.com/nullne/evaluator) - Evaluate an expression dynamically based on s-expression. It's simple and easy to extend. +- [Failsafe-go](https://github.com/failsafe-go/failsafe-go) - Fault tolerance and resilience patterns for Go. - [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. - [filter](https://github.com/gookit/filter) - provide filtering, sanitizing, and conversion of Go data. From acbccc9bdefd69d6241c77000cae7669e13d5b59 Mon Sep 17 00:00:00 2001 From: Kenta Takeuchi Date: Wed, 26 Jun 2024 15:33:57 +0900 Subject: [PATCH 3340/3440] Add gondola (#5344) * [update] add gondola * [fix] order * [fix] format --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cf33a022d2d..cb7f161d8c8 100644 --- a/README.md +++ b/README.md @@ -2280,6 +2280,7 @@ _Libraries and tools for binary serialization._ - [flipt](https://github.com/markphelps/flipt) - A self contained feature flag solution written in Go and Vue.js - [go-feature-flag](https://github.com/thomaspoignant/go-feature-flag) - A simple, complete and lightweight self-hosted feature flag solution 100% Open Source. - [go-proxy-cache](https://github.com/fabiocicerchia/go-proxy-cache) - Simple Reverse Proxy with Caching, written in Go, using Redis. +- [gondola](https://github.com/bmf-san/gondola) - A YAML based golang reverse proxy. - [jackal](https://github.com/ortuman/jackal) - An XMPP server written in Go. - [lets-proxy2](https://github.com/rekby/lets-proxy2) - Reverse proxy for handle https with issue certificates in fly from lets-encrypt. - [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. From ce6716b842bc1fa90a9102a4664c514d1c478b7b Mon Sep 17 00:00:00 2001 From: Filippov Alex Date: Fri, 28 Jun 2024 14:28:43 +0530 Subject: [PATCH 3341/3440] add smart-home to the IoT category (#5237) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cb7f161d8c8..0fa95e3366f 100644 --- a/README.md +++ b/README.md @@ -1444,6 +1444,7 @@ _Libraries for programming devices of the IoT._ - [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. - [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. - [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. +- [smart-home](https://github.com/e154/smart-home) - Software package for IoT automation. **[⬆ back to top](#contents)** From f28e6770b0e65b4d37c1031f8debcacf92b2a7a5 Mon Sep 17 00:00:00 2001 From: Chase Pierce Date: Wed, 17 Jul 2024 20:45:57 -0600 Subject: [PATCH 3342/3440] Adding env (#5361) * adding env package * alphabetical based on link * remove packages around the addition * Revert indentation fix for a different PR to solve. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 0fa95e3366f..b3d12d504b3 100644 --- a/README.md +++ b/README.md @@ -462,8 +462,7 @@ _Libraries for configuration parsing._ - [conflate](https://github.com/the4thamigo-uk/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema. - [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). - [env](https://github.com/junk1tm/env) - A lightweight package for loading environment variables into structs. -- [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. -- [envconf](https://github.com/ian-kent/envconf) - Configuration from environment. +- [env](https://github.com/syntaqx/env) - An environment utility package with support for unmarshaling into structs - [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. - [envh](https://github.com/antham/envh) - Helpers to manage environment variables. - [fig](https://github.com/kkyr/fig) - Tiny library for reading configuration from a file and from environment variables (with validation & defaults). From 36c6b4307d042ae385de01bef97b586b2258bac7 Mon Sep 17 00:00:00 2001 From: Nguyen Dang Quy Date: Thu, 18 Jul 2024 21:06:46 +0700 Subject: [PATCH 3343/3440] Add go-blueprint quick create project tool (#5362) Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3d12d504b3..6568c4ac851 100644 --- a/README.md +++ b/README.md @@ -1747,6 +1747,7 @@ _**Unofficial** set of patterns for structuring projects._ - [ardanlabs/service](https://github.com/ardanlabs/service) - A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications. - [cookiecutter-golang](https://github.com/lacion/cookiecutter-golang) - A Go application boilerplate template for quick starting projects following production best practices. +- [go-blueprint](https://github.com/Melkeydev/go-blueprint) - Allows users to spin up a quick Go project using a popular framework. - [go-module](https://github.com/octomation/go-module) - Template for a typical module written on Go. - [go-sample](https://github.com/zitryss/go-sample) - A sample layout for Go application projects with the real code. - [go-starter](https://github.com/allaboutapps/go-starter) - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers. From 56d513715b2a1a095d3c6f208c5cbc6e166161d8 Mon Sep 17 00:00:00 2001 From: taramk Date: Mon, 22 Jul 2024 12:21:36 -0700 Subject: [PATCH 3344/3440] Add DarwinKit (#5360) * Add DarwinKit * Move DarwinKit from Go Tools to GUI --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6568c4ac851..98f32150f34 100644 --- a/README.md +++ b/README.md @@ -1332,6 +1332,7 @@ _Libraries for building GUI Applications._ _Toolkits_ - [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. +- [DarwinKit](https://github.com/progrium/darwinkit) - Build native macOS applications using Go. - [energy](https://github.com/energye/energy) - Cross-platform based on LCL(Native System UI Control Library) and CEF(Chromium Embedded Framework) (Windows/ macOS / Linux) - [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. - [gio](https://gioui.org) - Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly. From 561316e4f110c9ad323b365ce6797b8b99e42793 Mon Sep 17 00:00:00 2001 From: Roman Sharkov Date: Mon, 22 Jul 2024 21:22:39 +0200 Subject: [PATCH 3345/3440] Add github.com/romshark/yamagiconf (#5357) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 98f32150f34..f6c41e4a1f8 100644 --- a/README.md +++ b/README.md @@ -506,6 +506,7 @@ _Libraries for configuration parsing._ - [viper](https://github.com/spf13/viper) - Go configuration with fangs. - [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). - [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). +- [yamagiconf](https://github.com/romshark/yamagiconf) - The "safe subset" of YAML for Go configs. **[⬆ back to top](#contents)** From ce4eafa46bd1c35ae363e66bc89f989bc0229ece Mon Sep 17 00:00:00 2001 From: lucario <48748794+xgzlucario@users.noreply.github.com> Date: Tue, 23 Jul 2024 03:24:32 +0800 Subject: [PATCH 3346/3440] Add xgzlucario/rotom (#5364) * feat: Add xgzlucario/rotom * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6c41e4a1f8..36231b74b81 100644 --- a/README.md +++ b/README.md @@ -736,6 +736,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. - [regatta](https://github.com/jamf/regatta) - Fast, simple, geo-distributed KV store built for cloud native era. - [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. +- [rotom](https://github.com/xgzlucario/rotom) - A tiny Redis server built with Golang, compatible with RESP protocols. - [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. - [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items. - [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. From 2e13219ba093aa3acca24a55fe75586f6c68aa22 Mon Sep 17 00:00:00 2001 From: yassinebenaid Date: Tue, 23 Jul 2024 02:10:02 +0100 Subject: [PATCH 3347/3440] Add godump (#5347) * add godump * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 36231b74b81..d603032e768 100644 --- a/README.md +++ b/README.md @@ -2492,6 +2492,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [go-fasttld](https://github.com/elliotwutingfeng/go-fasttld) - High performance effective top level domains (eTLD) extraction module. - [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. - [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. +- [godump](https://github.com/yassinebenaid/godump) - Pretty print any GO variable with ease, an alternative to Go's `fmt.Printf("%#v")`. - [gofeed](https://github.com/mmcdole/gofeed) - Parse RSS and Atom feeds in Go. - [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. - [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts. From af7db42dbcc37f4d647a21a6d32931c52cc805e2 Mon Sep 17 00:00:00 2001 From: Yusuf Can Bayrak Date: Thu, 25 Jul 2024 13:13:59 +0200 Subject: [PATCH 3348/3440] Add tlm (#5249) https://github.com/yusufcanb/tlm added to devops tools. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d603032e768..17c1594fb60 100644 --- a/README.md +++ b/README.md @@ -3294,6 +3294,7 @@ _Software written in Go._ - [tau](https://github.com/taubyte/tau) - Easily build Cloud Computing Platforms with features like Serverless WebAssembly Functions, Frontend Hosting, CI/CD, Object Storage, K/V Database, and Pub-Sub Messaging. - [terraform-provider-openapi](https://github.com/dikhan/terraform-provider-openapi) - Terraform provider plugin that dynamically configures itself at runtime based on an OpenAPI document (formerly known as swagger file) containing the definitions of the APIs exposed. - [tf-profile](https://github.com/datarootsio/tf-profile) - Profiler for Terraform runs. Generate global stats, resource-level stats or visualizations. +- [tlm](https://github.com/yusufcanb/tlm) - Local cli copilot, powered by CodeLLaMa - [traefik](https://github.com/containous/traefik) - Reverse proxy and load balancer with support for multiple backends. - [trubka](https://github.com/xitonix/trubka) - A CLI tool to manage and troubleshoot Apache Kafka clusters with the ability of generically publishing/consuming protocol buffer and plain text events to/from Kafka. - [uTask](https://github.com/ovh/utask) - Automation engine that models and executes business processes declared in yaml. From 150dd02270d5b772d520e5fa5e9b4454d69ac0c4 Mon Sep 17 00:00:00 2001 From: Ewen Quimerc'h <46993939+EwenQuim@users.noreply.github.com> Date: Sun, 28 Jul 2024 13:02:56 +0200 Subject: [PATCH 3349/3440] feat: add Fuego to Web Frameworks section. (#5260) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 17c1594fb60..4cfe2b2d755 100644 --- a/README.md +++ b/README.md @@ -2942,6 +2942,7 @@ _Full stack web frameworks._ - [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. - [Flamingo](https://github.com/i-love-flamingo/flamingo) - Framework for pluggable web projects. Including a concept for modules and offering features for DI, Configareas, i18n, template engines, graphql, observability, security, events, routing & reverse routing etc. - [Flamingo Commerce](https://github.com/i-love-flamingo/flamingo-commerce) - Providing e-commerce features using clean architecture like DDD and ports and adapters, that you can use to build flexible e-commerce applications. +- [Fuego](https://github.com/go-fuego/fuego) - The framework for busy Go developers! Web framework generating OpenAPI 3 spec from source code. - [Gearbox](https://github.com/abahmed/gearbox) - A web framework written in Go with a focus on high performance and memory optimization. - [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. - [Ginrpc](https://github.com/xxjwxc/ginrpc) - Gin parameter automatic binding tool,gin rpc tools. From d1a5c4c0f4012356f2c303843747a2e02584fb1e Mon Sep 17 00:00:00 2001 From: Chase Pierce Date: Sun, 28 Jul 2024 23:15:15 -0600 Subject: [PATCH 3350/3440] Add cookie (#5348) * adding github.com/syntaqx/cookie package * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4cfe2b2d755..0f1087d5464 100644 --- a/README.md +++ b/README.md @@ -2683,6 +2683,7 @@ _General utilities and tools to make your life easier._ - [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. - [config-file-validator](https://github.com/Boeing/config-file-validator) - Cross Platform tool to validate configuration files. - [contextplus](https://github.com/contextplus/contextplus) - Package contextplus provide more easy to use functions for contexts. +- [cookie](https://github.com/syntaqx/cookie) - Cookie struct parsing and helper package. - [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. - [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. - [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standards. From e7f593984613c70cd46f093149a523e98ce49ff6 Mon Sep 17 00:00:00 2001 From: Mehdi Hadeli Date: Mon, 29 Jul 2024 09:19:22 +0330 Subject: [PATCH 3351/3440] Add Go-MediatR (#4625) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0f1087d5464..997bca99ac2 100644 --- a/README.md +++ b/README.md @@ -1659,6 +1659,7 @@ _Libraries that implement messaging systems._ - [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-eventbus](https://github.com/stanipetrosyan/go-eventbus) - Simple Event Bus package for Go. +- [Go-MediatR](https://github.com/mehdihadeli/Go-MediatR) - A library for handling mediator patterns and simplified CQRS patterns within an event-driven architecture, inspired by csharp MediatR library. - [go-mq](https://github.com/cheshir/go-mq) - RabbitMQ client with declarative configuration. - [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. From da5e9f349eb6cebf1389072cd1c7188dfa137557 Mon Sep 17 00:00:00 2001 From: naison <895703375@qq.com> Date: Mon, 29 Jul 2024 18:17:22 +0800 Subject: [PATCH 3352/3440] Update README.md (#5369) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 997bca99ac2..08e2d31de96 100644 --- a/README.md +++ b/README.md @@ -3269,7 +3269,7 @@ _Software written in Go._ - [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. - [kubeshark](https://github.com/kubeshark/kubeshark) - API traffic analyzer for Kubernetes, inspired by Wireshark, purposely built for Kubernetes. - [KubeVela](https://github.com/kubevela/kubevela) - Cloud native application delivery. -- [kubevpn](https://github.com/kubenetworks/kubevpn) - VPN tools to connect kubernetes cluster network and proxy workloads inbound traffic to local PC with service mesh. +- [KubeVPN](https://github.com/kubenetworks/kubevpn) - KubeVPN offers a Cloud-Native Dev Environment that seamlessly connects to your Kubernetes cluster network. - [KusionStack](https://github.com/KusionStack/kusion) - A unified programmable configuration techstack to deliver modern app in 'platform as code' and 'infra as code' approach. - [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly. - [lstags](https://github.com/ivanilves/lstags) - Tool and API to sync Docker images across different registries. From b8ee1ad3891ef014b3f6ff3ef23c4e8896fc3ba4 Mon Sep 17 00:00:00 2001 From: Sudhanshu Mohan Date: Sat, 3 Aug 2024 17:24:41 +0530 Subject: [PATCH 3353/3440] add net in networking (#4472) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 08e2d31de96..73df1e323c3 100644 --- a/README.md +++ b/README.md @@ -1976,6 +1976,7 @@ _Libraries for working with various layers of the network._ - [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. - [natiu-mqtt](https://github.com/soypat/natiu-mqtt) - A dead-simple, non-allocating, low level implementation of MQTT well suited for embedded systems. - [nbio](https://github.com/lesismal/nbio) - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. +- [net](https://golang.org/x/net) - This repository holds supplementary Go networking libraries. - [netpoll](https://github.com/cloudwego/netpoll) - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance. - [NFF-Go](https://github.com/intel-go/nff-go) - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). - [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. From 1c49bd14fc79e6892a07e0a7168676d071367059 Mon Sep 17 00:00:00 2001 From: tiendc Date: Sat, 3 Aug 2024 19:40:19 +0700 Subject: [PATCH 3354/3440] Add go-csvlib (#5354) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 73df1e323c3..802d013c6bb 100644 --- a/README.md +++ b/README.md @@ -2255,6 +2255,7 @@ _Libraries and tools for binary serialization._ - [fwencoder](https://github.com/o1egl/fwencoder) - Fixed width file parser (encoding and decoding library) for Go. - [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for 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. +- [go-csvlib](https://github.com/tiendc/go-csvlib) - High level and rich functionalities CSV serialization/deserialization library. - [go-lctree](https://github.com/sbourlon/go-lctree) - Provides a CLI and primitives to serialize and deserialize [LeetCode binary trees](https://support.leetcode.com/hc/en-us/articles/360011883654-What-does-1-null-2-3-mean-in-binary-tree-representation). - [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. From b9f15da1dcca315dc381164dd0d0cbeacb9ef557 Mon Sep 17 00:00:00 2001 From: yassinebenaid Date: Sun, 4 Aug 2024 16:49:12 +0100 Subject: [PATCH 3355/3440] bump actions/checkout to v4 (#5366) --- .github/workflows/run-check.yaml | 2 +- .github/workflows/site-deploy.yaml | 2 +- .github/workflows/tests.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run-check.yaml b/.github/workflows/run-check.yaml index d2e54c0d126..97258613c92 100644 --- a/.github/workflows/run-check.yaml +++ b/.github/workflows/run-check.yaml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest container: golang:latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Get dependencies run: go get -v -t -d ./... - name: run script diff --git a/.github/workflows/site-deploy.yaml b/.github/workflows/site-deploy.yaml index 4f3a4f15d5c..e69802c6be7 100644 --- a/.github/workflows/site-deploy.yaml +++ b/.github/workflows/site-deploy.yaml @@ -15,7 +15,7 @@ jobs: environment: netlify container: golang:latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Get dependencies run: go get -v -t -d ./... - name: Make awesome-go.com diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 09787968a3c..0ac9bd45fb3 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest container: golang:latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Get dependencies run: go get -v -t -d ./... - name: Run tests From 87df0099364a1bcadc505ef9ec601f4363599da3 Mon Sep 17 00:00:00 2001 From: tiendc Date: Fri, 9 Aug 2024 10:20:43 +0700 Subject: [PATCH 3356/3440] Add go-validator (#5356) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 802d013c6bb..72cb875f19c 100644 --- a/README.md +++ b/README.md @@ -2874,6 +2874,7 @@ _Libraries for working with UUIDs._ _Libraries for validation._ - [checkdigit](https://github.com/osamingo/checkdigit) - Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators (ISBN, EAN, JAN, UPC, etc.). +- [go-validator](https://github.com/tiendc/go-validator) - Validation library using Generics. - [gody](https://github.com/guiferpa/gody) - :balloon: A lightweight struct validator for Go. - [govalid](https://github.com/twharmon/govalid) - Fast, tag-based validation for structs. - [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs. From ef0e2fb0c75574915fd714a24af5283d609afa33 Mon Sep 17 00:00:00 2001 From: Andy <4ndygeiss@gmail.com> Date: Fri, 9 Aug 2024 05:26:29 +0200 Subject: [PATCH 3357/3440] feat: add ecs (#5375) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 72cb875f19c..c4ff2d3bbcf 100644 --- a/README.md +++ b/README.md @@ -1194,6 +1194,7 @@ _Awesome game development libraries._ - [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go. - [Ebitengine](https://github.com/hajimehoshi/ebiten) - dead simple 2D game engine in Go. +- [ecs](https://github.com/andygeiss/ecs) - Build your own Game-Engine based on the Entity Component System concept in Golang. - [engo](https://github.com/EngoEngine/engo) - Engo is an open-source 2D game engine written in Go. It follows the Entity-Component-System paradigm. - [fantasyname](https://github.com/s0rg/fantasyname) - Fantasy names generator. - [g3n](https://github.com/g3n/engine) - Go 3D Game Engine. From 50bc1160b510ec77f5f8db981f1e3f8f5f535851 Mon Sep 17 00:00:00 2001 From: presbrey Date: Mon, 12 Aug 2024 05:05:58 -0400 Subject: [PATCH 3358/3440] Update README.md (#5377) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c4ff2d3bbcf..46348ee8501 100644 --- a/README.md +++ b/README.md @@ -1951,11 +1951,11 @@ _Libraries for working with various layers of the network._ - [gnet](https://github.com/fish-tennis/gnet) - `gnet` is a high-performance networking framework,especially for game servers. - [gNxI](https://github.com/google/gnxi) - A collection of tools for Network Management that use the gNMI and gNOI protocols. - [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. +- [go-multiproxy](https://github.com/presbrey/go-multiproxy) - Library for making HTTP requests through a pool of proxies offering fault tolerance, load balancing, automatic retries, cookie management, and more, via http.Get/Post replacement or http.Client RoundTripper drop-in - [go-powerdns](https://github.com/joeig/go-powerdns) - PowerDNS API bindings for Golang. - [go-sse](https://github.com/lampctl/go-sse) - Go client and server implementation of HTML server-sent events. - [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. - [goshark](https://github.com/sunwxg/goshark) - Package goshark use tshark to decode IP packet and create data struct to analyse packet. From 7cb68f67ff1824b86030a1162deb04f51907faa8 Mon Sep 17 00:00:00 2001 From: Alexei Shevchenko Date: Mon, 12 Aug 2024 13:20:14 +0300 Subject: [PATCH 3359/3440] add grid (#4613) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46348ee8501..87e86526a19 100644 --- a/README.md +++ b/README.md @@ -1203,6 +1203,7 @@ _Awesome game development libraries._ - [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. - [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping. +- [grid](https://github.com/s0rg/grid) - Generic 2D grid with ray-casting, shadow-casting and path finding. - [Harfang3D](https://github.com/harfang3d/harfang3d) - 3D engine for the Go language, works on Windows and Linux ([Harfang on Go.dev](https://github.com/harfang3d/harfang-go)). - [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. - [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework. From b378991a19489f07d955ca98466b2f5cd8135d17 Mon Sep 17 00:00:00 2001 From: Lok Shankar <71455137+lokbiswa@users.noreply.github.com> Date: Mon, 12 Aug 2024 05:42:03 -0500 Subject: [PATCH 3360/3440] Added Last Commit Badge (#4569) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87e86526a19..20095faaabd 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ [![Slack Widget](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red)](https://gophers.slack.com/messages/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status)](https://app.netlify.com/sites/awesome-go/deploys) [![Track Awesome List](https://www.trackawesomelist.com/badge.svg)](https://www.trackawesomelist.com/avelino/awesome-go/) +[![Last Commit](https://img.shields.io/github/last-commit/avelino/awesome-go)](https://img.shields.io/github/last-commit/avelino/awesome-go) We use the _[Golang Bridge](https://github.com/gobridge/about-us/blob/master/README.md)_ community Slack for instant communication, follow the [form here to join](https://invite.slack.golangbridge.org/). From 89d5a14fafb86aea848e05b3f13dd82d34d1567f Mon Sep 17 00:00:00 2001 From: Roman Sheremeta <35638074+RSheremeta@users.noreply.github.com> Date: Mon, 12 Aug 2024 14:26:46 +0300 Subject: [PATCH 3361/3440] added cadence client to job scheduler category (#4825) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20095faaabd..1419d51a4ca 100644 --- a/README.md +++ b/README.md @@ -1457,6 +1457,7 @@ _Libraries for programming devices of the IoT._ _Libraries for scheduling jobs._ +- [Cadence-client] (https://github.com/uber-go/cadence-client) - A framework for authoring workflows and activities running on top of the Cadence orchestration engine made by Uber. - [cdule](https://github.com/deepaksinghvi/cdule) - Job scheduler library with database support - [cheek](https://github.com/datarootsio/cheek) - A simple crontab like scheduler that aims to offer a KISS approach to job scheduling. - [clockwerk](https://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. From 8d9b8088f9fa7772386ff45036bf2d8dd2701048 Mon Sep 17 00:00:00 2001 From: Lz Date: Mon, 12 Aug 2024 21:46:39 +0800 Subject: [PATCH 3362/3440] fix(goroutines): added yaitoo/async (#5240) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1419d51a4ca..70150bccf0a 100644 --- a/README.md +++ b/README.md @@ -1280,6 +1280,7 @@ _Tools for managing and working with Goroutines._ - [ants](https://github.com/panjf2000/ants) - A high-performance and low-cost goroutine pool in Go. - [artifex](https://github.com/borderstech/artifex) - Simple in-memory job queue for Golang using worker-based dispatching. +- [async](https://github.com/yaitoo/async) - An asynchronous task package with async/await style for Go. - [async](https://github.com/reugn/async) - An alternative sync library for Go (Future, Promise, Locks). - [async](https://github.com/studiosol/async) - A safe way to execute functions asynchronously, recovering them in case of panic. - [async-job](https://github.com/lab210-dev/async-job) - AsyncJob is an asynchronous queue job manager with light code, clear and speed. From c154b5b18edc3d605e98e02ac20932b643ce897f Mon Sep 17 00:00:00 2001 From: Kai O'Reilly Date: Mon, 12 Aug 2024 06:48:46 -0700 Subject: [PATCH 3363/3440] add Cogent Core (#5367) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 70150bccf0a..8412b53d3f3 100644 --- a/README.md +++ b/README.md @@ -1338,6 +1338,7 @@ _Libraries for building GUI Applications._ _Toolkits_ - [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. +- [Cogent Core](https://github.com/cogentcore/core) - A framework for building 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the web. - [DarwinKit](https://github.com/progrium/darwinkit) - Build native macOS applications using Go. - [energy](https://github.com/energye/energy) - Cross-platform based on LCL(Native System UI Control Library) and CEF(Chromium Embedded Framework) (Windows/ macOS / Linux) - [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. From 20ce394a69ca249a3889f75732a7090412ec360e Mon Sep 17 00:00:00 2001 From: yassinebenaid Date: Mon, 12 Aug 2024 15:43:53 +0100 Subject: [PATCH 3364/3440] feat (md syntax): Fix inappropriate space between link label and url (#5378) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8412b53d3f3..12e50682f22 100644 --- a/README.md +++ b/README.md @@ -1459,7 +1459,7 @@ _Libraries for programming devices of the IoT._ _Libraries for scheduling jobs._ -- [Cadence-client] (https://github.com/uber-go/cadence-client) - A framework for authoring workflows and activities running on top of the Cadence orchestration engine made by Uber. +- [Cadence-client](https://github.com/uber-go/cadence-client) - A framework for authoring workflows and activities running on top of the Cadence orchestration engine made by Uber. - [cdule](https://github.com/deepaksinghvi/cdule) - Job scheduler library with database support - [cheek](https://github.com/datarootsio/cheek) - A simple crontab like scheduler that aims to offer a KISS approach to job scheduling. - [clockwerk](https://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. From 6b44d3b9da8acff7c537550b58cebd1f5913fa1c Mon Sep 17 00:00:00 2001 From: Artemiy Ryabinkov Date: Mon, 12 Aug 2024 16:32:38 +0100 Subject: [PATCH 3365/3440] Add rabbitroutine (#5226) * Add rabbitroutine * Sort lines --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 12e50682f22..81eeb9d242f 100644 --- a/README.md +++ b/README.md @@ -1691,6 +1691,7 @@ _Libraries that implement messaging systems._ - [oplog](https://github.com/dailymotion/oplog) - Generic oplog/replication system for REST APIs. - [pubsub](https://github.com/tuxychandru/pubsub) - Simple pubsub package for go. - [Quamina](https://github.com/timbray/quamina) - Fast pattern-matching for filtering messages and events. +- [rabbitroutine](https://github.com/furdarius/rabbitroutine) - Lightweight library that handles RabbitMQ auto-reconnect and publishing retries. The library takes into account the need to re-declare entities in RabbitMQ after reconnection. - [rabbus](https://github.com/rafaeljesus/rabbus) - A tiny wrapper over amqp exchanges and queues. - [rabtap](https://github.com/jandelgado/rabtap) - RabbitMQ swiss army knife cli app. - [RapidMQ](https://github.com/sybrexsys/RapidMQ) - RapidMQ is a lightweight and reliable library for managing of the local messages queue. From d2255e3829fe66ca2d92c7d8069bd25ac6cb98e0 Mon Sep 17 00:00:00 2001 From: Sreejith V <61118263+v-sreejith@users.noreply.github.com> Date: Mon, 12 Aug 2024 22:03:39 +0530 Subject: [PATCH 3366/3440] chore: add go-querystring (#5056) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 81eeb9d242f..74892df05b6 100644 --- a/README.md +++ b/README.md @@ -2501,6 +2501,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [encdec](https://github.com/mickep76/encdec) - Package provides a generic interface to encoders and decoders. - [go-fasttld](https://github.com/elliotwutingfeng/go-fasttld) - High performance effective top level domains (eTLD) extraction module. - [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. +- [go-querystring](https://github.com/google/go-querystring) - Go library for encoding structs into URL query parameters. - [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. - [godump](https://github.com/yassinebenaid/godump) - Pretty print any GO variable with ease, an alternative to Go's `fmt.Printf("%#v")`. - [gofeed](https://github.com/mmcdole/gofeed) - Parse RSS and Atom feeds in Go. From d8829552dbab02fbaec3eed48fb40cada0847d0f Mon Sep 17 00:00:00 2001 From: "Peter M. Stahl" Date: Mon, 12 Aug 2024 18:51:54 +0200 Subject: [PATCH 3367/3440] Add lingua-go library (#4673) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74892df05b6..2a08071786a 100644 --- a/README.md +++ b/README.md @@ -1866,6 +1866,7 @@ See also [Text Processing](#text-processing) and [Text Analysis](#text-analysis) - [detectlanguage](https://github.com/detectlanguage/detectlanguage-go) - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection. - [getlang](https://github.com/rylans/getlang) - Fast natural language detection package. - [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. +- [lingua-go](https://github.com/pemistahl/lingua-go) - An accurate natural language detection library, suitable for long and short text alike. Supports detecting multiple languages in mixed-language 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). ### Morphological Analyzers From f23bbea420717adc8a17259587951f8a236731bb Mon Sep 17 00:00:00 2001 From: arunsupe Date: Mon, 12 Aug 2024 21:28:37 -0500 Subject: [PATCH 3368/3440] Add w2vgrep to the list of utilities (#5373) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2a08071786a..76424a883bb 100644 --- a/README.md +++ b/README.md @@ -2557,6 +2557,7 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [petrovich](https://github.com/striker2000/petrovich) - Petrovich is the library which inflects Russian names to given grammatical case. - [radix](https://github.com/yourbasic/radix) - Fast string sorting algorithm. - [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts. +- [w2vgrep](https://github.com/arunsupe/semantic-grep) - A semantic grep tool using word embeddings to find semantically similar matches. For example, searching for "death" will find "dead", "killing", "murder". **[⬆ back to top](#contents)** From a9e1546b4ffed94401db687b977952a9a222fdf3 Mon Sep 17 00:00:00 2001 From: Simon Waldherr Date: Tue, 13 Aug 2024 04:30:40 +0200 Subject: [PATCH 3369/3440] add github.com/SimonWaldherr/golang-benchmarks (#4491) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 76424a883bb..3f5a1037c9b 100644 --- a/README.md +++ b/README.md @@ -3414,6 +3414,7 @@ _Where to discover new Go libraries._ - [go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark) - Go web framework benchmark. - [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. - [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. +- [golang-benchmarks](https://github.com/SimonWaldherr/golang-benchmarks) - a collection of golang benchmarks. - [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - Collection of benchmarks for popular Go database/SQL utilities. - [gospeed](https://github.com/feyeleanor/GoSpeed) - Go micro-benchmarks for calculating the speed of language constructs. - [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. From 318ef4c1acdfd2f246497939bea176a71451d7ac Mon Sep 17 00:00:00 2001 From: Viktor Nikolaiev Date: Tue, 13 Aug 2024 05:43:01 +0300 Subject: [PATCH 3370/3440] Add rill to goroutines category (#5278) * Add rill * Remove queue --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3f5a1037c9b..a29c912e9db 100644 --- a/README.md +++ b/README.md @@ -1318,7 +1318,7 @@ _Tools for managing and working with Goroutines._ - [parallel-fn](https://github.com/rafaeljesus/parallel-fn) - Run functions in parallel. - [pond](https://github.com/alitto/pond) - Minimalistic and High-performance goroutine worker pool written in Go. - [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. -- [queue](https://github.com/AnikHasibul/queue) - Gives you a `sync.WaitGroup` like queue group accessibility. Helps you to throttle and limit goroutines, wait for the end of the all goroutines and much more. +- [rill](https://github.com/destel/rill) - Go concurrency with channel transformations. No boilerplate, type safety, batching and error handling. - [routine](https://github.com/timandy/routine) - `routine` is a `ThreadLocal` for go library. It encapsulates and provides some easy-to-use, non-competitive, high-performance `goroutine` context access interfaces, which can help you access coroutine context information more gracefully. - [routine](https://github.com/x-mod/routine) - go routine control with context, support: Main, Go, Pool and some useful Executors. - [semaphore](https://github.com/kamilsk/semaphore) - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. From a0e8ac768bcd67c8165c427a5e78958f2bfad0a2 Mon Sep 17 00:00:00 2001 From: Timofey Koolin Date: Tue, 13 Aug 2024 11:16:20 +0300 Subject: [PATCH 3371/3440] add https://github.com/rekby/fastuuid (#4774) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a29c912e9db..bee5c1d8199 100644 --- a/README.md +++ b/README.md @@ -2865,6 +2865,7 @@ _General utilities and tools to make your life easier._ _Libraries for working with UUIDs._ +- [fastuuid](https://github.com/rekby/fastuuid) - Fast generate UUIDv4 as string or bytes. - [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. - [gouid](https://github.com/twharmon/gouid) - Generate cryptographically secure random string IDs with just one allocation. - [nanoid](https://github.com/aidarkhanov/nanoid) - A tiny and efficient Go unique string ID generator. From f882d0aab3e9064387483321e15ce6e177b738c7 Mon Sep 17 00:00:00 2001 From: Herman Schaaf Date: Tue, 13 Aug 2024 09:28:19 +0100 Subject: [PATCH 3372/3440] Add section for data integration frameworks and add CloudQuery (#4722) * Add section for data integration frameworks * Update README.md --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bee5c1d8199..c5a2ca882ef 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Configuration](#configuration) - [Continuous Integration](#continuous-integration) - [CSS Preprocessors](#css-preprocessors) + - [Data Integration Frameworks](#data-integration-frameworks) - [Data Structures and Algorithms](#data-structures-and-algorithms) - [Bit-packing and Compression](#bit-packing-and-compression) - [Bit Sets](#bit-sets) @@ -541,6 +542,16 @@ _Libraries for preprocessing CSS files._ **[⬆ back to top](#contents)** +## Data Integration Frameworks + +_Frameworks for performing ELT / ETL_ + +- [Benthos](https://github.com/benthosdev/benthos) - A message streaming bridge between a range of protocols. +- [CloudQuery](http://github.com/cloudquery/cloudquery) - A high-performance ELT data integration framework with pluggable architecture. +- [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. + +**[⬆ back to top](#contents)** + ## Data Structures and Algorithms ### Bit-packing and Compression @@ -1651,7 +1662,6 @@ _Libraries that implement messaging systems._ - [APNs2](https://github.com/sideshow/apns2) - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. - [Asynq](https://github.com/hibiken/asynq) - A simple, reliable, and efficient distributed task queue for Go built on top of Redis. - [Beaver](https://github.com/Clivern/Beaver) - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. -- [Benthos](https://github.com/Jeffail/benthos) - A message streaming bridge between a range of protocols. - [Bus](https://github.com/mustafaturan/bus) - Minimalist message bus implementation for internal communication. - [Centrifugo](https://github.com/centrifugal/centrifugo) - Real-time messaging (Websockets or SockJS) server in Go. - [Chanify](https://github.com/chanify/chanify) - A push notification server send message to your iOS devices. @@ -2510,7 +2520,6 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts. - [ltsv](https://github.com/Wing924/ltsv) - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go. - [normalize](https://github.com/avito-tech/normalize) - Sanitize, normalize and compare fuzzy text. -- [omniparser](https://github.com/jf-tech/omniparser) - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. - [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. - [prattle](https://github.com/askeladdk/prattle) - Scan and parse LL(1) grammars simply and efficiently. From 0d92026692238270744a42ae405b7513d1447a8e Mon Sep 17 00:00:00 2001 From: Francisco Daines Date: Tue, 13 Aug 2024 05:02:17 -0400 Subject: [PATCH 3373/3440] Includes arch go into Testing section (#5309) Co-authored-by: Francisco Daines --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c5a2ca882ef..a200dc76f7d 100644 --- a/README.md +++ b/README.md @@ -2367,8 +2367,8 @@ _Libraries for testing codebases and generating test data._ ### Testing Frameworks - [apitest](https://apitest.dev) - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams. +- [arch-go](https://github.com/fdaines/arch-go) - Architecture testing tool for Go projects. - [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. - [be](https://github.com/carlmjohnson/be) - The minimalist generic test assertion library. - [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible. From 2cd59ff2cf89781f558d6b9dd38303162964d686 Mon Sep 17 00:00:00 2001 From: Yongli Chen Date: Wed, 14 Aug 2024 00:13:37 +0800 Subject: [PATCH 3374/3440] add shifu to ioT category (#4590) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a200dc76f7d..9c797a0a575 100644 --- a/README.md +++ b/README.md @@ -1462,6 +1462,7 @@ _Libraries for programming devices of the IoT._ - [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. - [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. - [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. +- [shifu](https://github.com/Edgenesis/shifu) - Kubernetes native IoT development framework. - [smart-home](https://github.com/e154/smart-home) - Software package for IoT automation. **[⬆ back to top](#contents)** From 22fbe42afca45faa4abf5df6f5969f919217f807 Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 15 Aug 2024 01:55:38 -0400 Subject: [PATCH 3375/3440] remove wesovilabs/beyond (#5381) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9c797a0a575..5780f607623 100644 --- a/README.md +++ b/README.md @@ -2692,7 +2692,6 @@ _General utilities and tools to make your life easier._ - [apm](https://github.com/topfreegames/apm) - Process manager for Golang applications with an HTTP API. - [backscanner](https://github.com/icza/backscanner) - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. -- [beyond](https://github.com/wesovilabs/beyond) - The Go tool that will drive you to the AOP world! - [blank](https://github.com/Henry-Sarabia/blank) - Verify or remove blanks and whitespace from strings. - [bleep](https://github.com/sinhashubham95/bleep) - Perform any number of actions on any set of OS signals in Go. - [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. From 88bb481bfb3796e083f86e4765e0b9ff7064de25 Mon Sep 17 00:00:00 2001 From: Vyacheslav Anzhiganov Date: Thu, 15 Aug 2024 11:25:20 +0300 Subject: [PATCH 3376/3440] sonic blog engine (#4674) * Update README.md * Update README.md --------- Co-authored-by: yassinebenaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5780f607623..96f0655ba85 100644 --- a/README.md +++ b/README.md @@ -3389,6 +3389,7 @@ _Software written in Go._ - [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. - [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control). - [Snitch](https://github.com/lucasgomide/snitch) - Simple way to notify your team and many tools when someone has deployed any application via Tsuru. +- [sonic](https://github.com/go-sonic/sonic) - Sonic is a Go Blogging Platform. Simple and Powerful. - [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. - [stew](https://github.com/marwanhawari/stew) - An independent package manager for compiled binaries. - [syncthing](https://syncthing.net/) - Open, decentralized file synchronization tool and protocol. From 5c70aa0436d2f85e0040d4deb9638c7648cf97f4 Mon Sep 17 00:00:00 2001 From: Herald Yu Date: Thu, 15 Aug 2024 18:33:19 +0800 Subject: [PATCH 3377/3440] Add JuiceFS (#4898) * Add JuiceFS * Tweak the readme to rerun the CI --------- Co-authored-by: yassinebenaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 96f0655ba85..82ca9a9c7d0 100644 --- a/README.md +++ b/README.md @@ -3368,6 +3368,7 @@ _Software written in Go._ - [ide](https://github.com/thestrukture/ide) - Browser accessible IDE. Designed for Go with Go. - [ipe](https://github.com/dimiro1/ipe) - Open source Pusher server implementation compatible with Pusher client libraries written in GO. - [joincap](https://github.com/assafmo/joincap) - Command-line utility for merging multiple pcap files together. +- [JuiceFS](https://github.com/juicedata/juicefs) - Distributed POSIX file system built on top of Redis and AWS S3. - [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. - [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms. - [lgo](https://github.com/yunabe/lgo) - Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility. From 07ff51108bea27b017f440b67e5569fe47e01635 Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 15 Aug 2024 11:19:36 -0400 Subject: [PATCH 3378/3440] Remove github.com/olebedev/config (#5382) Repo - https://github.com/olebedev/config - [x] The project has not made an official release within the last year and has open issues. - It has been 2 years since an update to the repo - [x] The project is not responding to bug reports issued within 6 months of submission. - https://github.com/olebedev/config/issues?q=is%3Aissue+is%3Aclosed last closed issue was in 2018 - [ ] The project is not meeting quality standards as indicated by the Go Report Card or Code Coverage tests. - [ ] The quality standard links have been removed from the documentation. - [ ] The project is no longer open-sourced. - [ ] The project is incompatible with any Go version issued within the last year (there is hopefully an open PR about this at the project). Related issue: https://github.com/avelino/awesome-go/issues/5136 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 82ca9a9c7d0..9582e56ab49 100644 --- a/README.md +++ b/README.md @@ -455,7 +455,6 @@ _Libraries for configuration parsing._ - [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want). - [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines. - [config](https://github.com/num30/config) - configure your app using file, environment variables, or flags in two lines of code -- [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. - [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag. - [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. - [configuro](https://github.com/sherifabdlnaby/configuro) - opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications. From 05e694a425027d31ca5666d12dd5dab5d481ebba Mon Sep 17 00:00:00 2001 From: Yasar Alev Date: Thu, 15 Aug 2024 18:26:41 +0300 Subject: [PATCH 3379/3440] Add sdns to Networking (#4958) * Add sdns to Networking * update description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9582e56ab49..115be132a9c 100644 --- a/README.md +++ b/README.md @@ -2003,6 +2003,7 @@ _Libraries for working with various layers of the network._ - [publicip](https://github.com/polera/publicip) - Package publicip returns your public facing IPv4 address (internet egress). - [quic-go](https://github.com/lucas-clemente/quic-go) - An implementation of the QUIC protocol in pure Go. - [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. +- [sdns](https://github.com/semihalev/sdns) - A high-performance, recursive DNS resolver server with DNSSEC support, focused on preserving privacy. - [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in . - [ssh](https://github.com/gliderlabs/ssh) - Higher-level API for building SSH servers (wraps crypto/ssh). - [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. From de9775ee9301cbcc8c449bf9489a69890edc5a1f Mon Sep 17 00:00:00 2001 From: JB <28275108+mochi-co@users.noreply.github.com> Date: Fri, 16 Aug 2024 09:04:47 +0100 Subject: [PATCH 3380/3440] Add Mochi MQTT (#4648) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 115be132a9c..ade0033940c 100644 --- a/README.md +++ b/README.md @@ -984,6 +984,7 @@ _Packages that help with building Distributed Systems._ - [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. - [lura](https://github.com/luraproject/lura) - Ultra performant API Gateway framework with middlewares. - [micro](https://github.com/micro/micro) - A distributed systems runtime for the cloud and beyond. +- [mochi mqtt](https://github.com/mochi-co/mqtt) - Fully spec compliant, embeddable high-performance MQTT v5/v3 broker for IoT, smarthome, and pubsub. - [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems. - [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern. - [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation. From ffa87c56dd384f12c0917252b7d62e6951957618 Mon Sep 17 00:00:00 2001 From: trungqudinh <44312665+trungqudinh@users.noreply.github.com> Date: Fri, 16 Aug 2024 15:23:36 +0700 Subject: [PATCH 3381/3440] Add sonic library for JSON manipulation (#4572) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ade0033940c..af5ed04884c 100644 --- a/README.md +++ b/README.md @@ -500,6 +500,7 @@ _Libraries for configuration parsing._ - [nfigure](https://github.com/muir/nfigure) - Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML - [onion](https://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. - [piper](https://github.com/Yiling-J/piper) - Viper wrapper with config inheritance and key generation. +- [sonic](https://github.com/bytedance/sonic) - A blazingly fast JSON serializing & deserializing library. - [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. - [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). - [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library. From 8844504af5e950c1dd888c1345c1921bb5090fe9 Mon Sep 17 00:00:00 2001 From: Atomys Date: Fri, 16 Aug 2024 18:11:59 +0200 Subject: [PATCH 3382/3440] docs: add webhooked to networking listing (#4510) * docs: add webhooked to networking listing * docs: the package is not ordered correctly --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af5ed04884c..59760c173bc 100644 --- a/README.md +++ b/README.md @@ -2016,6 +2016,7 @@ _Libraries for working with various layers of the network._ - [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. - [vssh](https://github.com/yahoo/vssh) - Go library for building network and server automation over SSH protocol. - [water](https://github.com/songgao/water) - Simple TUN/TAP library. +- [webhooked](https://github.com/42Atomys/webhooked) - A webhook receiver on steroids: handle, secure, format and store a Webhook payload has never been easier. - [webrtc](https://github.com/pions/webrtc) - A pure Go implementation of the WebRTC API. - [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, and custom protocol. From d9a9cf4f375920fabdf8cb8ed9b2774c3d7a0931 Mon Sep 17 00:00:00 2001 From: Anatol Pomozov Date: Sat, 17 Aug 2024 04:17:15 -0700 Subject: [PATCH 3383/3440] add luks.go (#4718) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59760c173bc..c09c760127f 100644 --- a/README.md +++ b/README.md @@ -2244,6 +2244,7 @@ _Libraries that are used to help make your application more secure._ - [goSecretBoxPassword](https://github.com/dwin/goSecretBoxPassword) - A probably paranoid package for securely hashing and encrypting passwords. - [Interpol](https://github.com/avahidi/interpol) - Rule-based data generator for fuzzing and penetration testing. - [lego](https://github.com/go-acme/lego) - Pure Go ACME client library and CLI tool (for use with Let's Encrypt). +- [luks.go](https://github.com/anatol/luks.go) - Pure Golang library to manage LUKS partitions. - [memguard](https://github.com/awnumar/memguard) - A pure Go library for handling sensitive values in memory. - [multikey](https://github.com/adrianosela/multikey) - An n-out-of-N keys encryption/decryption framework based on Shamir's Secret Sharing algorithm. - [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's. From 17887ed09134e67a61886290d74242c6d5d7fcf9 Mon Sep 17 00:00:00 2001 From: Atomys Date: Sun, 18 Aug 2024 04:49:06 +0200 Subject: [PATCH 3384/3440] replace sprig (unmaintained) with go-sprout/sprout (replacement) (#5384) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c09c760127f..706facca621 100644 --- a/README.md +++ b/README.md @@ -2359,7 +2359,7 @@ _Libraries and tools for templating and lexing._ - [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/). -- [sprig](https://github.com/Masterminds/sprig) - Useful template functions for Go templates. +- [sprout](https://github.com/go-sprout/sprout) - Useful template functions for Go templates. - [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata. - [templ](https://github.com/a-h/templ) - A HTML templating language that has great developer tooling. From 6fdb9e579b7bcaa0f45bf03ffbc58fed3605c5ea Mon Sep 17 00:00:00 2001 From: Abe Nonym Date: Sun, 18 Aug 2024 04:51:38 +0200 Subject: [PATCH 3385/3440] Added dft (#5374) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 706facca621..0e2be311e00 100644 --- a/README.md +++ b/README.md @@ -2381,6 +2381,7 @@ _Libraries for testing codebases and generating test data._ - [commander](https://github.com/SimonBaeumer/commander) - Tool for testing cli applications on windows, linux and osx. - [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. +- [dft](https://github.com/abecodes/dft) - Lightweight, zero dependency docker containers for testing (or more). - [dsunit](https://github.com/viant/dsunit) - Datastore testing for SQL, NoSQL, structured files. - [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. - [endly](https://github.com/viant/endly) - Declarative end to end functional testing. From acd8806db5d82b375c3e0245275d68c2242f1173 Mon Sep 17 00:00:00 2001 From: Mohamad Fadhil Date: Wed, 21 Aug 2024 15:06:05 +0800 Subject: [PATCH 3386/3440] Add actor model libraries (#5389) Co-authored-by: Phani Rithvij --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 0e2be311e00..77454be1165 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Awesome Go](#awesome-go) - [Contents](#contents) + - [Actor Model](#actor-model) - [Artificial Intelligence](#artificial-intelligence) - [Audio and Music](#audio-and-music) - [Authentication and OAuth](#authentication-and-oauth) @@ -208,6 +209,15 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a **[⬆ back to top](#contents)** +## Actor Model + +_Libraries for building actor-based programs._ + +- [Ergo](https://github.com/ergo-services/ergo) - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. +- [Goakt](https://github.com/Tochemey/goakt) - Fast and Distributed Actor framework using protocol buffers as message for Golang. +- [Hollywood](https://github.com/anthdm/hollywood) - Blazingly fast and light-weight Actor engine written in Golang. +- [ProtoActor](https://github.com/asynkron/protoactor-go) - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin. + ## Artificial Intelligence _Libraries for building programs that leverage AI._ From 8aed410c61e016a1d7fa6985dd43b24d0d5343db Mon Sep 17 00:00:00 2001 From: Mitar Date: Wed, 21 Aug 2024 09:08:34 +0200 Subject: [PATCH 3387/3440] Add gitlab.com/tozd/go/fun package (#5386) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 77454be1165..45e65c5d3bd 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,7 @@ _Libraries for building actor-based programs._ _Libraries for building programs that leverage AI._ +- [fun](gitlab.com/tozd/go/fun) - The simplest but powerful way to use large language models (LLMs) in Go. - [langchaingo](https://github.com/tmc/langchaingo) - LangChainGo is a framework for developing applications powered by language models. - [LocalAI](https://github.com/mudler/LocalAI) - Open Source OpenAI alternative, self-host AI models. - [Ollama](https://github.com/jmorganca/ollama) - Run large language models locally. From fa3b37468749d126779c0b8e279dc6e6d0203f70 Mon Sep 17 00:00:00 2001 From: Mitar Date: Wed, 21 Aug 2024 10:41:08 +0200 Subject: [PATCH 3388/3440] Link fix (#5390) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 45e65c5d3bd..d8af2d35c00 100644 --- a/README.md +++ b/README.md @@ -222,7 +222,7 @@ _Libraries for building actor-based programs._ _Libraries for building programs that leverage AI._ -- [fun](gitlab.com/tozd/go/fun) - The simplest but powerful way to use large language models (LLMs) in Go. +- [fun](https://gitlab.com/tozd/go/fun) - The simplest but powerful way to use large language models (LLMs) in Go. - [langchaingo](https://github.com/tmc/langchaingo) - LangChainGo is a framework for developing applications powered by language models. - [LocalAI](https://github.com/mudler/LocalAI) - Open Source OpenAI alternative, self-host AI models. - [Ollama](https://github.com/jmorganca/ollama) - Run large language models locally. From 74f7f9ef97a75abd0669f69ba1c9780f92bb1a6a Mon Sep 17 00:00:00 2001 From: Feego Date: Thu, 22 Aug 2024 10:02:33 +0800 Subject: [PATCH 3389/3440] Add goenum (#5138) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d8af2d35c00..10a52890244 100644 --- a/README.md +++ b/README.md @@ -1840,6 +1840,7 @@ _These libraries were placed here because none of the other categories seemed to - [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-unarr](https://github.com/gen2brain/go-unarr) - Decompression library for RAR, TAR, ZIP and 7z archives. +- [goenum](https://github.com/lvyahui8/goenum) - A common enumeration struct based on generics and reflection that allows you to quickly define enumerations and use a set of useful default methods. - [gofakeit](https://github.com/brianvoe/gofakeit) - Random data generator written in go. - [gommit](https://github.com/antham/gommit) - Analyze git commit messages to ensure they follow defined patterns. - [gopsutil](https://github.com/shirou/gopsutil) - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). From f985aff00a6e23dc570a054434a2ad63ebec7d90 Mon Sep 17 00:00:00 2001 From: invzhi Date: Fri, 23 Aug 2024 23:07:10 +0800 Subject: [PATCH 3390/3440] Remove https://github.com/kirillDanshin/nulltime (#5391) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 10a52890244..84bbc960d5a 100644 --- a/README.md +++ b/README.md @@ -943,7 +943,6 @@ _Libraries for working with dates and times._ - [iso8601](https://github.com/relvacode/iso8601) - Efficiently parse ISO8601 date-times without regex. - [kair](https://github.com/GuilhermeCaruso/kair) - Date and Time - Golang Formatting Library. - [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. -- [NullTime](https://github.com/kirillDanshin/nulltime) - Nullable `time.Time`. - [strftime](https://github.com/awoodbeck/strftime) - C99-compatible strftime formatter. - [timespan](https://github.com/SaidinWoT/timespan) - For interacting with intervals of time, defined as a start time and a duration. - [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. From 1d1649b671352a8839460b15a152910ab17cd281 Mon Sep 17 00:00:00 2001 From: presbrey Date: Tue, 27 Aug 2024 07:49:50 -0400 Subject: [PATCH 3391/3440] Update README.md (#5392) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84bbc960d5a..65530d8898e 100644 --- a/README.md +++ b/README.md @@ -226,6 +226,7 @@ _Libraries for building programs that leverage AI._ - [langchaingo](https://github.com/tmc/langchaingo) - LangChainGo is a framework for developing applications powered by language models. - [LocalAI](https://github.com/mudler/LocalAI) - Open Source OpenAI alternative, self-host AI models. - [Ollama](https://github.com/jmorganca/ollama) - Run large language models locally. +- [OllamaFarm](https://github.com/presbrey/ollamafarm) - Manage, load-balance, and failover packs of Ollamas **[⬆ back to top](#contents)** From 8ba2f7be540faf6bfd0a7bdc28bbe8039925910e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20BERSAC?= <542613+bersace@users.noreply.github.com> Date: Tue, 27 Aug 2024 15:18:12 +0200 Subject: [PATCH 3392/3440] Sort cli homonymes (#5393) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 65530d8898e..b752391c60d 100644 --- a/README.md +++ b/README.md @@ -412,8 +412,6 @@ _Libraries for building standard or basic Command Line applications._ - [carapace](https://github.com/rsteube/carapace) - Command argument completion generator for spf13/cobra. - [carapace-bin](https://github.com/rsteube/carapace-bin) - Multi-shell multi-command argument completer. - [carapace-spec](https://github.com/rsteube/carapace-spec) - Define simple completions using a spec file. -- [cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang struct tags. -- [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. - [climax](https://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. - [clîr](https://github.com/leaanthony/clir) - A Simple and Clear CLI library. Dependency free. - [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idiomatic way. @@ -440,6 +438,7 @@ _Libraries for building standard or basic Command Line applications._ - [liner](https://github.com/peterh/liner) - Go readline-like library for command-line interfaces. - [mcli](https://github.com/jxskiss/mcli) - A minimal but very powerful cli library for Go. - [mitchellh/cli](https://github.com/mitchellh/cli) - Go library for implementing command-line interfaces. +- [mkideal/cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang struct tags. - [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation. - [ops](https://github.com/nanovms/ops) - Unikernel Builder/Orchestrator. - [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. @@ -449,6 +448,7 @@ _Libraries for building standard or basic Command Line applications._ - [strumt](https://github.com/antham/strumt) - Library to create prompt chain. - [subcmd](https://github.com/bobg/subcmd) - Another approach to parsing and running subcommands. Works alongside the standard `flag` package. - [survey](https://github.com/go-survey/survey) - Build interactive and accessible prompts with full support for windows and posix terminals. +- [teris-io/cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go. - [ts](https://github.com/liujianping/ts) - Timestamp convert & compare tool. - [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework. - [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). From 88b3ef75207435ba63da4ba57cc6aa739cacb37a Mon Sep 17 00:00:00 2001 From: Davide Oggioni Date: Tue, 27 Aug 2024 17:26:40 +0200 Subject: [PATCH 3393/3440] Add lnd repository (#4576) Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b752391c60d..6f89688428a 100644 --- a/README.md +++ b/README.md @@ -295,6 +295,7 @@ _Tools for building blockchains._ - [gosemble](https://github.com/LimeChain/gosemble) - A Go-based framework for building Polkadot/Substrate-compatible runtimes. - [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host. - [kubo](https://github.com/ipfs/kubo) - A blockchain framework implemented in Go. It provides content-addressable storage which can be used for decentralized storage in DApps. It is based on the IPFS protocol. +- [lnd](https://github.com/lightningnetwork/lnd) - A complete implementation of a Lighting Network node. - [solana-go](https://github.com/gagliardetto/solana-go) - Go library to interface with Solana JSON RPC and WebSocket interfaces. - [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. From 8175e16a6da4c9d0a83c7b4c2f0d0ecd65ebdf54 Mon Sep 17 00:00:00 2001 From: Pathawee Ngoenthai Date: Thu, 29 Aug 2024 19:52:59 +0700 Subject: [PATCH 3394/3440] add jwx (#4526) * add jwx * Fix order --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6f89688428a..d1239ced787 100644 --- a/README.md +++ b/README.md @@ -265,6 +265,7 @@ _Libraries for implementing authentication schemes._ - [jwt](https://github.com/cristalhq/jwt) - Safe, simple, and fast JSON Web Tokens for Go. - [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options. - [jwt-go](https://github.com/golang-jwt/jwt) - A full featured implementation of JSON Web Tokens (JWT). This library supports the parsing and verification as well as the generation and signing of JWTs. +- [jwx](https://github.com/lestrrat-go/jwx) - Go module implementing various JWx (JWA/JWE/JWK/JWS/JWT, otherwise known as JOSE) technologies - [keto](https://github.com/ory/keto) - Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models. - [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam. - [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support. From b19a4edffba590cc228935b1f8d6c52279baf7c7 Mon Sep 17 00:00:00 2001 From: Adrian Shum Date: Fri, 30 Aug 2024 19:39:34 +0800 Subject: [PATCH 3395/3440] Add cshum/imagor (#4627) * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1239ced787..8c1dbd3e7f3 100644 --- a/README.md +++ b/README.md @@ -1441,6 +1441,7 @@ _Libraries for manipulating images._ - [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. - [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing. - [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. +- [imagor](https://github.com/cshum/imagor) - Fast, secure image processing server and Go library, using libvips. - [img](https://github.com/hawx/img) - Selection of image manipulation tools. - [ln](https://github.com/fogleman/ln) - 3D line art rendering in Go. - [mergi](https://github.com/noelyahan/mergi) - Tool & Go library for image manipulation (Merge, Crop, Resize, Watermark, Animate). From adfe2522ee6c08010cba86df1ac1349b1569abff Mon Sep 17 00:00:00 2001 From: charles Date: Fri, 30 Aug 2024 16:08:55 +0300 Subject: [PATCH 3396/3440] Added The Nairobi gopher community to list of meetups (#4621) Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8c1dbd3e7f3..e9e3ba64fbc 100644 --- a/README.md +++ b/README.md @@ -3593,6 +3593,7 @@ _Where to discover new Go libraries._ - [GoSF - San Francisco, CA](https://www.meetup.com/golangsf) - [Istanbul Golang](https://www.meetup.com/Istanbul-Golang/) - [Lagos Gophers](https://www.meetup.com/GolangNigeria/) +- [Nairobi Gophers](https://www.meetup.com/nairobi-gophers/) - [Seattle Go Programmers](https://www.meetup.com/golang/) - [Ukrainian Golang User Groups](https://www.meetup.com/uagolang/) - [Utah Go User Group](https://www.meetup.com/utahgophers/) From 5d641951de8e7df492e9eff30af534352fe5c8fa Mon Sep 17 00:00:00 2001 From: Jason Lyu Date: Fri, 30 Aug 2024 22:20:15 +0800 Subject: [PATCH 3397/3440] Add tun2socks to Networking (#4875) * Add tun2socks to Networking * Fix grammar --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9e3ba64fbc..ad0b7e1de5d 100644 --- a/README.md +++ b/README.md @@ -2028,6 +2028,7 @@ _Libraries for working with various layers of the network._ - [tcp_server](https://github.com/firstrow/tcp_server) - Go library for building tcp servers faster. - [tcpack](https://github.com/lim-yoona/tcpack) - tcpack is an application protocol based on TCP to Pack and Unpack bytes stream in go program. - [tspool](https://github.com/two/tspool) - A TCP Library use worker pool to improve performance and protect your server. +- [tun2socks](https://github.com/xjasonlyu/tun2socks) - A pure go implementation of tun2socks powered by [gVisor](https://gvisor.dev/) TCP/IP stack. - [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. - [vssh](https://github.com/yahoo/vssh) - Go library for building network and server automation over SSH protocol. - [water](https://github.com/songgao/water) - Simple TUN/TAP library. From 04440283296ade1fe01d38105fb75cd69389a84f Mon Sep 17 00:00:00 2001 From: Fatih Baltaci Date: Mon, 2 Sep 2024 14:35:05 +0300 Subject: [PATCH 3398/3440] Add Alaz - Effortless, Low-Overhead, eBPF-based Kubernetes Monitoring (#5002) * Add Alaz - Effortless, Low-Overhead, eBPF-based Kubernetes Monitoring * change name case --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad0b7e1de5d..a72bc1e516b 100644 --- a/README.md +++ b/README.md @@ -3259,6 +3259,7 @@ _Software written in Go._ ### DevOps Tools - [abbreviate](https://github.com/dnnrly/abbreviate) - abbreviate is a tool turning long strings in to shorter ones with configurable separators, for example to embed branch names in to deployment stack IDs. +- [alaz](https://github.com/ddosify/alaz) - Effortless, Low-Overhead, eBPF-based Kubernetes Monitoring. - [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool. - [aurora](https://github.com/xuri/aurora) - Cross-platform web-based Beanstalkd queue server console. - [awsenv](https://github.com/soniah/awsenv) - Small binary that loads Amazon (AWS) environment variables for a profile. From 1ed3c28cc36c0afec58b1c42737eea75e64fb464 Mon Sep 17 00:00:00 2001 From: Jan Date: Mon, 2 Sep 2024 15:27:46 +0200 Subject: [PATCH 3399/3440] Added GoMLX entry to Machine Learning section. (#5385) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a72bc1e516b..321c86c4e92 100644 --- a/README.md +++ b/README.md @@ -1646,6 +1646,7 @@ _Libraries for Machine Learning._ - [golinear](https://github.com/danieldk/golinear) - liblinear bindings for Go. - [GoMind](https://github.com/surenderthakran/gomind) - A simplistic Neural Network Library in Go. - [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go. +- [GoMLX](https://github.com/gomlx/gomlx) - An accelerated Machine Learning framework for Go. - [gonet](https://github.com/dathoangnd/gonet) - Neural Network for Go. - [Goptuna](https://github.com/c-bata/goptuna) - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized. - [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. From 85a363e484e61eb7ada2682262ae31b250da9276 Mon Sep 17 00:00:00 2001 From: Mostafa Moradian Date: Tue, 3 Sep 2024 12:31:01 +0330 Subject: [PATCH 3400/3440] Add GatewayD (#5315) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 321c86c4e92..7af49f709cd 100644 --- a/README.md +++ b/README.md @@ -803,6 +803,7 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [dbbench](https://github.com/sj14/dbbench) - Database benchmarking tool with support for several databases and scripts. - [dg](https://github.com/codingconcepts/dg) - A fast data generator that produces CSV files from generated relational data. - [dynago](https://github.com/twharmon/dynago) - Simplify working with AWS DynamoDB. +- [gatewayd](https://github.com/gatewayd-io/gatewayd) - Cloud-native database gateway and framework for building data-driven applications. Like API gateways, for databases. - [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication. - [gorm-multitenancy](https://github.com/bartventer/gorm-multitenancy) - Multi-tenancy support for GORM managed databases. - [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations. From fe8cf684e55c178ffe718296e1e086cbcdc1bd47 Mon Sep 17 00:00:00 2001 From: Simon Waldherr Date: Tue, 3 Sep 2024 16:42:29 +0200 Subject: [PATCH 3401/3440] add SimonWaldherr/golang-examples (#4494) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7af49f709cd..4a0ef95601e 100644 --- a/README.md +++ b/README.md @@ -3711,6 +3711,7 @@ _Add the group of your city/country here (send **PR**)_ - [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services. - [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. - [goapp](https://github.com/bnkamalesh/goapp) - An opinionated guideline to structure & develop a Go web application/service. +- [golang-examples](https://github.com/SimonWaldherr/golang-examples) - Many examples to learn Golang. - [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. - [Golang Tutorial Guide](https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/) - A List of Free Courses to Learn the Go Programming Language. - [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. From dc0ee9b6582d0f3fed5247e7bad9983b8851f510 Mon Sep 17 00:00:00 2001 From: Yassine Benaid Date: Tue, 3 Sep 2024 17:20:46 +0100 Subject: [PATCH 3402/3440] Update README.md (#5398) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a0ef95601e..d9f689ff3fa 100644 --- a/README.md +++ b/README.md @@ -3711,9 +3711,9 @@ _Add the group of your city/country here (send **PR**)_ - [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services. - [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. - [goapp](https://github.com/bnkamalesh/goapp) - An opinionated guideline to structure & develop a Go web application/service. -- [golang-examples](https://github.com/SimonWaldherr/golang-examples) - Many examples to learn Golang. - [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. - [Golang Tutorial Guide](https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/) - A List of Free Courses to Learn the Go Programming Language. +- [golang-examples](https://github.com/SimonWaldherr/golang-examples) - Many examples to learn Golang. - [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go. - [GopherCoding](https://gophercoding.com/) - Collection of code snippets and tutorials to help tackle every day issues. - [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. From 59a87d5b96c2d557402c213952e5e55b64890b70 Mon Sep 17 00:00:00 2001 From: Panji Ahmad Nurhusni Date: Wed, 4 Sep 2024 15:14:59 +0700 Subject: [PATCH 3403/3440] Add go-wkhtmltopdf (#4523) Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d9f689ff3fa..46ac71ab59d 100644 --- a/README.md +++ b/README.md @@ -1132,6 +1132,7 @@ _Libraries for handling files and file systems._ - [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans. - [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...). - [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go. +- [go-wkhtmltopdf](https://github.com/SebastiaanKlippert/go-wkhtmltopdf) - A package to convert an HTML template to a PDF file. - [gofs](https://github.com/no-src/gofs) - A cross-platform real-time file synchronization tool out of the box. - [gut/yos](https://github.com/1set/gut) - Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links. - [higgs](https://github.com/dastoori/higgs) - A tiny cross-platform Go library to hide/unhide files and directories. From 4684f7d19c7446b63cd84f1f088c17d6fcfb0937 Mon Sep 17 00:00:00 2001 From: SANJIB KUMAR GIRI <31872288+sanjibgirics@users.noreply.github.com> Date: Wed, 4 Sep 2024 18:11:09 +0530 Subject: [PATCH 3404/3440] add uber multierr pkg (#4524) Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46ac71ab59d..35ace381cf4 100644 --- a/README.md +++ b/README.md @@ -1111,6 +1111,7 @@ _Libraries for handling errors._ - [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling. - [Fault](https://github.com/Southclaws/fault) - An ergonomic mechanism for wrapping errors in order to facilitate structured metadata and context for error values. - [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. +- [multierr](https://github.com/uber-go/multierr) - Package for representing a list of errors as a single error. - [oops](https://github.com/samber/oops) - Error handling with context, stack trace and source fragments. - [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments. From 395b7f3526a27b9f214361420b3b80abb46d5791 Mon Sep 17 00:00:00 2001 From: arjunyel Date: Thu, 5 Sep 2024 03:10:30 -0500 Subject: [PATCH 3405/3440] add GraphQL with Go tutorial (#4560) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 35ace381cf4..80d5642bae2 100644 --- a/README.md +++ b/README.md @@ -3720,6 +3720,7 @@ _Add the group of your city/country here (send **PR**)_ - [GopherCoding](https://gophercoding.com/) - Collection of code snippets and tutorials to help tackle every day issues. - [GopherSnippets](https://gophersnippets.com/) - Code snippets with tests and testable examples for the Go programming language. - [Gosamples](https://gosamples.dev/) - Collection of code snippets that let you solve everyday code problems. +- [GraphQL with Go](https://hasura.io/learn/graphql/backend-stack/languages/go/) - Learn how to create a Go GraphQL server and client with code generation. Also includes creating REST endpoints. - [Hackr.io](https://hackr.io/tutorials/learn-golang) - Learn Go from the best online golang tutorials submitted & voted by the golang programming community. - [Hex Monscape](https://github.com/Haraj-backend/hex-monscape) - Getting started guidelines in writing maintainable code using Hexagonal Architecture. - [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM. From d8ab51115d0346c92798b411c9c7d0295d2d447d Mon Sep 17 00:00:00 2001 From: Jirka Kremser <535866+jkremser@users.noreply.github.com> Date: Mon, 9 Sep 2024 10:25:00 +0200 Subject: [PATCH 3406/3440] Add k8gb (#5076) Signed-off-by: Jirka Kremser --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 80d5642bae2..4a3908318ed 100644 --- a/README.md +++ b/README.md @@ -994,6 +994,7 @@ _Packages that help with building Distributed Systems._ - [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. +- [K8gb](https://github.com/k8gb-io/k8gb) - A cloud native Kubernetes Global Balancer. - [Kitex](https://github.com/cloudwego/kitex) - A high-performance and strong-extensibility Golang RPC framework that helps developers build microservices. If the performance and extensibility are the main concerns when you develop microservices, Kitex can be a good choice. - [Kratos](https://github.com/go-kratos/kratos) - A modular-designed and easy-to-use microservices framework in Go. - [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS. From 7044c43b460f1a3a2b504038b9ceb477bf389fb4 Mon Sep 17 00:00:00 2001 From: Sadiq Rahmati Date: Mon, 9 Sep 2024 17:31:40 +0330 Subject: [PATCH 3407/3440] Add effdsl (#5400) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4a3908318ed..2d31533096a 100644 --- a/README.md +++ b/README.md @@ -916,6 +916,7 @@ _Libraries for building and using SQL._ ### Search and Analytic Databases - [clickhouse-go](https://github.com/ClickHouse/clickhouse-go/) - ClickHouse SQL client for Go with a `database/sql` compatibility. +- [effdsl](https://github.com/sdqri/effdsl) - Elasticsearch query builder 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. - [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library. From 4087f51506ec74db47c5fa3d12e9fc3c3d7e93e9 Mon Sep 17 00:00:00 2001 From: Volodymyr Konstanchuk <9463474+konstanchuk@users.noreply.github.com> Date: Mon, 9 Sep 2024 19:41:14 +0300 Subject: [PATCH 3408/3440] Add Componego (#5370) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2d31533096a..ed8ee6d2b85 100644 --- a/README.md +++ b/README.md @@ -1762,6 +1762,7 @@ _Libraries for working with dependency injection._ - [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. - [boot-go](http://github.com/boot-go/boot) - Component-based development with dependency injection using reflections for Go developers. +- [componego](https://github.com/componego/componego) - A dependency injection framework based on components, allowing dynamic dependency replacement without duplicating code in tests. - [cosban/di](https://gitlab.com/cosban/di) - A code generation based dependency injection wiring tool. - [di](https://github.com/goava/di) - A dependency injection container for go programming language. - [dig](https://github.com/uber-go/dig) - A reflection based dependency injection toolkit for Go. From 170cef8efabd4b223fd199fde1a92e32d412899c Mon Sep 17 00:00:00 2001 From: tiendc Date: Mon, 9 Sep 2024 23:41:25 +0700 Subject: [PATCH 3409/3440] Add DI autowire (#5399) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed8ee6d2b85..df3f3307584 100644 --- a/README.md +++ b/README.md @@ -1761,6 +1761,7 @@ _Libraries for working with Microsoft Excel._ _Libraries for working with dependency injection._ - [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. +- [autowire](https://github.com/tiendc/autowire) - Dependency injection using Generics and reflection. - [boot-go](http://github.com/boot-go/boot) - Component-based development with dependency injection using reflections for Go developers. - [componego](https://github.com/componego/componego) - A dependency injection framework based on components, allowing dynamic dependency replacement without duplicating code in tests. - [cosban/di](https://gitlab.com/cosban/di) - A code generation based dependency injection wiring tool. From 91352745e16ca4195892ef312ac63faa9a5ccbc5 Mon Sep 17 00:00:00 2001 From: avivpxi <42111576+avivpxi@users.noreply.github.com> Date: Mon, 9 Sep 2024 19:48:16 +0300 Subject: [PATCH 3410/3440] add envite (#5214) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index df3f3307584..a09e52768dc 100644 --- a/README.md +++ b/README.md @@ -2409,6 +2409,7 @@ _Libraries for testing codebases and generating test data._ - [dsunit](https://github.com/viant/dsunit) - Datastore testing for SQL, NoSQL, structured files. - [embedded-postgres](https://github.com/fergusstrange/embedded-postgres) - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test. - [endly](https://github.com/viant/endly) - Declarative end to end functional testing. +- [envite](https://github.com/PerimeterX/envite) - Dev and testing environment management framework. - [fixenv](https://github.com/rekby/fixenv) - Fixture manage engine, inspired by pytest fixtures. - [fluentassert](https://github.com/fluentassert/verify) - Extensible, type-safe, fluent assertion Go library. - [flute](https://github.com/suzuki-shunsuke/flute) - HTTP client testing framework. From 544b7727caa77dbb40a53f99b65400a54bbe0acd Mon Sep 17 00:00:00 2001 From: Tom Arrell Date: Tue, 10 Sep 2024 10:28:29 +0200 Subject: [PATCH 3411/3440] add wrapcheck (#5358) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a09e52768dc..00f2f309ac8 100644 --- a/README.md +++ b/README.md @@ -3188,6 +3188,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [usestdlibvars](https://github.com/sashamelentyev/usestdlibvars) - A linter that detect the possibility to use variables/constants from the Go standard library. - [vacuum](https://github.com/daveshanley/vacuum) - An ultra-super-fast, lightweight OpenAPI linter and quality checking tool. - [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. +- [wrapcheck](https://github.com/tomarrell/wrapcheck) - A linter to check that errors from external packages are wrapped. **[⬆ back to top](#contents)** From 1814e01c065a26db182ca572bb9ab3a35ccf0a52 Mon Sep 17 00:00:00 2001 From: Manfred Touron <94029+moul@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:18:13 +0200 Subject: [PATCH 3412/3440] feat: add Blockchain/gno (#4914) Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 00f2f309ac8..74441cb3182 100644 --- a/README.md +++ b/README.md @@ -292,6 +292,7 @@ _Tools for building blockchains._ - [cometbft](https://github.com/cometbft/cometbft) - A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. It is a fork of Tendermint Core and implements the Tendermint consensus algorithm. - [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem. +- [gno](https://github.com/gnolang/gno) - A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains. - [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol. - [gosemble](https://github.com/LimeChain/gosemble) - A Go-based framework for building Polkadot/Substrate-compatible runtimes. - [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host. From 5442e68cfdb1d3347532f823421c765e81fcbf46 Mon Sep 17 00:00:00 2001 From: Jeroen Rinzema Date: Wed, 11 Sep 2024 13:38:25 +0200 Subject: [PATCH 3413/3440] add jeroenrinzema/psql-wire (#4564) * add jeroenrinzema/psql-wire * chore: rephrase description --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74441cb3182..4d8ae37ca0f 100644 --- a/README.md +++ b/README.md @@ -2026,6 +2026,7 @@ _Libraries for working with various layers of the network._ - [packet](https://github.com/aerogo/packet) - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed. - [peerdiscovery](https://github.com/schollz/peerdiscovery) - Pure Go library for cross-platform local peer discovery using UDP multicast. - [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. +- [psql-wire](https://github.com/jeroenrinzema/psql-wire) - PostgreSQL server wire protocol. Build your own server and start serving connections.. - [publicip](https://github.com/polera/publicip) - Package publicip returns your public facing IPv4 address (internet egress). - [quic-go](https://github.com/lucas-clemente/quic-go) - An implementation of the QUIC protocol in pure Go. - [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. From 15b246a190d0874246c43abe2995b8a9c1f92be7 Mon Sep 17 00:00:00 2001 From: Raed Shomali <149345478+raed-shomali@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:23:44 -0400 Subject: [PATCH 3414/3440] update repo name slacker (#5109) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d8ae37ca0f..d40e0ebd60e 100644 --- a/README.md +++ b/README.md @@ -325,7 +325,7 @@ _Libraries for building and working with bots._ - [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. - [olivia](https://github.com/olivia-ai/olivia) - A chatbot built with an artificial neural network. - [slack-bot](https://github.com/innogames/slack-bot) - Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github... -- [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. +- [slacker](https://github.com/slack-io/slacker) - Easy to use framework to create Slack bots. - [slackscot](https://github.com/alexandre-normand/slackscot) - Another framework for building Slack bots. - [tbot](https://github.com/yanzay/tbot) - Telegram bot server with API similar to net/http. - [telebot](https://github.com/tucnak/telebot) - Telegram bot framework is written in Go. From b82e1acd7b00c7bb53287f633684091d8e341c62 Mon Sep 17 00:00:00 2001 From: Animesh Pathak <53110238+Sonichigo@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:00:12 +0530 Subject: [PATCH 3415/3440] Added Keploy under Testing tools (#4966) * Added Keploy under Testing tools * tmp: revert * tmp: irrelevant change to resolve conflict * revert original changes * wip --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d40e0ebd60e..36e5171f0b8 100644 --- a/README.md +++ b/README.md @@ -2447,6 +2447,7 @@ _Libraries for testing codebases and generating test data._ - [httpexpect](https://github.com/gavv/httpexpect) - Concise, declarative, and easy to use end-to-end HTTP and REST API testing. - [is](https://github.com/matryer/is) - Professional lightweight testing mini-framework for Go. - [jsonassert](https://github.com/kinbiko/jsonassert) - Package for verifying that your JSON payloads are serialized correctly. +- [keploy](https://github.com/keploy/keploy) - Generate Testcase and Data Mocks from API calls automatically. - [omg.testingtools](https://github.com/dedalqq/omg.testingtools) - The simple library for change a values of private fields for testing. - [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. - [schema](https://github.com/jgroeneveld/schema) - Quick and easy expression matching for JSON schemas used in requests and responses. From 75e5c6cb487a687fcbed97d7a754fb0d658b8dad Mon Sep 17 00:00:00 2001 From: Mechiel Lukkien Date: Fri, 13 Sep 2024 10:17:20 +0200 Subject: [PATCH 3416/3440] Add github.com/mjl-/mox, a modern email server (#4919) * Add github.com/mjl-/mox, a modern email server Mox is a modern full-featured open source secure mail server for low-maintenance self-hosted email. It implements IMAP, SMTP, SPF, DKIM, DMARC, TLSRPT, MTA-STS and more. * chore: grammar correction --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 36e5171f0b8..dbf4c648ca0 100644 --- a/README.md +++ b/README.md @@ -1058,6 +1058,7 @@ _Libraries and tools that implement email creation and sending._ - [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface. - [Mailpit](https://github.com/axllent/mailpit) - Email and SMTP testing tool for developers. - [mailx](https://github.com/valord577/mailx) - Mailx is a library that makes it easier to send email via SMTP. It is an enhancement of the golang standard library `net/smtp`. +- [mox](https://github.com/mjl-/mox) - Modern full-featured secure mail server for low-maintenance, self-hosted email. - [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. - [smtpmock](https://github.com/mocktools/go-smtp-mock) - Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP behaviour for your test environment. From 266c3a634cc837cd4c9fc2237b53980156149833 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 13 Sep 2024 23:11:41 +0530 Subject: [PATCH 3417/3440] remove few dead links (#5401) --- README.md | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index dbf4c648ca0..fca26e8a5f4 100644 --- a/README.md +++ b/README.md @@ -521,8 +521,8 @@ _Libraries for configuration parsing._ - [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library. - [uConfig](https://github.com/omeid/uconfig) - Lightweight, zero-dependency, and extendable configuration management. - [viper](https://github.com/spf13/viper) - Go configuration with fangs. -- [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). -- [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). +- [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/latest/) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). +- [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://specifications.freedesktop.org/basedir-spec/latest/). - [yamagiconf](https://github.com/romshark/yamagiconf) - The "safe subset" of YAML for Go configs. **[⬆ back to top](#contents)** @@ -634,7 +634,6 @@ additional ordered map implementations. - [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients. - [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. - [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. -- [plinko](https://github.com/shipt/plinko) - A finite state machine and workflow orchestrator that compiles for fast execution, easy debugging, auto-generated documentation. Includes advanced features such as side-effect hooks. - [quadtree](https://github.com/s0rg/quadtree) - Generic, zero-alloc, 100%-test covered quadtree. - [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices. - [slices](https://github.com/twharmon/slices) - Pure, generic functions for slices. @@ -761,7 +760,6 @@ _Data stores with expiring records, in-memory distributed data stores, or in-mem - [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads. - [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database. - [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library. -- [regatta](https://github.com/jamf/regatta) - Fast, simple, geo-distributed KV store built for cloud native era. - [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. - [rotom](https://github.com/xgzlucario/rotom) - A tiny Redis server built with Golang, compatible with RESP protocols. - [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite. @@ -1148,7 +1146,6 @@ _Libraries for handling files and file systems._ - [pathtype](https://github.com/jonchun/pathtype) - Treat paths as their own type instead of using strings. - [pdfcpu](https://github.com/pdfcpu/pdfcpu) - PDF processor. - [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease. -- [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading. - [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [_todo.txt_](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [_todo.txt_ format](https://github.com/todotxt/todo.txt). - [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS. @@ -2306,7 +2303,6 @@ _Libraries and tools for binary serialization._ - [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for 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. - [go-csvlib](https://github.com/tiendc/go-csvlib) - High level and rich functionalities CSV serialization/deserialization library. -- [go-lctree](https://github.com/sbourlon/go-lctree) - Provides a CLI and primitives to serialize and deserialize [LeetCode binary trees](https://support.leetcode.com/hc/en-us/articles/360011883654-What-does-1-null-2-3-mean-in-binary-tree-representation). - [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. - [gotiny](https://github.com/raszia/gotiny) - Efficient Go serialization library, gotiny is almost as fast as serialization libraries that generate code. @@ -2583,7 +2579,6 @@ See also [Natural Language Processing](#natural-language-processing) and [Text A - [dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Framework to turn websites into structured data. - [go-recipe](https://github.com/kkyr/go-recipe) - A package for scraping recipes from websites. - [GoQuery](https://github.com/PuerkitoBio/goquery) - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. -- [gospider](https://github.com/zhshch2002/gospider) - A simple golang spider/scraping framework,build a spider in 3 lines. migrated from [goribot](https://github.com/zhshch2002/goribot) - [pagser](https://github.com/foolin/pagser) - Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler. - [Tagify](https://github.com/zoomio/tagify) - Produces a set of tags from given source. - [walker](https://github.com/cyucelen/walker) - Seamlessly fetch paginated data from any source. Simple and high performance API scraping included. @@ -2632,7 +2627,7 @@ _Libraries for accessing third party APIs._ - [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. -- [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](https://developer.mapquest.com/documentation/geocoding-api/), [Nominatim](https://developer.mapquest.com/documentation/open/nominatim-search), [OpenCage](https://opencagedata.com/api), [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. +- [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](https://developer.mapquest.com/documentation/api/geocoding/), [Nominatim](https://nominatim.org/release-docs/latest/api/Overview/), [OpenCage](https://opencagedata.com/api), [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. - [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-atlassian](https://github.com/ctreminiom/go-atlassian) - Go library for accessing the [Atlassian Cloud](https://www.atlassian.com/enterprise/cloud) services (Jira, Jira Service Management, Jira Agile, Confluence, Admin Cloud) @@ -2659,7 +2654,7 @@ _Libraries for accessing third party APIs._ - [go-twitter](https://github.com/dghubble/go-twitter) - Go client library for the Twitter v1.1 APIs. - [go-unsplash](https://github.com/hbagdi/go-unsplash) - Go client library for the [Unsplash.com](https://unsplash.com) API. - [go-xkcd](https://github.com/nishanths/go-xkcd) - Go client for the xkcd API. -- [go-yapla](https://git.iglou.eu/Production/go-yapla) - Go client library for the Yapla v2.0 API. +- [go-yapla](https://gitlab.com/adrienK/go-yapla) - Go client library for the Yapla v2.0 API. - [goagi](https://github.com/staskobzar/goagi) - Go library to build Asterisk PBX agi/fastagi applications. - [goami2](https://github.com/staskobzar/goami2) - AMI v2 library for Asterisk PBX. - [GoFreeDB](https://github.com/FreeLeh/GoFreeDB) - Golang library providing common and simple database abstractions on top of Google Sheets. @@ -3179,7 +3174,7 @@ _Source code analysis tools, also known as Static Application Security Testing ( - [golangci-lint](https://github.com/golangci/golangci-lint) – A fast Go linters runner. It runs linters in parallel, uses caching, supports `yaml` config, has integrations with all major IDE and has dozens of linters included. - [golines](https://github.com/segmentio/golines) - Formatter that automatically shortens long lines in Go code. - [GoPlantUML](https://github.com/jfeliu007/goplantuml) - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. -- [goreturns](https://sourcegraph.com/github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. +- [goreturns](https://github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. - [gostatus](https://github.com/shurcooL/gostatus) - Command line tool, shows the status of repositories that contain Go packages. - [lint](https://github.com/surullabs/lint) - Run linters as part of go test. - [php-parser](https://github.com/z7zmey/php-parser) - A Parser for PHP written in Go. @@ -3628,7 +3623,6 @@ _Add the group of your city/country here (send **PR**)_ - [Google](https://google.github.io/styleguide/go/) - [Hyperledger](https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/style-guides/go-style.rst) - [Magnetico](https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification) -- [Sourcegraph](https://docs.sourcegraph.com/dev/background-information/languages/go) - [Thanos](https://thanos.io/tip/contributing/coding-style-guide.md/) - [Trybe](https://github.com/betrybe/playbook-go/blob/main/README_EN.md) - [Uber](https://github.com/uber-go/guide/blob/master/style.md) @@ -3643,7 +3637,6 @@ _Add the group of your city/country here (send **PR**)_ - [@golang](https://twitter.com/golang) - [@golang_news](https://twitter.com/golang_news) - [@golangch](https://twitter.com/golangch) -- [@golangflow](https://twitter.com/golangflow) - [@golangweekly](https://twitter.com/golangweekly) **[⬆ back to top](#contents)** @@ -3661,10 +3654,9 @@ _Add the group of your city/country here (send **PR**)_ - [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - Curated list of awesome remote jobs. A lot of them are looking for Go hackers. - [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. - [awesome-go-extra](https://github.com/xwjdsh/awesome-go-extra) - Parse awesome-go README file and generate a new README file with repo info. -- [Code with Mukesh](https://codewithmukesh.com/blog/category/golang) - Software Engineer and Blogs @ codewithmukesh.com. +- [Code with Mukesh](https://codewithmukesh.com/categories/golang) - Software Engineer and Blogs @ codewithmukesh.com. - [Coding Mystery](https://codingmystery.com) - Solve exciting escape-room-inspired programming challenges using Go. - [CodinGame](https://www.codingame.com/) - Learn Go by solving interactive tasks using small games as practical examples. -- [Explore Go Libraries & Projects](https://kandi.openweaver.com/explore/go) - Discover & find a curated list of popular & new Go libraries, top authors, trending project kits, discussions, tutorials & learning resources on kandi. - [Go Blog](https://blog.golang.org) - The official Go blog. - [Go Code Club](https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3) - A group of Gophers read and discuss a different Go project every week. - [Go Community on Hashnode](https://hashnode.com/n/go) - Community of Gophers on Hashnode. @@ -3675,7 +3667,6 @@ _Add the group of your city/country here (send **PR**)_ - [go.dev](https://go.dev/) - A hub for Go developers. - [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - Collection of Go projects that needs help. Good place to start your open-source way in Go. - [Golang Developer Jobs](https://golangjob.xyz) - Developer Jobs exclusively for Golang related Roles. -- [Golang Flow](https://golangflow.io) - Post Updates, News, Packages and more. - [Golang News](https://golangnews.com) - Links and news about Go programming. - [Golang Resources](https://golangresources.com) - A curation of the best articles, exercises, talks and videos to learn Go. - [Golang Weekly](https://discu.eu/weekly/golang/) - Each monday projects, tutorials and articles about Go. @@ -3709,7 +3700,6 @@ _Add the group of your city/country here (send **PR**)_ - [Caching Slow Database Queries](https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9) - How to cache slow database queries. - [Canceling MySQL](https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30) - How to cancel MySQL queries. - [CodeCrafters Golang Track](https://app.codecrafters.io/tracks/go) - Achieve mastery in advanced Go by building your own Redis, Docker, Git, and SQLite. Featuring goroutines, systems programming, file I/O, and more. -- [Debugged.it Go patterns](https://github.com/haveyoudebuggedit/go-patterns) - Advanced Go patterns with ready-to-run examples. - [Design Patterns in Go](https://github.com/shubhamzanwar/design-patterns) - Collection of programming design patterns implemented in Go. - [Ethereum Development with Go](https://github.com/miguelmota/ethereum-development-with-go-book) - A little e-book on Ethereum Development with Go. - [Games With Go](https://www.youtube.com/watch?v=9D4yH7e_ea8&list=PLDZujg-VgQlZUy1iCqBbe5faZLMkA3g2x) - A video series teaching programming and game development. @@ -3742,7 +3732,6 @@ _Add the group of your city/country here (send **PR**)_ - [Microservices with Go](https://www.youtube.com/playlist?list=PLmD8u-IFdreyh6EUfevBcbiuCKzFk0EW_) - Dive deep into building microservices using Go, including gRPC. - [package main](https://www.youtube.com/packagemain) - YouTube channel about Programming in Go. - [Programming with Google Go](https://www.coursera.org/specializations/google-golang) - Coursera Specialization to learn about Go from scratch. -- [Saving a Third of Our Memory by Re-ordering Go Struct Fields](https://qvault.io/golang/struct-field-ordering-memory/) - How inefficient field ordering in Go structs. - [Scaling Go Applications](https://betterstack.com/community/guides/scaling-go/) - Everything about building, deploying and scaling Go applications in production. - [The world’s easiest introduction to WebAssembly with Golang](https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02) - [Understanding Go in a visual way](https://dev.to/aurelievache/series/26234) - Learn Go visually From 0f7d70362c5882a150938d64106c7edd59c956fb Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Sat, 14 Sep 2024 12:00:50 +0530 Subject: [PATCH 3418/3440] add muffet and alternatives (#5402) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fca26e8a5f4..b240cebf032 100644 --- a/README.md +++ b/README.md @@ -542,6 +542,7 @@ _Tools for help with continuous integration._ - [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace. - [gotestfmt](https://github.com/GoTestTools/gotestfmt) - go test output for humans. - [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. +- [muffet](https://github.com/raviqqe/muffet) - Fast website link checker in Go, see [alternatives](https://github.com/lycheeverse/lychee#features). - [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. - [woodpecker](https://github.com/woodpecker-ci/woodpecker) - Woodpecker is a community fork of the Drone CI system. From 4f816bfa82d37ee53c7a6ed4a6a4b0bf5d95ec94 Mon Sep 17 00:00:00 2001 From: Go mutex <155832629+gomutex@users.noreply.github.com> Date: Tue, 17 Sep 2024 16:00:38 +0530 Subject: [PATCH 3419/3440] added godocx (#5346) * added godocx * Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index b240cebf032..5495c1c0341 100644 --- a/README.md +++ b/README.md @@ -1752,6 +1752,12 @@ _Libraries for working with Microsoft Excel._ - [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. - [xlsx](https://github.com/plandem/xlsx) - Fast and safe way to read/update your existing Microsoft Excel files in Go programs. +### Microsoft Word + +_Libraries for working with Microsoft Word._ + +- [godocx](https://github.com/gomutex/godocx) - Library for reading and writing Microsoft Word (Docx) files. + **[⬆ back to top](#contents)** ## Miscellaneous From c84bb996ab1a56194e72598f5e030d1f693c74d8 Mon Sep 17 00:00:00 2001 From: Hayden Jones Date: Wed, 18 Sep 2024 04:54:34 -0400 Subject: [PATCH 3420/3440] Update README.md, added Poly to Science section (#5215) * Update README.md, added Poly to Science section * period --------- Co-authored-by: Phani Rithvij --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5495c1c0341..5c1d1c119ec 100644 --- a/README.md +++ b/README.md @@ -2236,6 +2236,7 @@ _Libraries for scientific computing and data analyzing._ - [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go. - [piecewiselinear](https://github.com/sgreben/piecewiselinear) - Tiny linear interpolation library. - [PiHex](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi. +- [Poly](https://github.com/bebop/poly) - A Go package for engineering organisms. - [rootfinding](https://github.com/khezen/rootfinding) - root-finding algorithms library for finding roots of quadratic functions. - [sparse](https://github.com/james-bowman/sparse) - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. - [stats](https://github.com/montanaflynn/stats) - Statistics package with common functions missing from the Golang standard library. From 65f5d0810d8c43a91a4b0b94ab5367a15b7cc87b Mon Sep 17 00:00:00 2001 From: Jan Kuri Date: Thu, 19 Sep 2024 17:15:11 +0200 Subject: [PATCH 3421/3440] chore: add Abstruse CI (#5072) * chore: add Abstruse CI * Update README.md --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5c1d1c119ec..6079b0b5c8a 100644 --- a/README.md +++ b/README.md @@ -531,6 +531,7 @@ _Libraries for configuration parsing._ _Tools for help with continuous integration._ +- [abstruse](https://github.com/bleenco/abstruse) - Abstruse is a distributed CI platform. - [Bencher](https://bencher.dev/) - A suite of continuous benchmarking tools designed to catch performance regressions in CI. - [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. - [dot](https://github.com/opnlabs/dot) - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages. From 7cfe9ec848ac2dfca5f32c417ce6dc9e3b9305d7 Mon Sep 17 00:00:00 2001 From: Yash Chauhan <53042582+iyashjayesh@users.noreply.github.com> Date: Fri, 20 Sep 2024 16:55:47 +0530 Subject: [PATCH 3422/3440] Add MoniGo (#5403) * Update README.md Added `moniGo` to the list - MoniGo is a performance monitoring library for Go applications. It provides real-time insights into application performance. * Fix order --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6079b0b5c8a..ad0c2d857a0 100644 --- a/README.md +++ b/README.md @@ -3258,6 +3258,7 @@ _Plugin for text editors and IDEs._ - [gothanks](https://github.com/psampaz/gothanks) - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. - [igo](https://github.com/rocketlaunchr/igo) - An igo to go transpiler (new language features for Go language!) - [modver](https://github.com/bobg/modver) - Compare two versions of a Go module to check the version-number change required (major, minor, or patchlevel), according to [semver](https://semver.org/) rules. +- [MoniGO](https://github.com/iyashjayesh/monigo) - A performance monitoring library for Go applications. It provides real-time insights into application performance! 🚀 - [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. - [richgo](https://github.com/kyoh86/richgo) - Enrich `go test` outputs with text decorations. - [roumon](https://github.com/becheran/roumon) - Monitor current state of all active goroutines via a command line interface. From dda1dbd76c969355406c6baa96b1449d02be6c2f Mon Sep 17 00:00:00 2001 From: Quanzheng Long Date: Mon, 23 Sep 2024 01:29:44 -0700 Subject: [PATCH 3423/3440] Add iWF (#4749) * Add iWF * Improve * Update README.md --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad0c2d857a0..ee98ac2e90d 100644 --- a/README.md +++ b/README.md @@ -3028,6 +3028,7 @@ _Full stack web frameworks._ - [Hertz](https://github.com/cloudwego/hertz) - A high-performance and strong-extensibility Go HTTP framework that helps developers build microservices. - [hiboot](https://github.com/hidevopsio/hiboot) - hiboot is a high performance web application framework with auto configuration and dependency injection support. - [Huma](https://github.com/danielgtaylor/huma/) - Framework for modern REST/GraphQL APIs with built-in OpenAPI 3, generated documentation, and a CLI. +- [iWF](https://github.com/indeedeng/iwf) - iWF is an all-in-one platform for developing long-running business processes. It offers a convenient abstraction for utilizing databases, ElasticSearch, message queues, durable timers, and more, with a clean, simple, and user-friendly interface. - [Lit](https://github.com/jvcoutinho/lit) - Highly performant declarative web framework for Golang, aiming for simplicity and quality of life. - [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. From 2e6fbac8ad5dfdea1fd76956497e076b6940ee4f Mon Sep 17 00:00:00 2001 From: Lucas Merquior <96875650+lucmq@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:21:46 -0300 Subject: [PATCH 3424/3440] Add Go-Shelve (#5338) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ee98ac2e90d..3e96634e485 100644 --- a/README.md +++ b/README.md @@ -615,6 +615,7 @@ additional ordered map implementations. - [cmap](https://github.com/lrita/cmap) - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards. - [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go. +- [go-shelve](https://github.com/lucmq/go-shelve) - A persistent, map-like object for the Go programming language. Supports multiple embedded key-value stores. - [goradd/maps](https://github.com/goradd/maps) - Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc. ### Miscellaneous Data Structures and Algorithms From e72c1b9b5de9c6f862aca1e282b511fb27b4918b Mon Sep 17 00:00:00 2001 From: Simon Waldherr Date: Tue, 24 Sep 2024 11:45:21 +0200 Subject: [PATCH 3425/3440] add go-hep (#4492) * add go-hep * rephrase description --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3e96634e485..9072e6071c9 100644 --- a/README.md +++ b/README.md @@ -2222,6 +2222,7 @@ _Libraries for scientific computing and data analyzing._ - [go-dsp](https://github.com/mjibson/go-dsp) - Digital Signal Processing for Go. - [go-estimate](https://github.com/milosgajdos/go-estimate) - State estimation and filtering algorithms in Go. - [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. +- [go-hep](https://github.com/go-hep/hep) - A set of libraries and tools for performing High Energy Physics analyses with ease. - [godesim](https://github.com/soypat/godesim) - Extended/multivariable ODE solver framework for event-based simulations with simple API. - [goent](https://github.com/kzahedi/goent) - GO Implementation of Entropy Measures. - [gograph](https://github.com/hmdsefi/gograph) - A golang generic graph library that provides mathematical graph-theory and algorithms. From 92ed68a1002c70ec7dcd7c071b3e44de851db956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Tro=C3=9Fbach?= Date: Wed, 25 Sep 2024 10:26:55 +0200 Subject: [PATCH 3426/3440] Add hypermatch (#5395) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9072e6071c9..f08d794ad39 100644 --- a/README.md +++ b/README.md @@ -1714,6 +1714,7 @@ _Libraries that implement messaging systems._ - [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. - [hare](https://github.com/leozz37/hare) - A user friendly library for sending messages and listening to TCP sockets. - [hub](https://github.com/leandro-lugaresi/hub) - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. +- [hypermatch](https://github.com/SchwarzIT/hypermatch) - A very fast and efficient Go library for matching events to a large set of rules - [jazz](https://github.com/socifi/jazz) - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. - [machinery](https://github.com/RichardKnop/machinery) - Asynchronous task queue/job queue based on distributed message passing. - [mangos](https://github.com/nanomsg/mangos) - Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability. From 4b0c592b49970f2acf661474b7321840a2fc68c1 Mon Sep 17 00:00:00 2001 From: "M.Sz" Date: Wed, 25 Sep 2024 10:35:46 +0200 Subject: [PATCH 3427/3440] Add cimgui-go (#5410) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f08d794ad39..0a5fba87409 100644 --- a/README.md +++ b/README.md @@ -1370,6 +1370,7 @@ _Libraries for building GUI Applications._ _Toolkits_ - [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. +- [cimgui-go](https://github.com/AllenDang/cimgui-go) - Auto generated Go wrapper for [Dear ImGui](https://github.com/ocornut/imgui) via [cimgui](https://github.com/cimgui/cimgui). - [Cogent Core](https://github.com/cogentcore/core) - A framework for building 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the web. - [DarwinKit](https://github.com/progrium/darwinkit) - Build native macOS applications using Go. - [energy](https://github.com/energye/energy) - Cross-platform based on LCL(Native System UI Control Library) and CEF(Chromium Embedded Framework) (Windows/ macOS / Linux) From e6a2e71d310bd6fda3b0c107138d979e9d8f707e Mon Sep 17 00:00:00 2001 From: Rosa Soto Date: Wed, 25 Sep 2024 17:04:48 -0600 Subject: [PATCH 3428/3440] Delete links for meetups that are no longer active (#5412) --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 0a5fba87409..7332dc79870 100644 --- a/README.md +++ b/README.md @@ -3568,7 +3568,6 @@ _Where to discover new Go libraries._ - [Berlin Golang](https://www.meetup.com/golang-users-berlin/) - [Brisbane Gophers](https://www.meetup.com/Brisbane-Golang-Meetup/) - [Bärner Go Meetup - Berne, Switzerland](https://www.meetup.com/berner-go-meetup/) -- [Canberra Gophers](https://www.meetup.com/Canberra-Gophers/) - [Go Language NYC](https://www.meetup.com/golanguagenewyork/) - [Go London User Group](https://www.meetup.com/Go-London-User-Group/) - [Go Remote Meetup](https://www.meetup.com/Go-Remote-Meetup/) @@ -3596,7 +3595,6 @@ _Where to discover new Go libraries._ - [Golang Hamburg - Germany](https://www.meetup.com/Go-User-Group-Hamburg/) - [Golang Israel](https://www.meetup.com/Go-Israel/) - [Golang Kathmandu](https://www.meetup.com/Golang-Kathmandu/) -- [Golang Korea](https://www.meetup.com/GDG-Golang-Korea/) - [Golang Lima - Peru](https://www.meetup.com/Golang-Peru/) - [Golang Lyon](https://www.meetup.com/Golang-Lyon/) - [Golang Marseille](https://www.meetup.com/fr-FR/Golang-Marseille/) From cb5172b9c19789dbd605667d09b817d5f7e2701a Mon Sep 17 00:00:00 2001 From: Sergey Grebenshchikov Date: Fri, 27 Sep 2024 04:41:04 +0200 Subject: [PATCH 3429/3440] Add keilerkonzept/topk (#5408) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7332dc79870..64ef647cf44 100644 --- a/README.md +++ b/README.md @@ -2247,6 +2247,7 @@ _Libraries for scientific computing and data analyzing._ - [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. - [TextRank](https://github.com/DavidBelicza/TextRank) - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. +- [topk](github.com/keilerkonzept/topk) - Sliding-window and regular top-K sketches, based on the HeavyKeeper algorithm. - [triangolatte](https://github.com/tchayen/triangolatte) - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. **[⬆ back to top](#contents)** From 7c76b51d52e6c1ef56ef2a3194f92ad72e4db25b Mon Sep 17 00:00:00 2001 From: Sergey Grebenshchikov Date: Fri, 27 Sep 2024 13:43:19 +0200 Subject: [PATCH 3430/3440] Fix: topk link (missing https://) (#5417) Missed the https:// in #5408 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 64ef647cf44..3bd5a694303 100644 --- a/README.md +++ b/README.md @@ -2247,7 +2247,7 @@ _Libraries for scientific computing and data analyzing._ - [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. - [TextRank](https://github.com/DavidBelicza/TextRank) - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. -- [topk](github.com/keilerkonzept/topk) - Sliding-window and regular top-K sketches, based on the HeavyKeeper algorithm. +- [topk](https://github.com/keilerkonzept/topk) - Sliding-window and regular top-K sketches, based on the HeavyKeeper algorithm. - [triangolatte](https://github.com/tchayen/triangolatte) - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. **[⬆ back to top](#contents)** From f7a5f5044e7363ab9dbede4a3edf61814f22effc Mon Sep 17 00:00:00 2001 From: Maksym Kryvchun Date: Mon, 30 Sep 2024 14:42:29 +0300 Subject: [PATCH 3431/3440] feat: add interactive viewer for JSON logs (#5103) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3bd5a694303..5c3391b79f1 100644 --- a/README.md +++ b/README.md @@ -2828,6 +2828,7 @@ _General utilities and tools to make your life easier._ - [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. - [jsend](https://github.com/clevergo/jsend) - JSend's implementation written in Go. +- [json-log-viewer](https://github.com/hedhyw/json-log-viewer) - Interactive viewer for JSON logs. - [jump](https://github.com/gsamokovarov/jump) - Jump helps you navigate faster by learning your habits. - [just](https://github.com/kazhuravlev/just) - Just a collection of useful functions for working with generic data structures. - [koazee](https://github.com/wesovilabs/koazee) - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays. From 53444f6707df862bff1435d9e490f7331dd0d4a0 Mon Sep 17 00:00:00 2001 From: joetifa2003 <62658783+joetifa2003@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:39:49 +0300 Subject: [PATCH 3432/3440] add mm-go (#4660) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5c3391b79f1..1e6d8c42a0b 100644 --- a/README.md +++ b/README.md @@ -2162,6 +2162,7 @@ _Unofficial libraries for package and dependency management._ - [go-instrument](https://github.com/nikolaydubina/go-instrument) - Automatically add spans to all methods and functions. - [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system. +- [mm-go](https://github.com/joetifa2003/mm-go) - Generic manual memory management for golang. - [pixie](https://github.com/pixie-labs/pixie) - No instrumentation tracing for Golang applications via eBPF. - [profile](https://github.com/pkg/profile) - Simple profiling support package for Go. - [statsviz](https://github.com/arl/statsviz) - Live visualization of your Go application runtime statistics. From bc78f85a6d68f22ebd99deed4889ef004e01d1f3 Mon Sep 17 00:00:00 2001 From: Yassine Benaid Date: Tue, 1 Oct 2024 18:31:13 +0100 Subject: [PATCH 3433/3440] Add goxygen (#5419) * Add goxigen * fix order * add missing dot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1e6d8c42a0b..a65cc25e194 100644 --- a/README.md +++ b/README.md @@ -1810,6 +1810,7 @@ _**Unofficial** set of patterns for structuring projects._ - [gobase](https://github.com/wajox/gobase) - A simple skeleton for golang application with basic setup for real golang application. - [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Set of common historical and emerging project layout patterns in the Go ecosystem. Note: despite the org-name they do not represent official golang standards, see [this issue](https://github.com/golang-standards/project-layout/issues/117) for more information. Nonetheless, some may find the layout useful. - [golang-templates/seed](https://github.com/golang-templates/seed) - Go application GitHub repository template. +- [goxygen](https://github.com/shpota/goxygen) - Generate a modern Web project with Go and Angular, React, or Vue in seconds. - [insidieux/inizio](https://github.com/insidieux/inizio) - Golang project layout generator with plugins. - [modern-go-application](https://github.com/sagikazarmark/modern-go-application) - Go application boilerplate and example applying modern practices. - [nunu](https://github.com/go-nunu/nunu) - Nunu is a scaffolding tool for building Go applications. From db528699f28f5a484631e36465e0dc15b7b0328e Mon Sep 17 00:00:00 2001 From: Arnav Date: Sat, 5 Oct 2024 00:29:42 +0530 Subject: [PATCH 3434/3440] feat: add reflection category (#5422) * feat: add reflection category * fix: suggested changes * fix: markdown * fix: resolve changes --- README.md | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index a65cc25e194..e12088f070d 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Messaging](#messaging) - [Microsoft Office](#microsoft-office) - [Microsoft Excel](#microsoft-excel) + - [Microsoft Word](#microsoft-word) - [Miscellaneous](#miscellaneous) - [Dependency Injection](#dependency-injection) - [Project Layout](#project-layout) @@ -147,6 +148,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Package Management](#package-management) - [Performance](#performance) - [Query Language](#query-language) + - [Reflection](#reflection) - [Resource Embedding](#resource-embedding) - [Science and Data Analysis](#science-and-data-analysis) - [Security](#security) @@ -1259,8 +1261,7 @@ _Tools that generate Go code._ - [generis](https://github.com/senselogic/GENERIS) - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating. - [go-enum](https://github.com/abice/go-enum) - Code generation for enums from code comments. - [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. -- [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types. -- [gotype](https://github.com/wzshiming/gotype) - Golang source code parsing, usage like reflect package. +- [goderive](https://github.com/awalterschulze/goderive) - Derives functions from input types - [goverter](https://github.com/jmattheis/goverter) - Generate converters by defining an interface. - [GoWrap](https://github.com/hexdigest/gowrap) - Generate decorators for Go interfaces using simple templates. - [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. @@ -1862,7 +1863,6 @@ _These libraries were placed here because none of the other categories seemed to - [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-unarr](https://github.com/gen2brain/go-unarr) - Decompression library for RAR, TAR, ZIP and 7z archives. -- [goenum](https://github.com/lvyahui8/goenum) - A common enumeration struct based on generics and reflection that allows you to quickly define enumerations and use a set of useful default methods. - [gofakeit](https://github.com/brianvoe/gofakeit) - Random data generator written in go. - [gommit](https://github.com/antham/gommit) - Analyze git commit messages to ensure they follow defined patterns. - [gopsutil](https://github.com/shirou/gopsutil) - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). @@ -2193,6 +2193,19 @@ _Unofficial libraries for package and dependency management._ **[⬆ back to top](#contents)** +## Reflection + +- [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. +- [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. +- [go-deepcopy](https://github.com/tiendc/go-deepcopy) - Fast deep copy library. +- [goenum](https://github.com/lvyahui8/goenum) - A common enumeration struct based on generics and reflection that allows you to quickly define enumerations and use a set of useful default methods. +- [gotype](https://github.com/wzshiming/gotype) - Golang source code parsing, usage like reflect package. +- [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. +- [objwalker](https://github.com/rekby/objwalker) - Walk by go objects with reflection. +- [reflectutils](https://github.com/muir/reflectutils) - Helpers for working with reflection: struct tag parsing; recursive walking; fill value from string. + +**[⬆ back to top](#contents)** + ## Resource Embedding - [debme](https://github.com/leaanthony/debme) - Create an `embed.FS` from an existing `embed.FS` subdirectory. @@ -2496,13 +2509,13 @@ _Libraries for testing codebases and generating test data._ - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. - [xgo](https://github.com/xhd2015/xgo) - A general pureposed function mocking library. -## Fuzzing and delta-debugging/reducing/shrinking +### 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) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. @@ -2751,7 +2764,6 @@ _General utilities and tools to make your life easier._ - [config-file-validator](https://github.com/Boeing/config-file-validator) - Cross Platform tool to validate configuration files. - [contextplus](https://github.com/contextplus/contextplus) - Package contextplus provide more easy to use functions for contexts. - [cookie](https://github.com/syntaqx/cookie) - Cookie struct parsing and helper package. -- [copy](https://github.com/gotidy/copy) - Package for fast copying structs of different types. - [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. - [countries](https://github.com/biter777/countries) - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standards. - [countries](https://github.com/pioz/countries) - All you need when you are working with countries in Go. @@ -2762,7 +2774,6 @@ _General utilities and tools to make your life easier._ - [cvt](https://github.com/shockerli/cvt) - Easy and safe convert any value to another type. - [dbt](https://github.com/nikogura/dbt) - A framework for running self-updating signed binaries from a central, trusted repository. - [Death](https://github.com/vrecan/death) - Managing go application shutdown with signals. -- [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go. - [delve](https://github.com/derekparker/delve) - Go debugger. - [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a Docker image. - [dlog](https://github.com/kirillDanshin/dlog) - Compile-time controlled logger to make your release smaller without removing debug calls. @@ -2818,7 +2829,6 @@ _General utilities and tools to make your life easier._ - [gostrutils](https://github.com/ik5/gostrutils) - Collections of string manipulation and conversion functions. - [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. - [goval](https://github.com/maja42/goval) - Evaluate arbitrary expressions in Go. -- [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. - [graterm](https://github.com/skovtunenko/graterm) - Provides primitives to perform ordered (sequential/concurrent) GRAceful TERMination (aka shutdown) in Go application. - [grofer](https://github.com/pesos/grofer) - A system and resource monitoring tool written in Golang! - [gubrak](https://github.com/novalagung/gubrak) - Golang utility library with syntactic sugar. It's like lodash, but for golang. @@ -2857,7 +2867,6 @@ _General utilities and tools to make your life easier._ - [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. - [nfdump](https://github.com/chrispassas/nfdump) - Read nfdump netflow files. - [nostromo](https://github.com/pokanop/nostromo) - CLI for building powerful aliases. -- [objwalker](https://github.com/rekby/objwalker) - Walk by go objects with reflection. - [okrun](https://github.com/xta/okrun) - go run error steamroller. - [olaf](https://github.com/btnguyen2k/olaf) - Twitter Snowflake implemented in Go. - [onecache](https://github.com/adelowo/onecache) - Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc). @@ -2869,7 +2878,6 @@ _General utilities and tools to make your life easier._ - [pointer](https://github.com/xorcare/pointer) - Package pointer contains helper routines for simplifying the creation of optional fields of basic type. - [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types. - [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs. -- [reflectutils](https://github.com/muir/reflectutils) - Helpers for working with reflection: struct tag parsing; recursive walking; fill value from string. - [remote-touchpad](https://github.com/Unrud/remote-touchpad) - Control mouse and keyboard from a smartphone. - [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating. - [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. From 2a5846ed65210585c43fafeb4a7a06ef1da1d145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Gill=C3=A9?= Date: Tue, 8 Oct 2024 10:15:35 +0200 Subject: [PATCH 3435/3440] Add chromem-go (#5350) Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e12088f070d..191ff49f116 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,7 @@ _Libraries for building actor-based programs._ _Libraries for building programs that leverage AI._ +- [chromem-go](https://github.com/philippgille/chromem-go) - Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence. - [fun](https://gitlab.com/tozd/go/fun) - The simplest but powerful way to use large language models (LLMs) in Go. - [langchaingo](https://github.com/tmc/langchaingo) - LangChainGo is a framework for developing applications powered by language models. - [LocalAI](https://github.com/mudler/LocalAI) - Open Source OpenAI alternative, self-host AI models. From 5cacb8fd2b344ff13257efae84a70bce5362578d Mon Sep 17 00:00:00 2001 From: Patrick Peters Date: Wed, 9 Oct 2024 03:33:41 -0500 Subject: [PATCH 3436/3440] Add syft to Awesome-Go Package Management section (#5428) * Added Syft to awesome-go * Removed nut Nut package hasn't had a PR or release since 2016, has no documentation in pkg.go.dev, and currently isn't imported by any other Go projects or packages. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 191ff49f116..b1a3d956ef0 100644 --- a/README.md +++ b/README.md @@ -2155,7 +2155,7 @@ _Unofficial libraries for package and dependency management._ - [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git. - [modgv](https://github.com/lucasepe/modgv) - Converts 'go mod graph' output into Graphviz's DOT language. - [mvn-golang](https://github.com/raydac/mvn-golang) - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure. -- [nut](https://github.com/jingweno/nut) - Vendor Go dependencies. +- [syft](https://github.com/anchore/syft) - A CLI tool and Go library for generating a Software Bill of Materials (SBOM) from container images and filesystems. - [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments. **[⬆ back to top](#contents)** From 8c0388a7f92794d39d14282f87b3c04a16074bd3 Mon Sep 17 00:00:00 2001 From: Kamaleshwar <1092882+bnkamalesh@users.noreply.github.com> Date: Thu, 10 Oct 2024 13:29:17 +0200 Subject: [PATCH 3437/3440] bnkamalesh -> naughtygopher (#5430) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b1a3d956ef0..bec3086fc41 100644 --- a/README.md +++ b/README.md @@ -1112,7 +1112,7 @@ _Libraries for handling errors._ - [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives. - [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead. - [errors](https://gitlab.com/tozd/go/errors) - Providing errors with a stack trace and optional structured details. Compatible with github.com/pkg/errors API but does not use it internally. -- [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. +- [errors](https://github.com/naughtygopher/errors) - Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. - [errors](https://github.com/cockroachdb/errors) - Go error library with error portability over the network. - [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more. - [exception](https://github.com/rbrahul/exception) - A simple utility package for exception handling with try-catch in Golang. @@ -1165,7 +1165,7 @@ _Packages for accounting and finance._ - [ach](https://github.com/moov-io/ach) - A reader, writer, and validator for Automated Clearing House (ACH) files. - [bbgo](https://github.com/c9s/bbgo) - A crypto trading bot framework written in Go. Including common crypto exchange API, standard indicators, back-testing and many built-in strategies. - [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting. -- [currency](https://github.com/bnkamalesh/currency) - High performant & accurate currency computation package. +- [currency](https://github.com/naughtygopher/currency) - High performant & accurate currency computation package. - [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. - [decimal](https://github.com/govalues/decimal) - Immutable decimal numbers with panic-free arithmetic. - [fpdecimal](https://github.com/nikolaydubina/fpdecimal) - Fast and precise serialization and arithmetic for small fixed-point decimals @@ -3738,7 +3738,7 @@ _Add the group of your city/country here (send **PR**)_ - [Go WebAssembly Tutorial - Building a Simple Calculator](https://tutorialedge.net/golang/go-webassembly-tutorial/) - [go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services. - [go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms. -- [goapp](https://github.com/bnkamalesh/goapp) - An opinionated guideline to structure & develop a Go web application/service. +- [goapp](https://github.com/naughtygopher/goapp) - An opinionated guideline to structure & develop a Go web application/service. - [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - Examples of Golang compared to Node.js for learning. - [Golang Tutorial Guide](https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/) - A List of Free Courses to Learn the Go Programming Language. - [golang-examples](https://github.com/SimonWaldherr/golang-examples) - Many examples to learn Golang. From 42948a1693b25eaddc827d38b86ee05b92f44d8b Mon Sep 17 00:00:00 2001 From: kasyap dharanikota <76957823+kasyap1234@users.noreply.github.com> Date: Thu, 10 Oct 2024 21:10:44 +0530 Subject: [PATCH 3438/3440] add hatchet (#5432) * Update README.md * Update README.md * Update README.md * fix spacing --------- Co-authored-by: Yassine Benaid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bec3086fc41..60f087f2fc4 100644 --- a/README.md +++ b/README.md @@ -655,6 +655,7 @@ additional ordered map implementations. - [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue. - [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue). - [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue. +- [hatchet](https://github.com/hatchet-dev/hatchet) - Distributed, Fault-tolerant task queue. - [memlog](https://github.com/embano1/memlog) - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka. - [queue](https://github.com/adrianbrad/queue) - Multiple thread-safe, generic queue implementations for Go. From 5d11249f741e9c6cf1817f12c30ffb4a34efe4f6 Mon Sep 17 00:00:00 2001 From: Whki <7507761+whki@users.noreply.github.com> Date: Thu, 10 Oct 2024 23:41:58 +0800 Subject: [PATCH 3439/3440] add rulego (#5431) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 60f087f2fc4..ad85027ebe7 100644 --- a/README.md +++ b/README.md @@ -1487,6 +1487,7 @@ _Libraries for programming devices of the IoT._ - [iot](https://github.com/vaelen/iot/) - IoT is a simple framework for implementing a Google IoT Core device. - [mainflux](https://github.com/Mainflux/mainflux) - Industrial IoT Messaging and Device Management Server. - [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities. +- [rulego](https://github.com/rulego/rulego) - RuleGo is a lightweight, high-performance, embedded, orchestrable component-based rule engine for IoT edge. - [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT. - [shifu](https://github.com/Edgenesis/shifu) - Kubernetes native IoT development framework. - [smart-home](https://github.com/e154/smart-home) - Software package for IoT automation. From 106454fff61bcc2aefbcde584237dd4267952fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Caxzilla=E2=80=9D?= Date: Sat, 12 Oct 2024 11:29:07 +0200 Subject: [PATCH 3440/3440] Add Goilerplate to Web Frameworks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad85027ebe7..ba40551be46 100644 --- a/README.md +++ b/README.md @@ -3035,6 +3035,7 @@ _Full stack web frameworks._ - [goa](https://github.com/goa-go/goa) - goa is just like koajs for golang, it is a flexible, light, high-performance and extensible web framework based on middleware. - [GoFr](https://github.com/gofr-dev/gofr) - Gofr is an opinionated microservice development framework. - [GoFrame](https://github.com/gogf/gf) - GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang. +- [Goilerplate](https://github.com/axzilla/goilerplate) - Modern UI Components for Go & Templ. - [golamb](https://github.com/twharmon/golamb) - Golamb makes it easier to write API endpoints for use with AWS Lambda and API Gateway. - [Golax](https://github.com/fulldump/golax) - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more. - [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.