Merge remote-tracking branch 'upstream/main' into go18ds

This commit is contained in:
Sohom Majumdar 2022-04-04 11:48:28 +05:30
commit 0a522b6f1f
2 changed files with 38 additions and 17 deletions

View File

@ -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 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 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 ```yaml
name: Go # The name of the workflow that will appear on Github name: Go # The name of the workflow that will appear on Github

View File

@ -211,11 +211,9 @@ _Libraries for manipulating audio._
- [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go. - [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go.
- [malgo](https://github.com/gen2brain/malgo) - Mini audio library. - [malgo](https://github.com/gen2brain/malgo) - Mini audio library.
- [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder 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. - [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. - [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. - [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)** **[⬆ back to top](#contents)**
@ -496,6 +494,7 @@ _Libraries for preprocessing CSS files._
_Generic datastructures and algorithms in Go._ _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. - [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. - [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. - [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream.
@ -528,6 +527,7 @@ _Generic datastructures and algorithms in Go._
- [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. - [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-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-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. - [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. - [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. - [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue.
@ -666,6 +666,7 @@ _Database tools._
- [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. - [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. - [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. - [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. - [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. - [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.
@ -687,6 +688,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. - [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. - [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. - [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. - [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder.
- [sqlingo](https://github.com/lqs/sqlingo) - A lightweight DSL to build SQL in Go. - [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. - [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance.
@ -701,6 +703,7 @@ _SQL query builder, libraries for building and using SQL._
_Libraries for connecting and operating databases._ _Libraries for connecting and operating databases._
- Relational Databases - Relational Databases
- [avatica](https://github.com/apache/calcite-avatica-go) - Apache Avatica/Phoenix 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. - [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.
@ -718,6 +721,7 @@ _Libraries for connecting and operating databases._
- [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver. - [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver.
- NoSQL Databases - NoSQL Databases
- [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. - [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. - [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB.
- [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. - [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go.
@ -747,6 +751,7 @@ _Libraries for connecting and operating databases._
- [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. - [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. - [bleve](https://github.com/blevesearch/bleve) - Modern text indexing library for go.
- [elastic](https://github.com/olivere/elastic) - Elasticsearch client 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. - [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go.
@ -1079,6 +1084,7 @@ _Geographic tools and servers_
- [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go. - [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. - [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. - [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing.
- [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). - [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM).
**[⬆ back to top](#contents)** **[⬆ back to top](#contents)**
@ -1155,6 +1161,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-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-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. - [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. - [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. - [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).
@ -1368,7 +1375,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. - [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. - [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. - [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. - [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. - [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. - [tail](https://github.com/hpcloud/tail) - Go package striving to emulate the features of the BSD tail program.
@ -1517,7 +1524,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. - [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. - [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. - [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. - [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang.
**[⬆ back to top](#contents)** **[⬆ back to top](#contents)**
@ -1770,6 +1777,7 @@ _Libraries for making HTTP requests._
- [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. - [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-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-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-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-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. - [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library.
@ -1957,6 +1965,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. - [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. - [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. - [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. - [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. - [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-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library.
@ -1971,7 +1980,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. - [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. - [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. - [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. - [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. - [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. - [simple-scrypt](https://github.com/elithrar/simple-scrypt) - Scrypt package with a simple, obvious API and automatic cost calibration built-in.
@ -2082,6 +2091,7 @@ _Libraries and tools for templating and lexing._
_Libraries for testing codebases and generating test data._ _Libraries for testing codebases and generating test data._
- Testing Frameworks - 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. - [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. - [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. - [badio](https://github.com/cavaliercoder/badio) - Extensions to Go's `testing/iotest` package.
@ -2121,6 +2131,7 @@ _Libraries for testing codebases and generating test data._
- [GoSpec](https://github.com/orfjackal/gospec) - BDD-style testing framework for the Go programming language. - [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. - [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.
- [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. - [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. - [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.
@ -2141,6 +2152,7 @@ _Libraries for testing codebases and generating test data._
- [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler. - [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler.
- Mock - Mock
- [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects. - [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. - [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-localstack](https://github.com/elgohr/go-localstack) - Tool for using localstack in AWS testing.
@ -2158,11 +2170,13 @@ _Libraries for testing codebases and generating test data._
- [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package. - [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package.
- Fuzzing and delta-debugging/reducing/shrinking. - Fuzzing and delta-debugging/reducing/shrinking.
- [go-fuzz](https://github.com/dvyukov/go-fuzz) - Randomized testing system. - [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. - [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. - [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. - [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. - [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. - [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs.
@ -2491,8 +2505,10 @@ _General utilities and tools to make your life easier._
- [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool. - [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool.
- [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community. - [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. - [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. - [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. - [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. - [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™. - [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. - [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go.
@ -2613,6 +2629,7 @@ _Full stack web frameworks._
- [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go. - [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. - [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. - [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. - [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. - [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. - [Beego](https://github.com/beego/beego) - beego is an open-source, high-performance web framework for the Go programming language.
@ -2715,9 +2732,11 @@ _Full stack web frameworks._
- [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.
- [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create 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.
- [mux](https://github.com/gorilla/mux) - Powerful URL router and dispatcher for golang. - [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. - [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. - [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. - [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. - [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. - [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. - [violetear](https://github.com/nbari/violetear) - Go HTTP router.
@ -2912,6 +2931,7 @@ _Software written in Go._
- [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way. - [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. - [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. - [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. - [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. - [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. - [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly.
@ -3178,7 +3198,7 @@ _Where to discover new Go libraries._
- [Utah Go User Group](https://www.meetup.com/utahgophers/) - [Utah Go User Group](https://www.meetup.com/utahgophers/)
- [Women Who Go - San Francisco, CA](https://www.meetup.com/Women-Who-Go/) - [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)** **[⬆ back to top](#contents)**
@ -3290,6 +3310,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 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 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. - [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 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. - [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) - Serie of article in order to learn Golang language by concrete applications as example.