diff --git a/COVERAGE.md b/COVERAGE.md index 4bd6e7fc..62f4931f 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 +``` diff --git a/README.md b/README.md index 3532e4d5..d609a62e 100644 --- a/README.md +++ b/README.md @@ -211,11 +211,9 @@ _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. -- [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. **[⬆ back to top](#contents)** @@ -496,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. @@ -528,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+. - [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. @@ -666,6 +666,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. @@ -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. - [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. @@ -1079,6 +1081,7 @@ _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. +- [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)** @@ -1155,6 +1158,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). @@ -1517,7 +1521,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)** @@ -1770,6 +1774,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. @@ -1957,6 +1962,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. @@ -2121,6 +2127,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. @@ -2491,8 +2498,10 @@ _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. +- [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. @@ -2613,6 +2622,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. @@ -2715,9 +2725,11 @@ _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. +- [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. @@ -2912,6 +2924,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. @@ -3290,6 +3303,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.