From 8c7d0b9f97bddc8ff23d48e2a33d5aa010f05bb0 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Sat, 18 Feb 2023 18:14:45 +0530 Subject: [PATCH 001/467] diff: remove --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0ef8a3fb..965d8ffd 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 f6f6f6b13c577523658ce95e60d420536830c5a7 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 002/467] add watermill (#4179) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 965d8ffd..ee491b50 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 750263e968f312271e17078e7622e769ca1dce99 Mon Sep 17 00:00:00 2001 From: Edwin Date: Mon, 20 Feb 2023 01:30:54 +0800 Subject: [PATCH 003/467] wuid: update description (#4757) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee491b50..df2459e9 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 131485b5da921f88735bcb7e8acee0151f8a4567 Mon Sep 17 00:00:00 2001 From: Edwin Date: Mon, 20 Feb 2023 01:32:11 +0800 Subject: [PATCH 004/467] add github.com/edwingeng/hotswap (#4758) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index df2459e9..801e2a9c 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 e13a725748be54cec8e74963892a180595ffd1e2 Mon Sep 17 00:00:00 2001 From: Jonathan Hall Date: Sun, 19 Feb 2023 18:34:04 +0100 Subject: [PATCH 005/467] kivik: mv to nosql (#4729) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 801e2a9c..99131331 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 52080bc344c489b57811c320c247b5439eae76f2 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 006/467] docs: add Testcontainers for Go (#4730) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 99131331..d4d3ccd8 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 62b011ea2ddc80d70b52a9e8d36dda3d31a98c2a Mon Sep 17 00:00:00 2001 From: Joe Davidson Date: Mon, 20 Feb 2023 04:33:50 +0000 Subject: [PATCH 007/467] add xc (#4720) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d4d3ccd8..a7c1e901 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 0d66621e267f67934ffc4c55981649a3d9831822 Mon Sep 17 00:00:00 2001 From: Julian Li Date: Mon, 20 Feb 2023 15:40:04 +1100 Subject: [PATCH 008/467] add onedump (#4700) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a7c1e901..6e703508 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 6054b760883ad4efb9c884a5941dc946330c62dc 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 009/467] 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 6e703508..568ebccf 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 3e174a5febbbc2686c02fe59a5335e4d26160f0b Mon Sep 17 00:00:00 2001 From: Barnaby Keene Date: Mon, 20 Feb 2023 06:06:31 +0100 Subject: [PATCH 010/467] add fault (#4721) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 568ebccf..2c495963 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 3178d07d7336a50760bb8c7f972a4fd5a7afc48e Mon Sep 17 00:00:00 2001 From: Andrew Privalov Date: Mon, 20 Feb 2023 08:09:17 +0300 Subject: [PATCH 011/467] 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 2c495963..8ce4538a 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 9e3779c3e08a12a63daeb7418663b59508bd278b Mon Sep 17 00:00:00 2001 From: Anatol Pomozov Date: Sun, 19 Feb 2023 23:57:04 -0800 Subject: [PATCH 012/467] add booster (#4719) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ce4538a..377951d4 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 e898641186c5bead7c272c3fe7deb991b8de0c2a 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 013/467] 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 6dbeadfc..8ec13b7d 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 df7d0ed4..f68b24a9 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 cb5d215206eda4f2f1a35bee2cddc3e8ee8925de Mon Sep 17 00:00:00 2001 From: ka Date: Thu, 23 Feb 2023 23:45:22 +0100 Subject: [PATCH 014/467] 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 377951d4..64eacbf2 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 d83bcd88ea802542ac5d6101f667bac65e2dd0ef Mon Sep 17 00:00:00 2001 From: Adrian Macneil Date: Tue, 28 Feb 2023 12:05:58 -0800 Subject: [PATCH 015/467] add dbmate (#4775) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 64eacbf2..2722be78 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 8326f9d03fe2898a6bc388684715f1da75886e00 Mon Sep 17 00:00:00 2001 From: Abhishek Somani Date: Mon, 6 Mar 2023 00:45:37 +0530 Subject: [PATCH 016/467] Add go-palette --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2722be78..0cfde32d 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 142654bdbf93c9b5c645e84fd4ed5a2307164893 Mon Sep 17 00:00:00 2001 From: Hiromu OCHIAI Date: Mon, 6 Mar 2023 21:27:57 +0900 Subject: [PATCH 017/467] Add openaigo (#4777) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0cfde32d..87611de1 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 aeb58ec87cb43dc4981321cb8a80e28af111ec3e Mon Sep 17 00:00:00 2001 From: Abhishek Somani Date: Thu, 9 Mar 2023 16:04:04 +0530 Subject: [PATCH 018/467] Add jsonhandlers --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87611de1..8ae436c8 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 b722bffb47c7b88ad6ade25e57abeded5406af5b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 12 Mar 2023 10:14:07 +0100 Subject: [PATCH 019/467] added kazhuravlev/options-gen (#4793) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ae436c8..b2d97ef1 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 7a7ce996e76e54d627435aed9fdbcb6f21a3927a 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 020/467] add go-openai (#4787) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b2d97ef1..24fb2712 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 aa7f45dc35473e25cad793e649676770a0a4eb07 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 07:42:41 -0300 Subject: [PATCH 021/467] Update README.md Remove old sponsor --- README.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/README.md b/README.md index 24fb2712..931efb5e 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 3ee45b6c290ca8bc26268acaa03c063f6ad2aa26 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 07:48:46 -0300 Subject: [PATCH 022/467] 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 00000000..66d3b0be --- /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 73dcd799eb2b6dc852e843e1d747c0605b8a984f Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 07:53:05 -0300 Subject: [PATCH 023/467] go-jose update repo #4794 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 931efb5e..1a57d5eb 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 0e7fb8e74fe5a33356e17cdae38052391c470a1b 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 024/467] 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 8ec13b7d..4e61d2c7 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 f68b24a9..4565a4b5 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 ba26a433a6e9d364432841fca86acc0a68f7ef8a Mon Sep 17 00:00:00 2001 From: Alexandre Thibault Date: Fri, 17 Mar 2023 09:12:22 +0100 Subject: [PATCH 025/467] 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 1a57d5eb..af27a02d 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 eb06322d4de0edace2c26a83382698d183385d14 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 08:37:22 -0300 Subject: [PATCH 026/467] 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 00000000..e2b10441 --- /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 cd9a266470d843acafeedb1fe1e5ecc0c8c11c99 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 08:46:33 -0300 Subject: [PATCH 027/467] 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 4c138a83..26e2ce1e 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 96911638ac7f01d1e62436b55b2d9e7aa657423e Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 08:49:50 -0300 Subject: [PATCH 028/467] Code Coverage: improve grammar --- COVERAGE.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/COVERAGE.md b/COVERAGE.md index 62f4931f..dfba16a3 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 19d0452a2c18b5d255ed19bcdbe6ef7e812d7cf0 Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 08:53:02 -0300 Subject: [PATCH 029/467] 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 9807c1ff..5b85b915 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 db8125815d652d0463b6881bafcf9b876c5b3104 Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Sat, 18 Mar 2023 19:32:44 +0800 Subject: [PATCH 030/467] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af27a02d..6712406a 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 8556186d562587eb4858dc1c8be0c0229267b802 Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Sat, 18 Mar 2023 19:35:21 +0800 Subject: [PATCH 031/467] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6712406a..f30066ce 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 6d38d787765567517e8b7d8e5f74c9dd8b0c11d3 Mon Sep 17 00:00:00 2001 From: Hamed Yousefi Date: Tue, 14 Mar 2023 00:38:42 +0330 Subject: [PATCH 032/467] added hmdsefi/gograph --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f30066ce..2b14492c 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 f6bc6520610ef0a6fa0a9c7b617cd3401676538e Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 09:53:03 -0300 Subject: [PATCH 033/467] 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 66d3b0be..10fa6a98 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 58f71c3bbc9fc54b6c1320ad8e4580cecd2bccdc Mon Sep 17 00:00:00 2001 From: Avelino Date: Sat, 18 Mar 2023 11:03:46 -0300 Subject: [PATCH 034/467] 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 10fa6a98..871ecc39 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 7235da82055aee24275fac5333f8c81d8a168667 Mon Sep 17 00:00:00 2001 From: n0trace Date: Mon, 26 Sep 2022 17:16:29 +0800 Subject: [PATCH 035/467] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2b14492c..518eaf88 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 ae0007950bd44a0223715e08c829c853291263f5 Mon Sep 17 00:00:00 2001 From: n0trace Date: Mon, 26 Sep 2022 17:46:48 +0800 Subject: [PATCH 036/467] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 518eaf88..0a994041 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 a7a5329ad185db6cceabbfe5ff0edd7694992878 Mon Sep 17 00:00:00 2001 From: mstmdev Date: Mon, 27 Mar 2023 15:11:38 +0800 Subject: [PATCH 037/467] Update the contribution guidelines link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a994041..b8830649 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 4c02bd46810a219dc97d2434f19addcde25000d6 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 038/467] Add fluentassert to Testing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b8830649..659318e0 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 f93bae30ca7e51f2c683fd5cdf1d95e31f00add4 Mon Sep 17 00:00:00 2001 From: Nondzu Date: Fri, 31 Mar 2023 06:16:32 +0000 Subject: [PATCH 039/467] Remove dead repos --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 659318e0..90727ecb 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 e5842ea82a9a3e85a3233efffaca243f6c1141c3 Mon Sep 17 00:00:00 2001 From: Nikolay Dubina Date: Mon, 3 Apr 2023 04:17:19 +0800 Subject: [PATCH 040/467] Update README.md (#4822) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 90727ecb..68bbf481 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 7d9557f198fe8dd95c6e1c7f6cf138b35a7a2599 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 19:44:07 +0100 Subject: [PATCH 041/467] ignore out dir --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9a7c1cec..dd2f819f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -tmpl/index.html +out/ awesome-go vendor From a0f6a55ba1c7d87afe556ab0dd733157a5c28934 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sat, 4 Feb 2023 02:39:51 +0100 Subject: [PATCH 042/467] change code that works with filenames --- make_site.go => main.go | 77 +++++++++++++++++++++++++++++------- repo_test.go => main_test.go | 2 +- scripts.go | 32 ++++++++++----- 3 files changed, 86 insertions(+), 25 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 3811b494..6c269b42 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) - if err != nil { - log.Println(err) + outDir := filepath.Join(outDir, obj.Slug) + if err := mkdirAll(outDir); err != nil { + return err } - t := template.Must(template.ParseFiles("tmpl/cat-tmpl.html")) - f, _ := os.Create(fmt.Sprintf("%s/index.html", folder)) - t.Execute(f, obj) + // 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 { + return err + } + + 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 39717369..18184ca2 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 b89c5a0f..072e60c2 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 3238f9c4308dfd176df6c5fae26fd5fecfbeef6b Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 3 Apr 2023 08:16:02 -0300 Subject: [PATCH 043/467] 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 4e61d2c7..cc888d97 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 4565a4b5..8c0ebb96 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 6c269b42..5c0bf81a 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 18184ca2..6e3a8ebd 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 072e60c2..dc973511 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 05fe19526630e6df5f5f90c7f8569568b895db31 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sat, 4 Feb 2023 03:01:22 +0100 Subject: [PATCH 044/467] cleanup output dir at start --- main.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 5c0bf81a..2994681d 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 ed9808b8f1a6bf29701e91026e5bd19e38668853 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:30:51 +0100 Subject: [PATCH 045/467] 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 6e3a8ebd..8a943a0b 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 dc973511..db788316 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 43fe5dbe66aafd58802472a39be14631bcc2172b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:49:59 +0100 Subject: [PATCH 046/467] 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 2994681d..f4e56112 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 8b819d98d2c408a8eff566ded02e444e64427633 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:50:14 +0100 Subject: [PATCH 047/467] 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 f4e56112..a2a3a173 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 db788316..876c881b 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 2387ec4bb904ed5b906712363d19d9f7546ea169 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:58:31 +0100 Subject: [PATCH 048/467] remove unnecessary lines --- .codeclimate.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.codeclimate.yml b/.codeclimate.yml index afc2bb1f..0b6935d2 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -18,5 +18,3 @@ engines: ratings: paths: - "**.go" -exclude_paths: -- vendor/ From dc33e720e781317bdf2c4cdee198ac26ceecda82 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 18:58:36 +0100 Subject: [PATCH 049/467] change comments --- main.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index a2a3a173..a92e1eda 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 d9aabba6376a09e4bc5b8d6bb36173d2f6fba20f Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:00:38 +0100 Subject: [PATCH 050/467] remove vendor from .gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index dd2f819f..93865a2a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ out/ awesome-go -vendor # Folders .idea From 00bcb015847bd60f0ba53a18972e548ee291dacb Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:12:57 +0100 Subject: [PATCH 051/467] 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 a92e1eda..b879d475 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 876c881b..b810dc7b 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 dc37bffd..8bfbd64c 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 bb94bde97e2e7591b55cd3e78bd55ad7be12c3b0 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:46:42 +0100 Subject: [PATCH 052/467] 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 63d53064..b6d57b8d 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 3a87a155..eab18e4c 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -23,9 +23,9 @@ - - - + + + From 994209cce961ef139e241d8725d7d7eb69eb0b13 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:46:53 +0100 Subject: [PATCH 053/467] notes --- main.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index b879d475..cca9ed6b 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 d029cd932abbd62d150c57635a2bea97671c565c Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 19:56:32 +0100 Subject: [PATCH 054/467] remove unnecessary pointers --- main.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index cca9ed6b..f01172aa 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 b15a1ffc033f696f4511b8e0a7589397522867da Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 20:06:46 +0100 Subject: [PATCH 055/467] simple makeObjByID refactoring --- main.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index f01172aa..68aaf921 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 bf28343c1594903701c5b225a59365079fc48396 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 20:24:30 +0100 Subject: [PATCH 056/467] add notes --- main.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index 68aaf921..4deed39d 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 e318f94283ebfc98b74685e7ed6d1cf8619d2ad1 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 21:26:32 +0100 Subject: [PATCH 057/467] 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 0a14f00d..31a77e5e 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 0efdf84e..9f2c58c2 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 b810dc7b..9d185b58 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 b750341e0dd7ebae25b1d47ab58d55a0a8594d84 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 21:26:37 +0100 Subject: [PATCH 058/467] fixme --- main.go | 1 + pkg/slug/generator.go | 1 + 2 files changed, 2 insertions(+) diff --git a/main.go b/main.go index 4deed39d..bcd355e7 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 8bafcf2f..d2f79403 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 45f2daa07b7be6f04aca5e41e6b0846ba35a96b8 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 22:34:53 +0100 Subject: [PATCH 059/467] 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 b6d57b8d..b0031c88 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 @@

- 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 eab18e4c..8436559f 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 82263463a8e3550c0383287fda34bd49f47f6cdc Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 22:55:40 +0100 Subject: [PATCH 060/467] 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 8a943a0b..8aa43fe6 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 9d185b58..75063bb0 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 8bfbd64c..55823aed 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 dba4bbd30718287bab3dd740abdeb7f343069fc4 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 22:55:56 +0100 Subject: [PATCH 061/467] 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 bcd355e7..77e7388a 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 8aa43fe6..b4431e20 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 75063bb0..a7162811 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 e5d1c25bbf5afcc6379d4670015a2f2d2d99ee45 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 22:59:11 +0100 Subject: [PATCH 062/467] simplify template context --- scripts.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/scripts.go b/scripts.go index a7162811..30726e1e 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 8e90349cbe9b39a88217e0843c348159e707f68b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:00:00 +0100 Subject: [PATCH 063/467] 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 b4431e20..1fa5ebf2 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 a2d1d19caf6d7c2ee755cb5492ec93d2a47c6b5f Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:10:50 +0100 Subject: [PATCH 064/467] panics -> errors with explanation --- main.go | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 77e7388a..97d793a1 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 258c4fb4d69fc93fe424e2701e3fd6d594f20a97 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:26:55 +0100 Subject: [PATCH 065/467] 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 97d793a1..aabfea14 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 34c5e361eeefc4fe9fade1eef6e0f784ae4fee7a Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:50:57 +0100 Subject: [PATCH 066/467] rename function --- main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index aabfea14..48e31475 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 084f2fcb05141c6b3eac6190fb41b245bd3ac94f Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:58:11 +0100 Subject: [PATCH 067/467] 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 48e31475..f1b9da26 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 0c34360e82aa72956889466fd65d4770ee4fa1ce Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:02:32 +0100 Subject: [PATCH 068/467] 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 b0031c88..614f42d7 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 8436559f..3142c956 100644 --- a/tmpl/tmpl.html +++ b/tmpl/tmpl.html @@ -30,10 +30,10 @@

-

+

-

+
{{.Body}} From 3f3e953ef07c184bb88375603ac32567f8a6eaec Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:05:16 +0100 Subject: [PATCH 069/467] all panics removed from main package --- main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/main.go b/main.go index f1b9da26..ceea371b 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 9bb5084a96e30398b7eeb865938a27bc76b808e0 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:05:31 +0100 Subject: [PATCH 070/467] handle errors on render sitemap --- main.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index ceea371b..d14fc59b 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 ab3d9909a173b117f5d57a9dc9bf846236f35cc4 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:13:56 +0100 Subject: [PATCH 071/467] 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 eae76812..f5f12988 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 49e5c3ed2d52d7e135a736061e7aaa340ab61afb Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:19:35 +0100 Subject: [PATCH 072/467] 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 d14fc59b..099f23d3 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 1fa5ebf2..9800952d 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 30726e1e..df54b75b 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 776c1fee4546530a3593ad6ec8127cc89be59663 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:19:40 +0100 Subject: [PATCH 073/467] fixme --- main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/main.go b/main.go index 099f23d3..5d0b0cc6 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 2a6e7d9086b876d7ef4a8f4c9f19875f5b66acbd Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:21:17 +0100 Subject: [PATCH 074/467] function chains splitted into lines --- main.go | 80 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 36 deletions(-) diff --git a/main.go b/main.go index 5d0b0cc6..8fc5cb8c 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 - } + 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, query.Find("body")) - if err != nil { - return - } + obj, err := makeObjByID(selector, doc) + if err != nil { + return + } - objs[selector] = *obj + 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 361aee982067f0c448d2940d2c6616da6a757ca9 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:31:31 +0100 Subject: [PATCH 075/467] wrap errors --- main.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index 8fc5cb8c..423605e0 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 897a6bc2677412f78563caece2f03b4c839771a6 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:35:13 +0100 Subject: [PATCH 076/467] 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 423605e0..5133bd67 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 9800952d..561f1306 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 df54b75b..9791d467 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 494289eb6f3538e27f4e5927cff2661997dd55e2 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:36:18 +0100 Subject: [PATCH 077/467] close file after write --- scripts.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts.go b/scripts.go index 9791d467..dd1e41c7 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 e05067733e1994528b78852c95bd6f8bed63395e Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:39:11 +0100 Subject: [PATCH 078/467] extract drop/create dir func --- main.go | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index 5133bd67..b10a4597 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 90bd8d65f3ab91c5e5a8ac6983b0dc2871057bba Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:39:17 +0100 Subject: [PATCH 079/467] inline call --- main.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/main.go b/main.go index b10a4597..cc88960d 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 1e1a153e529ad163f725de3cb57faaaafd047c76 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:42:19 +0100 Subject: [PATCH 080/467] extract "object extractor" --- main.go | 54 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/main.go b/main.go index cc88960d..5c13b3c3 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 839fcc06271af35a607cbde931040bc7e7a957b4 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:48:07 +0100 Subject: [PATCH 081/467] object -> category --- main.go | 57 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/main.go b/main.go index 5c13b3c3..846a8217 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 1bd37bb9ac01c7b58d0957e40b7586345ad5b103 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:49:25 +0100 Subject: [PATCH 082/467] 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 846a8217..56ef932d 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 614f42d7..15633f44 100644 --- a/tmpl/cat-tmpl.html +++ b/tmpl/cat-tmpl.html @@ -81,7 +81,7 @@
🗺️ back to content menu From 3710b307dda24b6b6904555d1a13a2a614e1e585 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:49:59 +0100 Subject: [PATCH 083/467] all objects renamed to category --- main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/main.go b/main.go index 56ef932d..bba53058 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 c6266ba8c940172bd56edcd5a0ab40569514bd90 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:53:54 +0100 Subject: [PATCH 084/467] move extractCategories closer to extractCategory --- main.go | 56 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/main.go b/main.go index bba53058..0ccfb9b0 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 045416c17dfff9fc31e03046c6f9f04aa8d474e9 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 00:54:33 +0100 Subject: [PATCH 085/467] rename + change signature --- main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 0ccfb9b0..c4fedd95 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 f2fb99dcca9955320e0756646e95caca36b84551 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 01:14:43 +0100 Subject: [PATCH 086/467] mark help functions as helpers --- main_test.go | 50 ++++++++++++++++++++++++-------------- stale_repositories_test.go | 11 +++------ 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/main_test.go b/main_test.go index 561f1306..0b9e5623 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" } + + if err != nil { + 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) - if err != nil { - panic(err) - } + 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 55823aed..c690bdb2 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 4dd74a2b023ab22354bbf84a9ca461c4013c38de Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 01:26:37 +0100 Subject: [PATCH 087/467] use requireNoErr --- main_test.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/main_test.go b/main_test.go index 0b9e5623..4f26dcc2 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 8353845a8c90c5332b3b83593f45ef82bb9cd920 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:32:24 +0100 Subject: [PATCH 088/467] query -> doc --- main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index c4fedd95..60a382f2 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 8ec7df333ca9a7e308f9ff120b525f3f7c7e6126 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:33:11 +0100 Subject: [PATCH 089/467] join functions --- main_test.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/main_test.go b/main_test.go index 4f26dcc2..9876f700 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 d016486849dd369ab283b98cb1a86dc730f44f37 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:33:18 +0100 Subject: [PATCH 090/467] fixme --- stale_repositories_test.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stale_repositories_test.go b/stale_repositories_test.go index c690bdb2..5bb401bc 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 548d6ac0971b3e3d9b06b956348deb0af5f1433f Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:38:24 +0100 Subject: [PATCH 091/467] 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 5bb401bc..7f79d80c 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 4f9028fc96724a7d67e71c4430de7a45072d9b00 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 02:39:11 +0100 Subject: [PATCH 092/467] 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 7f79d80c..13dc8063 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 47f88e024cd1fcc5989cca5ed2c1aef3e898d162 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 03:55:29 +0100 Subject: [PATCH 093/467] 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 13dc8063..7a003f93 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 } - 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 + } + 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 } - 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 + } + + 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 44ea02d96573e8607244c7511874795a2077bc2a Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 03:57:37 +0100 Subject: [PATCH 094/467] 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 60a382f2..c02b308a 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 dd1e41c7..3d101eb1 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 270d554b95cd28080ab1160a658b3245a53dcb62 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 04:02:23 +0100 Subject: [PATCH 095/467] handle error in extractCategories --- main.go | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index c02b308a..8c094c71 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 5a7a10e3f460ebbc10dcc69a45b3577f38c8d9a2 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 04:10:05 +0100 Subject: [PATCH 096/467] 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 8c094c71..750990bc 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 7a003f93..ffac088a 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 105035402bd56bdafc2d5c64ed218722c383ea4a Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 04:11:17 +0100 Subject: [PATCH 097/467] 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 ffac088a..2445ec9f 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 07df6adfbc252bf6f9ba07ffae6461e0ce59ce6c Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 04:12:05 +0100 Subject: [PATCH 098/467] 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 2445ec9f..4f560ab2 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 1e6ba5dd3ebc383689e29675ff621d313a8fbf15 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:08:13 +0100 Subject: [PATCH 099/467] 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 4f560ab2..b9fe3f23 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 8bac0087c0bb39b8cbfb0e7d08629650a0ce135a Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:16:00 +0100 Subject: [PATCH 100/467] 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 b9fe3f23..35729827 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 c969fe29c40b3fb4be427e2b364d296782bd3cdf Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:16:18 +0100 Subject: [PATCH 101/467] 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 35729827..0caa5d3c 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 97074a851b580c59b8d835f6f069faacee85225c Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:17:09 +0100 Subject: [PATCH 102/467] 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 0caa5d3c..c534193c 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 360d054d03f609a7b5897ba337fa92030d124024 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:17:45 +0100 Subject: [PATCH 103/467] 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 c534193c..300e0c3a 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 c910a811d7a17fa4116802230f5d397b4814403f Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:19:11 +0100 Subject: [PATCH 104/467] 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 300e0c3a..a4788161 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 257a031f08130b25a3941447e166bc9f8b907b05 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 15 Feb 2023 18:22:36 +0100 Subject: [PATCH 105/467] 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 a4788161..bf54236d 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 0215981b89876b36b765d92d485206d3d95581dd Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 14:37:37 +0100 Subject: [PATCH 106/467] ++ --- main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 750990bc..de237dbe 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 a868ca431b30fc5781a504a097fd44d7d53a400c Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 14:37:55 +0100 Subject: [PATCH 107/467] parse url with url.Parse --- main.go | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index de237dbe..a3504c2d 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 9f9087ab498b190da41152ca8e67acdcf1274b44 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 19:39:45 +0100 Subject: [PATCH 108/467] 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 00000000..8a87f954 --- /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 6d6f8b31094520fd8ff2bfeff1cbca826b198836 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 19:54:34 +0100 Subject: [PATCH 109/467] 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 a3504c2d..5bf450c5 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 d1c859a5..00000000 --- a/tmpl/_redirects +++ /dev/null @@ -1,2 +0,0 @@ -/awesome-cloud-native/ / -/awesome-go-fork/ / From c9d9bfbf141d844daa677f0275354fba44d48328 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 19:44:07 +0100 Subject: [PATCH 110/467] rename fn --- main.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 5bf450c5..54e3389e 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 0fe344a1a9ca63718c69a931803e71ca61df7728 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Mon, 20 Feb 2023 21:24:47 +0100 Subject: [PATCH 111/467] 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 93865a2a..c43b1528 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 54e3389e..000e94ac 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 6de5e8b19fe75c676be57b6b208bc54bb017613e Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 00:26:55 +0100 Subject: [PATCH 112/467] 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 000e94ac..12c627d6 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 3d101eb1..00000000 --- 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 625df2fec3f05bb6294854ae0fb97b1a349983b4 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:14:29 +0100 Subject: [PATCH 113/467] 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 bf54236d..a83ca7d7 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 c5a97e6ec7692f69c756fbf1f3f9ad3711e49205 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:23:27 +0100 Subject: [PATCH 114/467] 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 12c627d6..5b98b8c5 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 f5f12988..e0e5011b 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 5d198100d10b640f287d7904ed20d69b9b41ca2b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:27:24 +0100 Subject: [PATCH 115/467] fix pkg comment --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 5b98b8c5..a588eb50 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 7713914b96eca8339ffdf30474bad382fc581151 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:34:02 +0100 Subject: [PATCH 116/467] 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 d5f247af..09787968 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 e3363794a1f4667f13b7940b0bd5f96693a7f6cc Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Feb 2023 01:40:39 +0100 Subject: [PATCH 117/467] 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 9876f700..3d59d22a 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 397db1349e1ae4d1e9588f67f2fa3353062d0e63 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Mar 2023 21:49:32 +0200 Subject: [PATCH 118/467] 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 15633f44..789dde84 100644 --- a/tmpl/category-index.tmpl.html +++ b/tmpl/category-index.tmpl.html @@ -82,7 +82,7 @@ @@ -111,4 +111,4 @@ - \ No newline at end of file + From 7aa3985741f8f3c9dd41be4e219588008d9d251b Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Mar 2023 21:53:35 +0200 Subject: [PATCH 119/467] 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 c92b7f19..53a1daa6 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 b6ee7931459919c0b4844c466bfa8439f929094d Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sun, 26 Mar 2023 22:09:20 +0200 Subject: [PATCH 120/467] 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 53a1daa6..4f3a4f15 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 34ffbf66d64db0ee42f6121e6b7edabc0771f3f4 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 3 Apr 2023 08:13:13 -0300 Subject: [PATCH 121/467] 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 789dde84..808f2b60 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 93240554f7d3a32c8b4afc4e8aca56ede8e1fa2d Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 3 Apr 2023 08:16:49 -0300 Subject: [PATCH 122/467] 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 cc888d97..280a25b2 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 8c0ebb96..bc867a2f 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 1519857fea6962603cfefcca1bb3e06ffec1ece1 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 3 Apr 2023 08:38:48 -0300 Subject: [PATCH 123/467] 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 e2b10441..f0a9e9ae 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 3c433b95d8736df32256c2c217cf07198a8b92e9 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Sat, 11 Mar 2023 12:57:56 +0100 Subject: [PATCH 124/467] added kazhuravlev/just --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 68bbf481..9d2060d5 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 23308179f34fdbe7d7a170bcc08eebc519b49742 Mon Sep 17 00:00:00 2001 From: Avelino Date: Wed, 5 Apr 2023 07:38:02 -0300 Subject: [PATCH 125/467] 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 f0a9e9ae..f50130ab 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 04d9f9d52ce80186a62ffa9bd1ef3078a4517ff8 Mon Sep 17 00:00:00 2001 From: Alexandru Cojocaru Date: Fri, 31 Mar 2023 21:42:02 +0200 Subject: [PATCH 126/467] @GoDiscussions --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9d2060d5..dd3b7e36 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 76791dd7cb97418fb5e15ef8027ce8461f43d27b Mon Sep 17 00:00:00 2001 From: Alexandru Cojocaru Date: Thu, 6 Apr 2023 23:03:49 +0200 Subject: [PATCH 127/467] Fix alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dd3b7e36..8a7daa27 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 e534e5a797857459e3e54b08af395ea1abc07072 Mon Sep 17 00:00:00 2001 From: Alexandru Cojocaru Date: Fri, 31 Mar 2023 21:46:34 +0200 Subject: [PATCH 128/467] Golang Weekly --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a7daa27..be276e74 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 ee499b5288c5ae03ce64d2e4f3f7a828f2abfe79 Mon Sep 17 00:00:00 2001 From: Alexandru Cojocaru Date: Thu, 6 Apr 2023 22:50:40 +0200 Subject: [PATCH 129/467] Fix alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be276e74..bf648195 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 013e1dda9024449e3398122769f12fd1525472d7 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 7 Apr 2023 14:10:48 -0300 Subject: [PATCH 130/467] 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 f50130ab..188dab6c 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 e13d7634fc30c65433f79da8033ec171d1ab9428 Mon Sep 17 00:00:00 2001 From: Oleksandr Redko Date: Fri, 14 Apr 2023 17:37:40 +0300 Subject: [PATCH 131/467] 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 bf648195..33c919ce 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 1004bf167706d00af6134c1747dfd9cfb7cd7603 Mon Sep 17 00:00:00 2001 From: Oleksandr Redko Date: Sun, 16 Apr 2023 08:46:17 +0300 Subject: [PATCH 132/467] 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 33c919ce..80795f3c 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 71121d84e915a306e95c672e784de7e49690323a Mon Sep 17 00:00:00 2001 From: vladopajic Date: Wed, 19 Apr 2023 07:09:24 +0200 Subject: [PATCH 133/467] 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 80795f3c..9ff0e923 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 3200b7d02287aec651320b29edd0bdfd8029bc8a Mon Sep 17 00:00:00 2001 From: Yiling-J Date: Wed, 19 Apr 2023 13:11:03 +0800 Subject: [PATCH 134/467] 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 9ff0e923..409a8445 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 7d368cca9098d6a2624d9b8a94548fe50b07a965 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 135/467] Add imcache (#4847) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 409a8445..1b96f961 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 573f0ea12efc60b52e55a46fc444698f8f807761 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 21 Apr 2023 23:57:45 +0530 Subject: [PATCH 136/467] add color-extractor (#4856) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1b96f961..7f02d78c 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 d0059eb3a4a4178d54bcf2807c186196709fad00 Mon Sep 17 00:00:00 2001 From: Ahmed Mohamed Date: Sat, 22 Apr 2023 06:27:11 +0200 Subject: [PATCH 137/467] 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 7f02d78c..b7182e6d 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 2e7534d845ed60900cdec59d4be1ba2f42d07872 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 138/467] 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 b7182e6d..a5cfd9c4 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 ce4051a73eb37c9be2e173cd52780329cc9a3a5f Mon Sep 17 00:00:00 2001 From: mstmdev Date: Sun, 23 Apr 2023 11:55:44 +0800 Subject: [PATCH 139/467] Add no-src/log (#4811) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a5cfd9c4..10959594 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 0219fc0949dea73961484f5ce4a1524e1572d26f Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Mon, 24 Apr 2023 09:51:10 +0200 Subject: [PATCH 140/467] 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 10959594..687e8e17 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 b3cae39b66b1ddadc19e53d0bbf1a2c0ff11493e Mon Sep 17 00:00:00 2001 From: Kamil Samigullin Date: Mon, 24 Apr 2023 17:08:30 +0300 Subject: [PATCH 141/467] 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 687e8e17..8b05e664 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 8e551d8f4b920600ded807545d2bcce4d1ee9f96 Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Thu, 27 Apr 2023 09:07:05 +0200 Subject: [PATCH 142/467] 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 8b05e664..bf551b7f 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 cefb247a2b4451ec8117ccb1a3f47c6c3aef250f Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 30 Apr 2023 15:38:01 +0300 Subject: [PATCH 143/467] add Textra (#4867) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bf551b7f..4c8904bf 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 1e14b3ad455764dfae4dc13f651cb58fdc35a4d8 Mon Sep 17 00:00:00 2001 From: mstmdev Date: Sun, 30 Apr 2023 20:40:27 +0800 Subject: [PATCH 144/467] Add no-src/nscache (#4866) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4c8904bf..f9369cfd 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 a204aa52640b7271518bcb57bef90200e72f106f Mon Sep 17 00:00:00 2001 From: Adrian Brad Date: Sun, 30 Apr 2023 16:15:39 +0300 Subject: [PATCH 145/467] add github.com/adrianbrad/queue (#4854) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f9369cfd..94683308 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 477fb595e834c10a28cb892bc81dd493d575018a Mon Sep 17 00:00:00 2001 From: Zino Kader Date: Sun, 30 Apr 2023 15:21:29 +0200 Subject: [PATCH 146/467] 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 94683308..b6592497 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 693f8622461ad6a196bd09b681a728ea0e9cee3d Mon Sep 17 00:00:00 2001 From: anqiansong Date: Mon, 1 May 2023 02:21:20 +0800 Subject: [PATCH 147/467] 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 b6592497..4454ec8a 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 2da472f659b4f1de1ee77718b70a677189c46996 Mon Sep 17 00:00:00 2001 From: Amit Davidson Date: Sun, 30 Apr 2023 21:25:35 +0300 Subject: [PATCH 148/467] Add LibraDB and Chronos (#4462) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 4454ec8a..d2f4b512 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 44664cc6297ecc2f58b2e35dc125dc1c2f868e21 Mon Sep 17 00:00:00 2001 From: Leo Kling Date: Sun, 30 Apr 2023 20:27:59 +0200 Subject: [PATCH 149/467] 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 d2f4b512..461914d4 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 4d448cbbfd4d9c35dca0b3dcb6e2e3182cfc61e7 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 150/467] add vacuum (#4496) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 461914d4..94a307de 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 299bc62ecb39290dff4a24a688a7d32a28bd5374 Mon Sep 17 00:00:00 2001 From: HANAI Tohru Date: Mon, 1 May 2023 11:06:06 +0900 Subject: [PATCH 151/467] add convergen (#4786) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 94a307de..9a57867b 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 cbc7e220d43c85c1fc86183f6c5175fc6833629f Mon Sep 17 00:00:00 2001 From: John Guo Date: Mon, 1 May 2023 10:35:58 +0800 Subject: [PATCH 152/467] 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 9a57867b..9863bd5d 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 ef6e4fdc39bf7021475f4f55a5a0f1dd72d6e7c4 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 153/467] add gws (#4694) Co-authored-by: lixizan --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9863bd5d..9b7c56e8 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 c3a3fe8140856d8f3bcfb4bebbb45c011a244734 Mon Sep 17 00:00:00 2001 From: Andrew Koltyakov Date: Mon, 1 May 2023 07:13:47 -0500 Subject: [PATCH 154/467] Gosip description fix (#4780) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b7c56e8..680880e5 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 f10c0bf38a0fa5d8673d3d2e51dc44de8cb52a2a Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 May 2023 17:51:47 -0300 Subject: [PATCH 155/467] 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 00000000..1e6d5851 --- /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 f807a57e841555cdc79aa7f76dcfc867a5eb6705 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 May 2023 17:52:37 -0300 Subject: [PATCH 156/467] 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 2dd422f1..00000000 --- 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 e93f430a062c47844acd4ec2350a983886ee2a30 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 May 2023 17:56:21 -0300 Subject: [PATCH 157/467] 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 33c6f51f..00000000 --- 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 00000000..69c606f1 --- /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 cb92c8e141cbc3b8e8a9b67925ccb4700a463863 Mon Sep 17 00:00:00 2001 From: Avelino Date: Mon, 1 May 2023 17:57:07 -0300 Subject: [PATCH 158/467] 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 7a547c6313be9ac86953719c841e99d5eb7faeca Mon Sep 17 00:00:00 2001 From: Pulkit Kathuria Date: Tue, 2 May 2023 15:14:01 +0900 Subject: [PATCH 159/467] add kevincobain2000/gobrew (#4691) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 680880e5..6897feac 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 3329bd2a11f7d5ad1d38efa800dcad3a63ca8367 Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Tue, 2 May 2023 08:18:23 +0200 Subject: [PATCH 160/467] 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 6897feac..8fa9c89d 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 86182cff86b42b9b1f68677a393ab9f141c0b54c Mon Sep 17 00:00:00 2001 From: Nimo Date: Tue, 2 May 2023 14:42:03 +0800 Subject: [PATCH 161/467] 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 8fa9c89d..1348c28b 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 f37683ded8324614393759fbfe2bce63768daff3 Mon Sep 17 00:00:00 2001 From: Siege Lion <1448189829@qq.com> Date: Tue, 2 May 2023 14:43:20 +0800 Subject: [PATCH 162/467] Add github.com/kubevela/kubevela (#4776) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1348c28b..0ce92147 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 7b7b4a52f8ece0403acb763c50c94cb9ad141637 Mon Sep 17 00:00:00 2001 From: Song Gao Date: Wed, 3 May 2023 04:13:16 +0800 Subject: [PATCH 163/467] 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 0ce92147..e81f930a 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 050df98335d8ae82bcc6aff322674277b6b9bd8a Mon Sep 17 00:00:00 2001 From: dongjiang Date: Fri, 5 May 2023 14:03:45 +0800 Subject: [PATCH 164/467] 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 e81f930a..20e2e85d 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 33967055c841a7d8c2abf61f0aa460d77107dd70 Mon Sep 17 00:00:00 2001 From: Paul Burlumi Date: Mon, 8 May 2023 05:39:52 +0100 Subject: [PATCH 165/467] 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 188dab6c..1e264e6a 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 49c212424e61ecefe1f9eed64cb01bdb470f15be Mon Sep 17 00:00:00 2001 From: Elliot Forbes Date: Wed, 10 May 2023 17:07:46 +0100 Subject: [PATCH 166/467] 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 20e2e85d..7ec141f5 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 50f9035e7985982bdf00df2bc70b3dd86cfeea56 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 167/467] 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 7ec141f5..4d254455 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 da23aab9f9c759b60e4ef80dc52196738bd637d7 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 19 May 2023 05:03:41 +0530 Subject: [PATCH 168/467] 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 4d254455..6094ad46 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 f89f268a2b378538e184194bad3b1eec0742c315 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 19 May 2023 05:07:32 +0530 Subject: [PATCH 169/467] 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 6094ad46..27d0b864 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 e0e09563bf0eb41a964074053afba9802f50c793 Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Fri, 19 May 2023 09:00:12 +0200 Subject: [PATCH 170/467] feat: adding samber/oops (#4890) --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 27d0b864..1fe0c377 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 9348163cc9ef5552a7122a472c4e7b12cf484a19 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 171/467] 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 1fe0c377..e748254e 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 db09a6a398eff7c124ef17ad4dea2500239474b5 Mon Sep 17 00:00:00 2001 From: Paul Burlumi Date: Wed, 17 May 2023 23:20:12 +0100 Subject: [PATCH 172/467] 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 1e264e6a..594fea0f 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 2cc47c9ad9f41a00031cc969ea3aa483d098383c Mon Sep 17 00:00:00 2001 From: Bart Date: Wed, 24 May 2023 12:27:23 +0200 Subject: [PATCH 173/467] add tf-profile (#4897) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e748254e..9e5750b0 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 0ecf419d76379ba105846d7bcaaf60c0cdb1a59c Mon Sep 17 00:00:00 2001 From: Nathan Osman Date: Wed, 24 May 2023 20:23:33 -0700 Subject: [PATCH 174/467] 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 9e5750b0..62c551fd 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 ccff99d919b7d713fea4947487766db8a160949b 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 175/467] 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 62c551fd..6dfcdf39 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 6b8976e9e5936b31d87f391268e765be43ec7f62 Mon Sep 17 00:00:00 2001 From: Andrew Chang Date: Fri, 26 May 2023 23:22:27 +0800 Subject: [PATCH 176/467] 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 6dfcdf39..a5909c90 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 f5bcb49abef0d15a92538c3fd13e771e159f2506 Mon Sep 17 00:00:00 2001 From: maxlandon Date: Sun, 8 Jan 2023 03:55:14 +0100 Subject: [PATCH 177/467] Add github.com/reeflective/readline --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a5909c90..581136ff 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 ff12929404c99fb70e09aef6504d1f27ad067d7d 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 178/467] Add Temporal (#4726) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 581136ff..46b5139d 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 f289d5573de9f4e8316cc8934e57f93062e5bb4c Mon Sep 17 00:00:00 2001 From: agitydev Date: Mon, 29 May 2023 09:08:48 -0400 Subject: [PATCH 179/467] Added Pnutmux to README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46b5139d..670a3b37 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 c223e5a61078bc1834d6962f8b895c47ccd03d9e Mon Sep 17 00:00:00 2001 From: agitydev Date: Mon, 29 May 2023 09:11:21 -0400 Subject: [PATCH 180/467] 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 670a3b37..46b5139d 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 56a00e0e0e06ce00dbaf2572217096661ed9e547 Mon Sep 17 00:00:00 2001 From: agitydev Date: Mon, 29 May 2023 09:19:03 -0400 Subject: [PATCH 181/467] Add Pnutmux to README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46b5139d..f4126bef 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 e24264c06b9a0f0aed83d93a82c0c45f8139985d Mon Sep 17 00:00:00 2001 From: Zeke Gabrielse Date: Wed, 7 Jun 2023 12:20:42 -0500 Subject: [PATCH 182/467] update keygen sponsor tagline --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f4126bef..969e633a 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 82cc3fc160ef10b8e7bd2d9aa3b39c2478d6a4bf Mon Sep 17 00:00:00 2001 From: Adam Bouqdib Date: Wed, 7 Jun 2023 23:02:04 +0100 Subject: [PATCH 183/467] Add Don to Web Frameworks (#4905) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 969e633a..0a84be9a 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 fccded0038c0dc1e437bb550a2c277052d34a47e Mon Sep 17 00:00:00 2001 From: Jakub Coufal Date: Sun, 18 Jun 2023 11:39:47 +0200 Subject: [PATCH 184/467] Add regatta to DB section (#4876) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0a84be9a..10fe062b 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 8763d8b5b3dcf9d082eb30487d11e151bae85edc Mon Sep 17 00:00:00 2001 From: Dao Cong Tien Date: Sat, 7 Jan 2023 15:08:11 +0700 Subject: [PATCH 185/467] Add gofn to #Utilities --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 10fe062b..90f39e6f 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 4d8748d7ffc71041777913e45173aad64a02f4e1 Mon Sep 17 00:00:00 2001 From: Yusef Mohamadi Date: Sat, 10 Jun 2023 00:32:31 +0200 Subject: [PATCH 186/467] 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 90f39e6f..65faf289 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 3d1bd6df06ee8ba13e9f4682bb86621fe188222a Mon Sep 17 00:00:00 2001 From: Yusef Mohamadi Date: Thu, 8 Jun 2023 18:18:39 +0200 Subject: [PATCH 187/467] 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 65faf289..968f0748 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 b60527d049f6dd132dd6cfe722b4b52372471437 Mon Sep 17 00:00:00 2001 From: mstmdev Date: Tue, 4 Jul 2023 21:28:29 +0800 Subject: [PATCH 188/467] 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 968f0748..78f4d578 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 2ffc070c05f513f03afb5d14f34cd926d186302f Mon Sep 17 00:00:00 2001 From: Ryan Field Date: Tue, 11 Jul 2023 19:02:19 +0200 Subject: [PATCH 189/467] Update goflow description (#4930) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78f4d578..9d685458 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 01d258bebc92b665909353a0126f683a2e139f26 Mon Sep 17 00:00:00 2001 From: Andy Nogueira Date: Mon, 17 Jul 2023 15:56:43 -0400 Subject: [PATCH 190/467] 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 9d685458..8898a324 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 cbc68595ebbfb082e9679b1e3a3c0f678038a802 Mon Sep 17 00:00:00 2001 From: Brandon Fulljames Date: Wed, 19 Jul 2023 23:41:12 +0900 Subject: [PATCH 191/467] Add bubble-table --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8898a324..f3b86d5c 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 28be36de7be1100bfd4ac3b4128c05e0c2393440 Mon Sep 17 00:00:00 2001 From: Brandon Fulljames Date: Wed, 19 Jul 2023 23:46:27 +0900 Subject: [PATCH 192/467] Fix alphabetical order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3b86d5c..690831d4 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 ad7785bad1b790eb3dabf0f0409a3adee501edf9 Mon Sep 17 00:00:00 2001 From: awterman Date: Mon, 17 Jul 2023 21:29:31 +0800 Subject: [PATCH 193/467] Add monkey --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 690831d4..b7b62c62 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 445af73755ef98ddfbd0ae3b6a23ea5025bc75c2 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 194/467] Added grapher to the Query Language section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b7b62c62..99dc5b2d 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 73a19be374091a08d25053f188591361972f661a Mon Sep 17 00:00:00 2001 From: Carl Johnson Date: Thu, 20 Jul 2023 21:19:33 -0400 Subject: [PATCH 195/467] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 99dc5b2d..6cd705da 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 88d2db344d3628c3d67227e113dc3b83a512eeb7 Mon Sep 17 00:00:00 2001 From: Alfat Saputra Harun Date: Tue, 25 Jul 2023 15:15:47 +0800 Subject: [PATCH 196/467] 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 6cd705da..f7ca9581 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 8c3d9ea1655f1737379ca4ae7064f0517b74a531 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 197/467] 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 f7ca9581..d94b6d41 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 ba213a93de7f6027252966f4438fde049891ab91 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 1 Aug 2023 07:51:04 +0530 Subject: [PATCH 198/467] bubble-table link fix (#4954) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d94b6d41..e361a5e4 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 16118c108f4c5836630ad836045cc8221d72e66b Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 1 Aug 2023 04:44:30 +0200 Subject: [PATCH 199/467] Added GoNB to README.md (#4952) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e361a5e4..d3a03033 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 4e482249befbe2ac22c6f9c91420a47156de0dfb 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 200/467] 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 d3a03033..31fd4d81 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 e4d782899c50059b5d23e17bd8e1b0f6b56e9ee3 Mon Sep 17 00:00:00 2001 From: Avelino Date: Fri, 4 Aug 2023 17:05:02 -0300 Subject: [PATCH 201/467] 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 594fea0f..ffdd9f3e 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 5f9f192e1615172b25421ae246bf1053617ea4b9 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 202/467] Add event to networking (#4968) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 31fd4d81..d50f91e2 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 22c7595b8f9102de40e4a4922be86765a9547538 Mon Sep 17 00:00:00 2001 From: Tom Godkin Date: Tue, 15 Aug 2023 19:07:23 +0100 Subject: [PATCH 203/467] 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 72e891bf..12487a1c 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 8f4c258c4068356a0a0a6ec029e28150e3f741a1 Mon Sep 17 00:00:00 2001 From: Tom Godkin Date: Tue, 15 Aug 2023 19:09:38 +0100 Subject: [PATCH 204/467] Add go-functional to list (#4974) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d50f91e2..67cee199 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 779b19dd47cbf07334ec564b67ca3ec0421cdedd Mon Sep 17 00:00:00 2001 From: Anthony HAMON Date: Thu, 17 Aug 2023 20:39:36 +0200 Subject: [PATCH 205/467] add antham/yogo (#4978) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 67cee199..2ff1e43a 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 50904931ae8bea5eda2b7c3938b9e0a9ae2eac29 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Fri, 18 Aug 2023 12:50:58 +0530 Subject: [PATCH 206/467] 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 2ff1e43a..29b4e471 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 7afbb892f7c5c06ad342f2bc4d0901d43b652c96 Mon Sep 17 00:00:00 2001 From: piglig Date: Fri, 18 Aug 2023 15:32:20 +0800 Subject: [PATCH 207/467] 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 29b4e471..2e03f475 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 f0d9264d098b2a46d243af1869b5c344672b997e Mon Sep 17 00:00:00 2001 From: Jacky Date: Wed, 23 Aug 2023 09:56:47 +0800 Subject: [PATCH 208/467] 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 2e03f475..b5d999e5 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 d655f7fa3cc72699caf95ac3b9f6ca49c1847bde Mon Sep 17 00:00:00 2001 From: eapenkin Date: Thu, 24 Aug 2023 05:53:32 +0400 Subject: [PATCH 209/467] Add decimal to Financial (#4963) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b5d999e5..ddc74788 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 aff2a7a98b49a329a75b0e620878dc3aee9726cb Mon Sep 17 00:00:00 2001 From: eapenkin Date: Thu, 24 Aug 2023 05:54:09 +0400 Subject: [PATCH 210/467] Add money to Financial (#4964) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddc74788..bb5a332d 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 96cddffa6d0086eb0a3a91c61c1e60e3c7867fc6 Mon Sep 17 00:00:00 2001 From: Jim Date: Thu, 24 Aug 2023 04:01:42 -0400 Subject: [PATCH 211/467] add mql (#4985) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bb5a332d..e1a54ac6 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 3b21ef0eb9ec3c1e51361b7d7ebcb86f2319caec Mon Sep 17 00:00:00 2001 From: Phakorn Kiong Date: Sat, 26 Aug 2023 17:35:36 +0800 Subject: [PATCH 212/467] Add go-pattern-match (#4983) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1a54ac6..27a13b1a 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 e6d62b0ff32583ad1c6094a55dd4b2db3c6f1b5b Mon Sep 17 00:00:00 2001 From: Weston Schmidt Date: Mon, 28 Aug 2023 00:33:04 -0700 Subject: [PATCH 213/467] 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 27a13b1a..468bc2ed 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 12d40a2d4c2ae655363da2cd46fecb391eec5d78 Mon Sep 17 00:00:00 2001 From: Rob Reid Date: Mon, 28 Aug 2023 08:41:39 +0100 Subject: [PATCH 214/467] 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 468bc2ed..7fbcb60a 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 c3643eb9da5c673101f8fe15a6deb40bfc4a1c85 Mon Sep 17 00:00:00 2001 From: Jim Date: Sun, 3 Sep 2023 03:29:14 -0400 Subject: [PATCH 215/467] add go-dbw (#4987) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7fbcb60a..6dada218 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 f2385e94529b0aa605b4f146fc1ec6faca1e4f43 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 216/467] add hotcoal (#4979) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6dada218..80d7492e 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 be2f6195b447533b5dbb7f465ef716a19a6af2de Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 12 Sep 2023 16:13:04 +0530 Subject: [PATCH 217/467] add nunu (#5004) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 80d7492e..9bbc0fa1 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 134de1429549a0bc15f8dd3f23300bb3e34620ab Mon Sep 17 00:00:00 2001 From: stone1100 Date: Fri, 15 Sep 2023 12:27:31 +0800 Subject: [PATCH 218/467] add LinDB to database (#5008) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9bbc0fa1..8a5d831c 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 5af740a3702f74b084e01a73aa74c4c3f0f0ebce Mon Sep 17 00:00:00 2001 From: Pavel Patrin Date: Wed, 20 Sep 2023 12:50:09 +0400 Subject: [PATCH 219/467] Add gontainer (#5010) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a5d831c..45d3e83a 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 cc5ee13cece9dd06f5b2d61c0e4d3be724748a15 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 220/467] Add PipeCD (#4943) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 45d3e83a..d0366138 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 ae3087589beebb2bb22a3c467573c47fcfc5c6f0 Mon Sep 17 00:00:00 2001 From: septs Date: Sat, 23 Sep 2023 19:55:00 +0800 Subject: [PATCH 221/467] fix broken link (re2dfa) (#5015) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d0366138..7b63a1fe 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 9ffc3076a5252a373f05ecb98c30fc2a36648f37 Mon Sep 17 00:00:00 2001 From: jurjevic Date: Thu, 28 Sep 2023 17:26:45 +0200 Subject: [PATCH 222/467] 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 7b63a1fe..c8bf35bf 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 393a94ca788dfa4d0e71250adb9f81a722fdfc92 Mon Sep 17 00:00:00 2001 From: Jacob Marthaller Date: Sun, 1 Oct 2023 10:21:19 -0700 Subject: [PATCH 223/467] remove mob --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c8bf35bf..0c0a2bb0 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 df33d72d3ff754b07560d6cc53d4b3c371a9c58e Mon Sep 17 00:00:00 2001 From: Firmino Changani Date: Sat, 26 Nov 2022 13:57:18 +0000 Subject: [PATCH 224/467] remove the package resize under images --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0c0a2bb0..e8c4a2bf 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 c5cf54d464aec6e4f11f5a02f25a9bee5b501199 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 225/467] Add go-eventbus (#5007) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e8c4a2bf..166c7aaf 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 f10f09e7820b8d435ba9055d468e1d08bed4ca35 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 226/467] 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 166c7aaf..2c4a9e0a 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 8f0bce93bc274d171272a33fe63b5125b24e9f5c 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 227/467] 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 2c4a9e0a..d280f821 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 d6edb45909b1e4ae0ddada38df1bea339b860b0c Mon Sep 17 00:00:00 2001 From: Kuba Kaflik Date: Mon, 2 Oct 2023 23:16:04 +0200 Subject: [PATCH 228/467] clickhouse-go client (#4630) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d280f821..3ee85a92 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 f9172648f171cb23f837b659bd10878bd5b9f208 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 229/467] add iso9660 (#4400) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3ee85a92..9dcf4785 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 1f666661b641aebeaf00197f1ba68eab09bb2539 Mon Sep 17 00:00:00 2001 From: Mathias M Date: Mon, 2 Oct 2023 23:37:21 +0200 Subject: [PATCH 230/467] 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 9dcf4785..c1245b37 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 6e827118479d54226cc48afa5f3cb1cbdd7dbc89 Mon Sep 17 00:00:00 2001 From: Julian Minde Date: Tue, 3 Oct 2023 12:31:31 +0200 Subject: [PATCH 231/467] 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 c1245b37..c738b61f 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 be0bb72b25b116ffc6e6110634d743f1f64c97d5 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 232/467] 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 c738b61f..ca45be52 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 4c5954f70b145f112813571abce45a94c78d4e4b Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Wed, 4 Oct 2023 12:43:06 +0530 Subject: [PATCH 233/467] add upterm (#5030) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ca45be52..dc13d426 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 395e8489ab591eb0b9a5bf2ba1429b8c5230b02c Mon Sep 17 00:00:00 2001 From: Tomasz Piowczyk Date: Wed, 4 Oct 2023 16:38:44 +0200 Subject: [PATCH 234/467] 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 ffdd9f3e..ca216b70 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 7937b76b228f8804bdd8c1543bbd0f6a5800671e 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 235/467] Add energy (#5035) Add energy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dc13d426..78f0412d 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 45127e124bb04a13fc82972c0a9e69e65de05c19 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 236/467] 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 78f0412d..f340ca1d 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 f20bc0f7cd772cc0a5e19ecb854b3a08eb013178 Mon Sep 17 00:00:00 2001 From: Richard Wilkes Date: Sat, 7 Oct 2023 19:35:51 -0700 Subject: [PATCH 237/467] Unison (#5034) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f340ca1d..1ed6f3e6 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 a3ca1a98b0e95bf2d085caf14171c003b7f36e66 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 238/467] 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 1ed6f3e6..e4123d0f 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 b1303b77b3c993e437ae2eee6753d00faf11a990 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 239/467] add kind (#5043) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e4123d0f..5fb5b3f9 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 472a51d808663b0f64eca1751d32de24e74fb59f 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 240/467] 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 5fb5b3f9..8bc00646 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 9f8e4335c90969ede1bcf12398fe844206fa4940 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 241/467] add k3s (#5045) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8bc00646..39626310 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 1b3f085d38336c14f6585d710d525c4ea51d9587 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 242/467] add k3d (#5046) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 39626310..a8d77072 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 5825914ca1450231939c38239f59ea05c6bf76da Mon Sep 17 00:00:00 2001 From: F0rzend Date: Wed, 11 Oct 2023 05:41:04 +0300 Subject: [PATCH 243/467] 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 a8d77072..39f6c190 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 a9e3be840fa8765a970d007bbc96814a08bd55f2 Mon Sep 17 00:00:00 2001 From: Mitar Date: Tue, 10 Oct 2023 19:44:06 -0700 Subject: [PATCH 244/467] Removing github.com/pkg/errors (#5048) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 39f6c190..1056ec00 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 8bbe66186f79ed409f52d7d2c3274db80d4fc77d 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 245/467] 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 1056ec00..63d8324c 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 2f6c0d69864b43be691115081bc0b9919f261660 Mon Sep 17 00:00:00 2001 From: Hugo Andrade Date: Wed, 11 Oct 2023 00:18:02 -0300 Subject: [PATCH 246/467] 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 63d8324c..bf6bddcf 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 7f907f21c6426790a92ebea7596c85a3f5233b0e Mon Sep 17 00:00:00 2001 From: Murilo Santana Date: Wed, 11 Oct 2023 00:19:51 -0300 Subject: [PATCH 247/467] 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 bf6bddcf..e6e251a9 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 e4153ef6694eccf576cd4f3f56eb0e113b6ad111 Mon Sep 17 00:00:00 2001 From: Samir Kape Date: Wed, 11 Oct 2023 09:02:29 +0530 Subject: [PATCH 248/467] 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 e6e251a9..5bd2d82e 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 ed879d73be651769883acc4a9a171a9dbc4f0e91 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 249/467] 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 5bd2d82e..091c1b48 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 c7fdad2ec2cd07205ab6b70beabc5ae32cbb162d 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 250/467] 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 280a25b2..4b31cc6f 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 bc867a2f..8a1175be 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 4c3bdaa7366c3cfc4af9a4f2dc682c7635924fbf Mon Sep 17 00:00:00 2001 From: nkmr-jp Date: Thu, 12 Oct 2023 13:38:24 +0900 Subject: [PATCH 251/467] add zl (#5039) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 091c1b48..9de59b78 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 ca76c8a4ed9f1526e27151e794ddc71c03aee651 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 252/467] 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 9de59b78..9443ed98 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 b7e22580d273a6094102b58e169bad70787179dc Mon Sep 17 00:00:00 2001 From: Susmita Dey Date: Thu, 26 Oct 2023 13:57:19 +0530 Subject: [PATCH 253/467] 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 9443ed98..e7e91300 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 84950710464e42d3b942ce3c4cced10634381f56 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 254/467] 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 82534906..20e87577 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 1aa0738172be013ca498bfc70d458ec59611c861 Mon Sep 17 00:00:00 2001 From: Tim Middleton Date: Mon, 30 Oct 2023 15:48:51 +0800 Subject: [PATCH 255/467] Add coherence-go-client (#5083) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e7e91300..3c76d07b 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 d362ac626db66db7be1e918e58b35fc03e3b1f8f Mon Sep 17 00:00:00 2001 From: Mario Candela Date: Mon, 30 Oct 2023 11:54:10 +0100 Subject: [PATCH 256/467] add beelzebub (#5059) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3c76d07b..c27a41ce 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 8e5c9cbaa966efe99e4c9f70649869eacd368f8b Mon Sep 17 00:00:00 2001 From: James Blair Date: Tue, 31 Oct 2023 17:23:24 +1300 Subject: [PATCH 257/467] Fix repository url for etcd. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c27a41ce..ca6048e8 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 6c7021c279892a8d34f090a09f0dca502c469910 Mon Sep 17 00:00:00 2001 From: beawkiattisak Date: Fri, 20 Oct 2023 23:51:19 +0700 Subject: [PATCH 258/467] fix comment --- main.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index a588eb50..7ce78c8f 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 438cd059f91f784aa60b46ca6ef5bea0caa42f31 Mon Sep 17 00:00:00 2001 From: Onur Cinar Date: Wed, 21 Jun 2023 19:44:51 -0700 Subject: [PATCH 259/467] 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 ca6048e8..a10483c6 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 04f8a9f1207b0d516eeaf15032d52d6a9789c110 Mon Sep 17 00:00:00 2001 From: Anton Telyshev Date: Mon, 6 Nov 2023 21:07:40 +0200 Subject: [PATCH 260/467] Add testifylint (#5095) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a10483c6..b9077f50 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 c096dce768bb42dd10efac4afc697b2ca6e7b521 Mon Sep 17 00:00:00 2001 From: Anton Telyshev Date: Mon, 6 Nov 2023 21:08:08 +0200 Subject: [PATCH 261/467] Add golangci-lint (#5096) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b9077f50..00e460cf 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 d05860c57cb2222afffddcef8bcaee4e7d15f513 Mon Sep 17 00:00:00 2001 From: Anton Telyshev Date: Mon, 6 Nov 2023 21:08:23 +0200 Subject: [PATCH 262/467] 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 00e460cf..38d31a14 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 126e4b3109f383120ae49a662ecf3c7a817197cc Mon Sep 17 00:00:00 2001 From: Lucas Bremgartner Date: Mon, 6 Nov 2023 21:38:51 +0100 Subject: [PATCH 263/467] Add meetups in Berne and Zurich, Switzerland --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 38d31a14..ea003b93 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 e36203404ee0d7c227ece0b57451bcc4325f1870 Mon Sep 17 00:00:00 2001 From: Lucas Bremgartner Date: Mon, 6 Nov 2023 21:44:28 +0100 Subject: [PATCH 264/467] 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 ea003b93..83f8f176 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 d4df67a81b8ead1b90464f028d886016291d78cb Mon Sep 17 00:00:00 2001 From: Lucas Bremgartner Date: Mon, 6 Nov 2023 21:45:42 +0100 Subject: [PATCH 265/467] Fix order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 83f8f176..f58fc48b 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 03ced80e928605d8adc1705c6ab0663fd0d8c89c Mon Sep 17 00:00:00 2001 From: Valentine Date: Thu, 9 Nov 2023 17:03:58 +0000 Subject: [PATCH 266/467] 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 f58fc48b..b640a5ae 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 89f2a685b2f3b2c8bb87000a3ed3361de907c030 Mon Sep 17 00:00:00 2001 From: Emanuele Fumagalli Date: Thu, 9 Nov 2023 17:17:24 +0000 Subject: [PATCH 267/467] 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 b640a5ae..20e0e2a6 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 861aba983d8e340fc7785227d9df9973b3e9c388 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 268/467] CONTRIBUTING: how to become a proofreader --- CONTRIBUTING.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 26e2ce1e..2234cfe4 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 6bb983d2a60f273f77ad8df29a09f4845b653b62 Mon Sep 17 00:00:00 2001 From: Ian Flynn Date: Thu, 7 Dec 2023 03:39:21 -0500 Subject: [PATCH 269/467] add maddy (#5057) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 20e0e2a6..674b6e54 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 8692bc327a8f0810ee10caaa8b0f334cd0bc0669 Mon Sep 17 00:00:00 2001 From: Mitar Date: Thu, 7 Dec 2023 00:40:52 -0800 Subject: [PATCH 270/467] Add gitlab.com/tozd/go/errors. (#5049) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 674b6e54..c958f590 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 2740570e5265371832c8b81b2f14cdb20e3c4168 Mon Sep 17 00:00:00 2001 From: Alexei Shevchenko Date: Thu, 7 Dec 2023 11:55:55 +0300 Subject: [PATCH 271/467] 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 c958f590..6146634c 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 8e1a8080f429b3831bf774c82596f0f5e040a4a3 Mon Sep 17 00:00:00 2001 From: Arran Ubels Date: Thu, 7 Dec 2023 20:09:05 +1100 Subject: [PATCH 272/467] Goey added. (#4723) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6146634c..b6bb65bc 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 7b6bb42c8f55eea5f22934a520ca12e47d448142 Mon Sep 17 00:00:00 2001 From: Rasool Ziafaty Date: Thu, 7 Dec 2023 13:45:28 +0330 Subject: [PATCH 273/467] add gotiny (#4763) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b6bb65bc..89adf99a 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 6051ff629e41337a6f125fe2269fc0e99074d39c Mon Sep 17 00:00:00 2001 From: Jonathan VUILLEMIN Date: Fri, 8 Dec 2023 19:59:52 +0100 Subject: [PATCH 274/467] feat: added yai (#4929) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89adf99a..8b1e9c4f 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 768d09725525eea938814316c0f2db8d5b6ebe48 Mon Sep 17 00:00:00 2001 From: Kirill Date: Mon, 18 Dec 2023 10:44:19 +0400 Subject: [PATCH 275/467] Add envdoc (#5142) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8b1e9c4f..9c321814 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 e6e1db27376068409d70a644bdad0b7825c60c1b 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 276/467] Add GoFr --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c321814..0e895de5 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 5d166a5d42bc0f40ca97a65a608de6073c56821d Mon Sep 17 00:00:00 2001 From: Alex Bozhenko Date: Mon, 11 Dec 2023 16:40:15 -0800 Subject: [PATCH 277/467] 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 4b31cc6f..96056e72 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 8a1175be..17b016bd 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 e05ea4cec308418b98f0826a2be9e2cf5d1afbec Mon Sep 17 00:00:00 2001 From: Alex Bozhenko Date: Mon, 11 Dec 2023 16:56:29 -0800 Subject: [PATCH 278/467] 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 20e87577..d2e54c0d 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 c86b9e29b25029f486a07d101be88d505d128568 Mon Sep 17 00:00:00 2001 From: Travis Cline Date: Thu, 21 Dec 2023 18:22:54 -0800 Subject: [PATCH 279/467] 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 0e895de5..c04b9136 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 cc4d1fdda4697027599d1e02cdff00e77c940260 Mon Sep 17 00:00:00 2001 From: Marko Kungla Date: Fri, 22 Dec 2023 04:38:30 +0200 Subject: [PATCH 280/467] 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 c04b9136..e456a18b 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 b8661d3b4bfae34b26dbb2f80d4c3f75e7902947 Mon Sep 17 00:00:00 2001 From: mffap Date: Fri, 5 Jan 2024 12:38:43 +0200 Subject: [PATCH 281/467] add oidc (authentication & Oauth) (#5126) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e456a18b..e6a6c7bf 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 09dff4e9b02d099a3cee5a010928c0f733580d8a Mon Sep 17 00:00:00 2001 From: mffap Date: Fri, 5 Jan 2024 12:39:50 +0200 Subject: [PATCH 282/467] add passwap (security) (#5125) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e6a6c7bf..fe80dad1 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 cff66a6a2f9c5cc9723096feff7ebedfccbb9dc5 Mon Sep 17 00:00:00 2001 From: goodliu Date: Fri, 5 Jan 2024 18:56:10 +0800 Subject: [PATCH 283/467] 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 fe80dad1..5a2114dd 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 dd9e80443e509c783991c9c1863256996318f526 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 284/467] Update README.md (#4946) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a2114dd..de7601cf 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 4d656474cbc7507cfa25a97cedcdc6767a72ead9 Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Fri, 19 Jan 2024 07:42:22 -0800 Subject: [PATCH 285/467] 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 ca216b70..e5f3ac03 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 850d97fdbe2ed2f8c71622c42ca60f31fbfcd69c 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 286/467] 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 de7601cf..07513185 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 5ed4695674f17d1a4895352606321dd943f42e4b Mon Sep 17 00:00:00 2001 From: Udayan Joshi <14udayanjoshi@gmail.com> Date: Thu, 25 Jan 2024 14:35:33 -0800 Subject: [PATCH 287/467] remove incorrect link (#5178) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 07513185..7bc35f42 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 5e4982032139a1b6b18b797865b0000d66a3f7be Mon Sep 17 00:00:00 2001 From: Richard Carson Derr Date: Thu, 25 Jan 2024 17:38:50 -0500 Subject: [PATCH 288/467] add z5labs bedrock (#5180) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7bc35f42..2a0556ba 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 7da62eb2da67acf4b36530e373499b8d842c2171 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 289/467] 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 2a0556ba..dd5b4bab 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 b34766080122574940a46804ed4b6bb059b674ee Mon Sep 17 00:00:00 2001 From: zhuyasen Date: Fri, 26 Jan 2024 06:53:09 +0800 Subject: [PATCH 290/467] add sponge (#5166) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dd5b4bab..92619ba7 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 b6e5a874ffe090331a78d57e3ae5e60ee32455ab Mon Sep 17 00:00:00 2001 From: Nikita Date: Sat, 27 Jan 2024 22:35:37 +0400 Subject: [PATCH 291/467] 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 92619ba7..b03fec4b 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 dc41c2c9f0e12f5c61cb3624895431eb2c311b81 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 292/467] Added transformimgs to images section (#5154) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b03fec4b..a3447b96 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 c6c689f4cd63012c9f184047cfdd89b6d54d6b5b Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Sat, 27 Jan 2024 10:54:53 -0800 Subject: [PATCH 293/467] Add htree. (#5159) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3447b96..0c52d859 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 2e8f8032afabe224dc2d38d4ff8343f47d9699d2 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 294/467] Add go-freelru (#5160) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0c52d859..a5b8e7ca 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 f7f046f008ae973713655941a5fe27f035b3d37b Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Sat, 27 Jan 2024 15:21:30 -0800 Subject: [PATCH 295/467] 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 a5b8e7ca..a144afeb 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 0b106c7fd0ebf4bd160b12ad345a3d1527e4305f Mon Sep 17 00:00:00 2001 From: Benjamin Cane Date: Sat, 17 Feb 2024 11:24:24 -0700 Subject: [PATCH 296/467] Adding Tarmac (#5205) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a144afeb..0bd2bf7f 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 856c7898c712f49fe93bc28cb07823e44cf771df Mon Sep 17 00:00:00 2001 From: Sasha Savchuk Date: Sun, 18 Feb 2024 23:50:29 +0200 Subject: [PATCH 297/467] 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 0bd2bf7f..be534a5b 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 34760a069e3dd74b137eb8ff635ba604265429a1 Mon Sep 17 00:00:00 2001 From: Kuisong Tong Date: Sun, 18 Feb 2024 13:55:41 -0800 Subject: [PATCH 298/467] add konf (#5204) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index be534a5b..ec3f6601 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 44d009b3b10ba01c6e6b4b98589acd4556bc02d9 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 299/467] 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 ec3f6601..cc66153f 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 b03c30b3a3d6a3908bba076b72b648f92c37dbfd Mon Sep 17 00:00:00 2001 From: Marko Kungla Date: Sun, 18 Feb 2024 23:58:37 +0200 Subject: [PATCH 300/467] 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 cc66153f..8c590c17 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 88625a5e595d268a8c18d51bce990cc1ecc2a5db 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 301/467] 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 8c590c17..e6378a33 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 faec9bf1b927e61bc890a62906a63311d5d6869c 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 302/467] 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 e6378a33..c83944dd 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 e2b43863a855f4a22ddb60078c3665751f2f0e0f Mon Sep 17 00:00:00 2001 From: Jonathan VUILLEMIN Date: Sun, 18 Feb 2024 23:21:41 +0100 Subject: [PATCH 303/467] Add Yokai (#5194) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c83944dd..74e45076 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 56bf1bcab78801eb923732480c3188c8119f2cb0 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 304/467] Add gob (#5181) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74e45076..f993149d 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 77ed658d1122bc789d94490594ac87183f173ab5 Mon Sep 17 00:00:00 2001 From: Zhao vistart Date: Mon, 19 Feb 2024 06:35:49 +0800 Subject: [PATCH 305/467] Add `go-dag` (#5187) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f993149d..a970b574 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 5914331afa978580518d7d6e8711531899672628 Mon Sep 17 00:00:00 2001 From: fogfish Date: Mon, 19 Feb 2024 00:40:25 +0200 Subject: [PATCH 306/467] 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 a970b574..ed702dc7 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 50eef8c87de2a9eb36edf91806c29301461637fa Mon Sep 17 00:00:00 2001 From: Bob Glickstein Date: Sun, 18 Feb 2024 14:41:52 -0800 Subject: [PATCH 307/467] Add encid. (#5184) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed702dc7..a643723b 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 c7f4378372f7f049e74a3af9f834ea394a68c850 Mon Sep 17 00:00:00 2001 From: Igor Sokolenko Date: Mon, 19 Feb 2024 01:46:26 +0300 Subject: [PATCH 308/467] add gomemcached (#5182) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a643723b..4f1f38ab 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 e89ef7236d06d282d5b232e57a099d837393214b Mon Sep 17 00:00:00 2001 From: Thomas Poignant Date: Mon, 19 Feb 2024 15:44:15 +0100 Subject: [PATCH 309/467] Update README.md (#5209) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4f1f38ab..c82db610 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 e9bee2804a496bef20d1946f754a5178d4c7538c Mon Sep 17 00:00:00 2001 From: cosban Date: Sun, 25 Feb 2024 17:14:57 -0700 Subject: [PATCH 310/467] 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 c82db610..16ef72ad 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 a6c4ab48f339c7c1736d6a8ef76a89063ec4631b 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 311/467] Add go-words (#5141) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 16ef72ad..9c699ae9 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 1923cb3fd3cbb93271f5472e601bde986d49755d Mon Sep 17 00:00:00 2001 From: Aurelie Vache Date: Mon, 26 Feb 2024 02:02:18 +0100 Subject: [PATCH 312/467] 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 9c699ae9..ed2f48b3 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 9a4bd7267ca006637dba0ecf8087f5ff2b348f04 Mon Sep 17 00:00:00 2001 From: Deatil <2217957370@qq.com> Date: Mon, 26 Feb 2024 09:42:25 +0800 Subject: [PATCH 313/467] add go-datebin (#5163) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed2f48b3..0e65de6d 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 6f90be69d289ff34e1e9af77b797a9155f20b348 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 314/467] 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 0e65de6d..3f68ff04 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 c6f78b8408c4734a33ae80c9cf4eceed51368f2b Mon Sep 17 00:00:00 2001 From: Franco Liberali Date: Sun, 25 Feb 2024 22:54:07 -0300 Subject: [PATCH 315/467] add cql (#5150) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f68ff04..f0d8c345 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 57b2b24b82d819e401a9f903d4718ad8f4d905a7 Mon Sep 17 00:00:00 2001 From: Radosvet M Date: Mon, 26 Feb 2024 04:01:31 +0200 Subject: [PATCH 316/467] Add Gosemble (#5210) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0d8c345..ca09b4be 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 1b1fc0a4155ec68614b2af255fb35bd782317b30 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 317/467] 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 ca09b4be..a99004c1 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 db1853959838a21e886a9e0a7d91ce687cab2edb Mon Sep 17 00:00:00 2001 From: Aleksei Sviridkin <3811295@gmail.com> Date: Thu, 29 Feb 2024 08:03:35 +0400 Subject: [PATCH 318/467] remove go-astilectron coz depricated (#5221) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a99004c1..287a85f6 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 daa4ef4ecafef97e7cc5b7ee30a675d626c725ac 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 319/467] 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 287a85f6..a36609bb 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 548cea4161174baceff33142501fbfd494323dfd 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 320/467] Remove unmaintained "telemetry" projects (#5224) --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index a36609bb..02e00d31 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 91048a9b4f9b763812259b5c676dfd580b2902e8 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 321/467] 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 02e00d31..61f97c94 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 243700063595fc4058ae67136d69961e93f08d86 Mon Sep 17 00:00:00 2001 From: Hariharan Date: Mon, 4 Mar 2024 02:37:43 +0530 Subject: [PATCH 322/467] Add dot (#5137) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 61f97c94..98e881fa 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 4d0ad9277adc0804f4d24f72133b6cfc11537ce2 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Sun, 3 Mar 2024 14:14:14 -0700 Subject: [PATCH 323/467] 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 98e881fa..a1895cdb 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 c8eab5c9847e6747f083c819cc05096964cc8cd0 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 324/467] update description of goframe (#5230) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1895cdb..f2ec0d10 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 65c2687ed8bbe64f1bef514a3b9a1137ab3e6284 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 325/467] 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 f2ec0d10..1aa9f5d5 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 73af87e792df8f8ac8d80946933dc56dd37f2bea 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 326/467] 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 12487a1c..860db5d2 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 9fd3901e64f82986e92d7459538a58f74dcca944 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 327/467] 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 1aa9f5d5..fb9cbbbb 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 2afb9bccdd860598b434b529658969f52a032798 Mon Sep 17 00:00:00 2001 From: Maria Ines Parnisari Date: Sat, 9 Mar 2024 07:41:19 -0800 Subject: [PATCH 328/467] add openfga (#5223) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb9cbbbb..98298b50 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 2ff3d2be258cb671d1aecb9ae10a047f19b4f2fc Mon Sep 17 00:00:00 2001 From: naison <895703375@qq.com> Date: Sat, 9 Mar 2024 23:44:13 +0800 Subject: [PATCH 329/467] 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 98298b50..8c71a612 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 a86a4e753a0fdee9e4ac6fac3a453fa9ef75e942 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 330/467] 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 96056e72..ea59eae9 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 17b016bd..90f8bf8a 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 04b5016dd472772201b0835617eb041eef364829 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 331/467] Adding config-file-validator (#5079) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8c71a612..f4b108b7 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 de7e5063bd3259dfe16819c13d3d21ebe898f12b Mon Sep 17 00:00:00 2001 From: IP2Location Date: Fri, 15 Mar 2024 23:52:57 +0800 Subject: [PATCH 332/467] Added IP2Location.io Go SDK (#5170) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f4b108b7..6bb2767a 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 ef6a815a0ee6ec9bcd7aa3a5a255e71c369a655b Mon Sep 17 00:00:00 2001 From: Navid Yaghoobi Date: Sun, 17 Mar 2024 01:00:01 +1100 Subject: [PATCH 333/467] 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 6bb2767a..29f5c98a 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 cceeb9de4930cab957aaa9d3fc312b56fa0a3d58 Mon Sep 17 00:00:00 2001 From: Weetile Date: Wed, 20 Mar 2024 02:04:48 +0000 Subject: [PATCH 334/467] 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 29f5c98a..7dd52257 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 0afae4a359f21b640ceb21ff6db054e726ab247a Mon Sep 17 00:00:00 2001 From: Knox Lively Date: Thu, 21 Mar 2024 20:32:54 -0600 Subject: [PATCH 335/467] 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 7dd52257..152552d3 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 8fce499b7332fbcc07574dde0bbbae2e5bdff09a Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Tue, 26 Mar 2024 19:17:36 +0530 Subject: [PATCH 336/467] add natiu-mqtt (#5261) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 152552d3..8a702504 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 e3c909965af8b7821b8ba4511fa747becfed8601 Mon Sep 17 00:00:00 2001 From: xhd2015 Date: Tue, 2 Apr 2024 13:42:41 +0800 Subject: [PATCH 337/467] 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 8a702504..fa42abbc 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 f308d553ede6a844ac3ce82f86a1fce3c823a622 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 338/467] 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 a83ca7d7..20b013ff 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 803297ff30c4fd92355e4d4fcbb7918e994f5d2b Mon Sep 17 00:00:00 2001 From: Everett Pompeii Date: Thu, 4 Apr 2024 11:16:22 -0400 Subject: [PATCH 339/467] 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 fa42abbc..044b1708 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 0d8dd03381c5bc931d66e81ac2eccf0b11ef07c5 Mon Sep 17 00:00:00 2001 From: askeladdk Date: Tue, 16 Apr 2024 22:14:00 +0200 Subject: [PATCH 340/467] Add prattle (#5082) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 044b1708..d37192da 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 5d72e025ca8535fc134278db3db8a99bde60fe19 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 341/467] update README - meetups section (#5277) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d37192da..f538797e 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 97d2ebd60b2ee7d760cfce6f65fbd7d02bfdb215 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 342/467] 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 ea59eae9..9c0a0c9a 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 90f8bf8a..95538c17 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 6eeb782825c8cdbd10580001fa355467de4fdf28 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 343/467] fix typos (#5279) --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f538797e..8a00f216 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 ba96b2621cf20396c5e41173b5b29ade63bf23be Mon Sep 17 00:00:00 2001 From: Alessio Greggi Date: Tue, 23 Apr 2024 21:42:06 +0200 Subject: [PATCH 344/467] docs(networking): add fwdctl project (#5268) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a00f216..3b29e91e 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 8560b1c3e01fc17e577582802c773598b4246937 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Wed, 24 Apr 2024 04:47:44 +0530 Subject: [PATCH 345/467] remove outdated (#5285) --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 3b29e91e..0336bccc 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 18c06bce29392d446b0373d4b9f933419af51e15 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 346/467] Add `starlet` under `Embeddable Scripting Languages` (#5297) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0336bccc..2ea91e31 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 44a035f318efedb0ba883230ae7086c2d1f72789 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 347/467] add hvalid project (#5283) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2ea91e31..4b78299e 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 8d3e047f8c49a2f2dd02e3b02d81d0e2c86e3b6b Mon Sep 17 00:00:00 2001 From: utagawa kiki Date: Fri, 10 May 2024 01:28:06 +0900 Subject: [PATCH 348/467] 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 7ce78c8f..5d65e75c 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 15f3d045c06a0c0a6a0d32a0086f2b61635139ca 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 349/467] 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 4b78299e..76426d9a 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 cfb3a2d528830932cfd1daeb5a484a15a8eb811e Mon Sep 17 00:00:00 2001 From: Wojciech Kaczmarek Date: Sat, 11 May 2024 04:06:37 +0200 Subject: [PATCH 350/467] 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 76426d9a..7edfb178 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 8f6018faa86e3c3483e39cf0c98996f3d49052b2 Mon Sep 17 00:00:00 2001 From: Quentin Renard Date: Sat, 11 May 2024 04:08:17 +0200 Subject: [PATCH 351/467] Add go-astiav (#5115) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7edfb178..47fa0607 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 d5f9450a1d07e54589fd04cf9731be73f131497b 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 352/467] 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 47fa0607..bb4a0549 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 c7c7a1eb8ad6fd3c31a35a484f3cd861c5ff28c5 Mon Sep 17 00:00:00 2001 From: chai2010 Date: Sun, 19 May 2024 11:02:46 +0800 Subject: [PATCH 353/467] add wa language (#4517) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bb4a0549..67d3131e 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 667d0c5b8cf9bc0c0b38efe370291f828617e267 Mon Sep 17 00:00:00 2001 From: Adriano Sela Aviles Date: Sat, 18 May 2024 20:46:44 -0700 Subject: [PATCH 354/467] add multikey to security list (#4855) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 67d3131e..717a3cb0 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 b10141d396902d0d0c44b0eb93e80ad6f344a9fb 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 355/467] 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 717a3cb0..58b3ad9c 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 013ff3754933726a1ff1aa40c01ba7117b420df6 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 356/467] remove https://covergates.com/ (#5314) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 58b3ad9c..b8eb4877 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 7b4ab4631517a29e52412154c96091a4536411ff Mon Sep 17 00:00:00 2001 From: imalasong Date: Wed, 22 May 2024 03:02:55 +0800 Subject: [PATCH 357/467] add pebble (#5271) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b8eb4877..0dbf0766 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 40a37e08f4953c8acae8dcfbcd1fd22c12051e6d Mon Sep 17 00:00:00 2001 From: Walter Jenkins Date: Tue, 21 May 2024 14:03:10 -0500 Subject: [PATCH 358/467] 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 0dbf0766..f79ba1e0 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 10a9a9320995524e891075e45c1c6e5d444fe683 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 359/467] add disgo (#4633) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f79ba1e0..9ab36a8f 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 f8936ce8f3ed35b725f771f4a29ff8c9612dba26 Mon Sep 17 00:00:00 2001 From: Asep saepulloh Date: Thu, 23 May 2024 02:27:32 +0700 Subject: [PATCH 360/467] 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 9ab36a8f..467e9437 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 9aa11923ac0fa986d2ffce86f8877151f07a1a6b Mon Sep 17 00:00:00 2001 From: earayu Date: Thu, 23 May 2024 03:34:08 +0800 Subject: [PATCH 361/467] add wescale (#5006) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 467e9437..566ebca4 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 dea016498a463e03ab7bc232456ddac89688207d Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Thu, 23 May 2024 01:11:46 +0530 Subject: [PATCH 362/467] add kubeblocks (#5317) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 566ebca4..d706884e 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 aeb758e11ecafc2c8e41756944ce6010fb3cf043 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Thu, 23 May 2024 02:05:49 +0530 Subject: [PATCH 363/467] restructure testing category (#5318) --- README.md | 189 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 97 insertions(+), 92 deletions(-) diff --git a/README.md b/README.md index d706884e..ce2befeb 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 +### 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. +- [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 +### 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. +- [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. +## 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. +- [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. - - [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. +- [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. +### 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 48dd33dbbf77ae723b58bac88199c71421341f1f Mon Sep 17 00:00:00 2001 From: Benjamin Cane Date: Wed, 22 May 2024 13:41:23 -0700 Subject: [PATCH 364/467] 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 ce2befeb..ef425d41 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 eff96f1348c8a96b24e8dfc8d22e7cc095d9c574 Mon Sep 17 00:00:00 2001 From: Robert Lillack Date: Wed, 22 May 2024 22:43:58 +0200 Subject: [PATCH 365/467] Add Spot GUI toolkit (#5316) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef425d41..4ad86013 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 76ea1c48d12b8e9c09bfc2ce78f5e50b81c928ac 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 366/467] Add slogor: A colorful slog handler (#5270) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4ad86013..ac73ff92 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 feb0cd0b86c6735d459088a51e75ec7591b0ee2d Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Thu, 30 May 2024 18:55:50 +0530 Subject: [PATCH 367/467] move air category --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac73ff92..02cb5a68 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 6b1896e90222d236e082915a8d06781bfbb4cec1 Mon Sep 17 00:00:00 2001 From: Dmitriy Basenko Date: Thu, 30 May 2024 18:34:03 +0500 Subject: [PATCH 368/467] add go-cfg (#5242) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02cb5a68..d058ef31 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 2e17043da953bf2be6902a358be2203901dad3c7 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 369/467] 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 d058ef31..d1987e40 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 ddfe149304244bb3b79b7e6c59f8d27e08ded97c Mon Sep 17 00:00:00 2001 From: Nguyen Dang Quy Date: Fri, 31 May 2024 05:56:55 +0700 Subject: [PATCH 370/467] 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 d1987e40..d1b72e4c 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 713dc45fb8e0664de769db5b424d1a2253a6200c Mon Sep 17 00:00:00 2001 From: Amogh Desai Date: Fri, 31 May 2024 15:15:57 +0530 Subject: [PATCH 371/467] 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 d1b72e4c..0e99da78 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 e55454ac8a21a15cf33db062ee973cd5ab5c6a8f Mon Sep 17 00:00:00 2001 From: Bhanu Date: Sat, 1 Jun 2024 15:40:15 -0700 Subject: [PATCH 372/467] 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 0e99da78..a22f226e 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 c804cf3f06cff60cc8e6a9dba76498f5ef6df9f4 Mon Sep 17 00:00:00 2001 From: Riccardo Pinosio Date: Tue, 4 Jun 2024 04:15:40 +0200 Subject: [PATCH 373/467] Add knights-analytics/hugot (#5243) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a22f226e..1827cbe1 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 2f96d45089430735f7d6e26a5b99c591543dfb32 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 374/467] 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 1827cbe1..ad1ae8d3 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 3f1a0678f900a7ee08873e9b71b29e545c046ca6 Mon Sep 17 00:00:00 2001 From: Deatil <2217957370@qq.com> Date: Wed, 5 Jun 2024 10:13:24 +0800 Subject: [PATCH 375/467] add go-array (#5236) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad1ae8d3..52333858 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 5b94e4df2692c9f6942afc3bee299c4e2c7f3633 Mon Sep 17 00:00:00 2001 From: Steve Manuel Date: Wed, 5 Jun 2024 07:59:58 -0600 Subject: [PATCH 376/467] feat: add extism go-sdk (#5143) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52333858..89544aab 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 845cca26ef9c199adfc60cf4f048d10f3aa5be13 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 377/467] Add GoCfg (#5272) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89544aab..b2e02741 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 56b37d34c034bed2f7b95719affed2cd0f21b8a6 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 378/467] Adds greencoda/confiq (#5284) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b2e02741..b4f8ca59 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 7b5cf870732f8c80eba37cbe9be401da4d783e5e Mon Sep 17 00:00:00 2001 From: chai2010 Date: Wed, 5 Jun 2024 22:17:24 +0800 Subject: [PATCH 379/467] add KusionStack for DevOps Tools (#4511) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b4f8ca59..06c8d9a9 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 f8f0d03dd5307851a4da925af89b692cdbf111c8 Mon Sep 17 00:00:00 2001 From: Phani Rithvij Date: Wed, 5 Jun 2024 19:56:01 +0530 Subject: [PATCH 380/467] add gitcs Missed in #5207 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06c8d9a9..70f4b488 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 fc27679e8ba3401cb501187689d13c07753ed47d Mon Sep 17 00:00:00 2001 From: Daniel Gregoire Date: Thu, 6 Jun 2024 02:13:14 -0400 Subject: [PATCH 381/467] Add goal embeddable scripting language (#5307) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 70f4b488..c3e0d51a 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 7c3815b72fea8d075659096a47231c4edc9b3c35 Mon Sep 17 00:00:00 2001 From: Ngoc Phuong Date: Thu, 30 May 2024 22:42:14 +0700 Subject: [PATCH 382/467] 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 c3e0d51a..ffd34652 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 47b57efed53c1e2724c135a8d786a9e6a3c88b9e 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 383/467] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ffd34652..815e99aa 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 7516f43fcb176e84e7c915394b3b3da22358c1ee 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 384/467] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 815e99aa..d32e85ba 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 fc5201c41b765db57b071e35234dbdfd2943ee02 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 385/467] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d32e85ba..77058899 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 14d4f1c503b918bcbc3a5aaef45edcf82308869b 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 386/467] Add Gone (#5320) Co-authored-by: dapeng --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 77058899..e3514086 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 a08ad217cc553f8ae76d958a29a8ba326ba0fada Mon Sep 17 00:00:00 2001 From: Kelvin Mwinuka Date: Sun, 9 Jun 2024 19:16:17 +0800 Subject: [PATCH 387/467] Add EchoVault to Database, Caches --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e3514086..67fba922 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 f37a5ad2c621158f2dbbdb3ca27ca8d9b0ec98f1 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 388/467] fix:typo (#5335) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 67fba922..31d20d4e 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 fc9d4f1523fba8fdee5648ea5a0d0b2a5c7f8f56 Mon Sep 17 00:00:00 2001 From: Victor Conner Date: Tue, 11 Jun 2024 07:39:04 +0200 Subject: [PATCH 389/467] Add sturdyc --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 31d20d4e..0221e48a 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 0939d8b8ba4e84eb0d6449bce8bb5c47fdafa547 Mon Sep 17 00:00:00 2001 From: Victor Conner Date: Wed, 12 Jun 2024 20:42:07 +0200 Subject: [PATCH 390/467] Update the description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0221e48a..3ab96c73 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 af04111c73445d916d5d092bc306ff88a7cbf4ab Mon Sep 17 00:00:00 2001 From: Kyle Capehart Date: Mon, 24 Jun 2024 23:17:14 -0400 Subject: [PATCH 391/467] 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 3ab96c73..0d36a925 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 f5cdcad949d67770e6c9b9e28b8a070d6af351c4 Mon Sep 17 00:00:00 2001 From: Sam Lown Date: Mon, 24 Jun 2024 20:19:04 -0700 Subject: [PATCH 392/467] 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 0d36a925..027eed73 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 78f31eaaff895527f58abc720804a23232c4e52a Mon Sep 17 00:00:00 2001 From: James Pond Date: Tue, 25 Jun 2024 03:20:12 +0000 Subject: [PATCH 393/467] 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 027eed73..b5318963 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 c4c9c4980e999bf0e8315e5fc5d7bb176f322c5f Mon Sep 17 00:00:00 2001 From: Mohammad Date: Tue, 25 Jun 2024 12:21:20 +0900 Subject: [PATCH 394/467] add iCache (#4501) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b5318963..a0f5ee00 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 54b0b83cd25e68516f1984b239650c3b36b48a42 Mon Sep 17 00:00:00 2001 From: "Roman A. Grigorovich" Date: Tue, 25 Jun 2024 06:29:17 +0300 Subject: [PATCH 395/467] add bob in ORM section (#5248) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a0f5ee00..a619b2d1 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 785a9448d720622c2458a823f9c973f01128cab4 Mon Sep 17 00:00:00 2001 From: Jonathan Halterman Date: Mon, 24 Jun 2024 20:30:27 -0700 Subject: [PATCH 396/467] Add failsafe-go (#5245) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a619b2d1..cf33a022 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 953a8db12938f67b270d6a5166f9676b3f3a6bd1 Mon Sep 17 00:00:00 2001 From: Kenta Takeuchi Date: Wed, 26 Jun 2024 15:33:57 +0900 Subject: [PATCH 397/467] 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 cf33a022..cb7f161d 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 dcc5e1896883e22fa6b19039d6a67ba72fd07c6c Mon Sep 17 00:00:00 2001 From: Filippov Alex Date: Fri, 28 Jun 2024 14:28:43 +0530 Subject: [PATCH 398/467] 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 cb7f161d..0fa95e33 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 51550bd8093352f02481d9a1007b113838051a85 Mon Sep 17 00:00:00 2001 From: Chase Pierce Date: Wed, 17 Jul 2024 20:45:57 -0600 Subject: [PATCH 399/467] 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 0fa95e33..b3d12d50 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 3e4d82de66c58a49e72b4ac3d557610bbbe8e321 Mon Sep 17 00:00:00 2001 From: Nguyen Dang Quy Date: Thu, 18 Jul 2024 21:06:46 +0700 Subject: [PATCH 400/467] 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 b3d12d50..6568c4ac 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 24865574da032f0d086fc48619ba58e9259a7e2f Mon Sep 17 00:00:00 2001 From: taramk Date: Mon, 22 Jul 2024 12:21:36 -0700 Subject: [PATCH 401/467] 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 6568c4ac..98f32150 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 81659ec4ad17272804f251595d11736e5d31de6e Mon Sep 17 00:00:00 2001 From: Roman Sharkov Date: Mon, 22 Jul 2024 21:22:39 +0200 Subject: [PATCH 402/467] Add github.com/romshark/yamagiconf (#5357) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 98f32150..f6c41e4a 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 1a8bc2e598979b0b39bca212dfbbbad13e0d53f0 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 403/467] 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 f6c41e4a..36231b74 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 720a5283fb75e91cc925eade5a26fff04f8fa5b8 Mon Sep 17 00:00:00 2001 From: yassinebenaid Date: Tue, 23 Jul 2024 02:10:02 +0100 Subject: [PATCH 404/467] 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 36231b74..d603032e 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 c8a1e60ca8f95b3888e285032c2dc98e38e69052 Mon Sep 17 00:00:00 2001 From: Yusuf Can Bayrak Date: Thu, 25 Jul 2024 13:13:59 +0200 Subject: [PATCH 405/467] 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 d603032e..17c1594f 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 67b24533326bea45056b826b77a79c64749feb1a 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 406/467] 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 17c1594f..4cfe2b2d 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 ec5f54115d8a1124abbdcf5bf406721b305e0960 Mon Sep 17 00:00:00 2001 From: Chase Pierce Date: Sun, 28 Jul 2024 23:15:15 -0600 Subject: [PATCH 407/467] 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 4cfe2b2d..0f1087d5 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 ad379b345c15020743ed7a1e0e8b681168cc3df3 Mon Sep 17 00:00:00 2001 From: Mehdi Hadeli Date: Mon, 29 Jul 2024 09:19:22 +0330 Subject: [PATCH 408/467] Add Go-MediatR (#4625) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0f1087d5..997bca99 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 a027573a7d53372326ebf1b3848b23cd17cf5ec8 Mon Sep 17 00:00:00 2001 From: naison <895703375@qq.com> Date: Mon, 29 Jul 2024 18:17:22 +0800 Subject: [PATCH 409/467] Update README.md (#5369) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 997bca99..08e2d31d 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 239cbd459096af0bf69588fbbf430e86256e183d Mon Sep 17 00:00:00 2001 From: Sudhanshu Mohan Date: Sat, 3 Aug 2024 17:24:41 +0530 Subject: [PATCH 410/467] add net in networking (#4472) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 08e2d31d..73df1e32 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 5f79c1ce5797a1f9c0d4343599d582e170921cc3 Mon Sep 17 00:00:00 2001 From: tiendc Date: Sat, 3 Aug 2024 19:40:19 +0700 Subject: [PATCH 411/467] Add go-csvlib (#5354) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 73df1e32..802d013c 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 b971941897339afedeabf35b93b917b552698745 Mon Sep 17 00:00:00 2001 From: yassinebenaid Date: Sun, 4 Aug 2024 16:49:12 +0100 Subject: [PATCH 412/467] 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 d2e54c0d..97258613 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 4f3a4f15..e69802c6 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 09787968..0ac9bd45 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 e76e84d54dd169de7f672b5d470cd1115b345a4e Mon Sep 17 00:00:00 2001 From: tiendc Date: Fri, 9 Aug 2024 10:20:43 +0700 Subject: [PATCH 413/467] Add go-validator (#5356) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 802d013c..72cb875f 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 9edc426690bce3cf26914bb3638385fa4c6ef409 Mon Sep 17 00:00:00 2001 From: Andy <4ndygeiss@gmail.com> Date: Fri, 9 Aug 2024 05:26:29 +0200 Subject: [PATCH 414/467] feat: add ecs (#5375) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 72cb875f..c4ff2d3b 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 fa355d5ef55b7b67ee5aa0a0e79e2ab2a39d719b Mon Sep 17 00:00:00 2001 From: presbrey Date: Mon, 12 Aug 2024 05:05:58 -0400 Subject: [PATCH 415/467] Update README.md (#5377) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c4ff2d3b..46348ee8 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 04f2616c0e8ba3887f21a38b5f20380188acc7f9 Mon Sep 17 00:00:00 2001 From: Alexei Shevchenko Date: Mon, 12 Aug 2024 13:20:14 +0300 Subject: [PATCH 416/467] add grid (#4613) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46348ee8..87e86526 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 1cc8cc2d3baa4c995e676670d76fb16840c1b2e0 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 417/467] Added Last Commit Badge (#4569) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87e86526..20095faa 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 3cffb5a20b392f8cfe08ef4b48fab518448e0201 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 418/467] 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 20095faa..1419d51a 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 abe11638908bfe3e88d997b3246c9e9ea72bfd2f Mon Sep 17 00:00:00 2001 From: Lz Date: Mon, 12 Aug 2024 21:46:39 +0800 Subject: [PATCH 419/467] fix(goroutines): added yaitoo/async (#5240) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1419d51a..70150bcc 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 1b5ce0c762725feced7393aebdd21d78238da0b0 Mon Sep 17 00:00:00 2001 From: Kai O'Reilly Date: Mon, 12 Aug 2024 06:48:46 -0700 Subject: [PATCH 420/467] add Cogent Core (#5367) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 70150bcc..8412b53d 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 a96f02ee11de8ae63b5b071f976c8fb07e5124ca Mon Sep 17 00:00:00 2001 From: yassinebenaid Date: Mon, 12 Aug 2024 15:43:53 +0100 Subject: [PATCH 421/467] 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 8412b53d..12e50682 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 7187cbd9377683aaa8a81b79c9e080360e0dedfc Mon Sep 17 00:00:00 2001 From: Artemiy Ryabinkov Date: Mon, 12 Aug 2024 16:32:38 +0100 Subject: [PATCH 422/467] Add rabbitroutine (#5226) * Add rabbitroutine * Sort lines --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 12e50682..81eeb9d2 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 0a4b750166503d01c1cef13911bdcf641a558f86 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 423/467] chore: add go-querystring (#5056) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 81eeb9d2..74892df0 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 940b87b3914a6a58883f855df0300151c82a02a8 Mon Sep 17 00:00:00 2001 From: "Peter M. Stahl" Date: Mon, 12 Aug 2024 18:51:54 +0200 Subject: [PATCH 424/467] Add lingua-go library (#4673) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74892df0..2a080717 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 ed942e45c155d706a920324c5ec3562bb745b453 Mon Sep 17 00:00:00 2001 From: arunsupe Date: Mon, 12 Aug 2024 21:28:37 -0500 Subject: [PATCH 425/467] 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 2a080717..76424a88 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 522606441a575453dab78867ac3a8ed4a68a009d Mon Sep 17 00:00:00 2001 From: Simon Waldherr Date: Tue, 13 Aug 2024 04:30:40 +0200 Subject: [PATCH 426/467] add github.com/SimonWaldherr/golang-benchmarks (#4491) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 76424a88..3f5a1037 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 e4061e349523e1a944e01e839a9cf69f0ee06c96 Mon Sep 17 00:00:00 2001 From: Viktor Nikolaiev Date: Tue, 13 Aug 2024 05:43:01 +0300 Subject: [PATCH 427/467] 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 3f5a1037..a29c912e 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 1b9f64a27ce24a9588009cdfc78b0de94fa55bf0 Mon Sep 17 00:00:00 2001 From: Timofey Koolin Date: Tue, 13 Aug 2024 11:16:20 +0300 Subject: [PATCH 428/467] add https://github.com/rekby/fastuuid (#4774) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a29c912e..bee5c1d8 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 c4ff83e60324b7a7d474f74abd6b43d16f3d4b1c Mon Sep 17 00:00:00 2001 From: Herman Schaaf Date: Tue, 13 Aug 2024 09:28:19 +0100 Subject: [PATCH 429/467] 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 bee5c1d8..c5a2ca88 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 bce9bfdc84bf091724ff4cb350e2174c16027a6d Mon Sep 17 00:00:00 2001 From: Francisco Daines Date: Tue, 13 Aug 2024 05:02:17 -0400 Subject: [PATCH 430/467] 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 c5a2ca88..a200dc76 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 806ef2c030e530509bd4afe2311f9f840719343e Mon Sep 17 00:00:00 2001 From: Yongli Chen Date: Wed, 14 Aug 2024 00:13:37 +0800 Subject: [PATCH 431/467] add shifu to ioT category (#4590) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a200dc76..9c797a0a 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 ccd72a82d72cec2bcda1dfcba70aa01510f47013 Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 15 Aug 2024 01:55:38 -0400 Subject: [PATCH 432/467] remove wesovilabs/beyond (#5381) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9c797a0a..5780f607 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 625c5c97c5fd59c5ae70c399e39c5ca5b3bdc1f4 Mon Sep 17 00:00:00 2001 From: Vyacheslav Anzhiganov Date: Thu, 15 Aug 2024 11:25:20 +0300 Subject: [PATCH 433/467] 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 5780f607..96f0655b 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 58575272bb9d00a1536020d496f411c420c02305 Mon Sep 17 00:00:00 2001 From: Herald Yu Date: Thu, 15 Aug 2024 18:33:19 +0800 Subject: [PATCH 434/467] 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 96f0655b..82ca9a9c 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 89e0a2ed7c19511eeac71522c74aae04dcd4857a Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 15 Aug 2024 11:19:36 -0400 Subject: [PATCH 435/467] 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 82ca9a9c..9582e56a 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 a9954113190d31c080e001a142cab44d7d7253ad Mon Sep 17 00:00:00 2001 From: Yasar Alev Date: Thu, 15 Aug 2024 18:26:41 +0300 Subject: [PATCH 436/467] 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 9582e56a..115be132 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 72695a5ef15766e4955c10776df74b8759e1fac0 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 437/467] Add Mochi MQTT (#4648) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 115be132..ade00339 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 9e5798deb22dc44315580020af0edfb6fbbdddec 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 438/467] Add sonic library for JSON manipulation (#4572) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ade00339..af5ed048 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 cc814878fbdc1380cf79966572795fd29ab90d89 Mon Sep 17 00:00:00 2001 From: Atomys Date: Fri, 16 Aug 2024 18:11:59 +0200 Subject: [PATCH 439/467] 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 af5ed048..59760c17 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 cff1ae150f2c798cfd11b22bf86e1a3f66703117 Mon Sep 17 00:00:00 2001 From: Anatol Pomozov Date: Sat, 17 Aug 2024 04:17:15 -0700 Subject: [PATCH 440/467] add luks.go (#4718) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59760c17..c09c7601 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 f9ff1cd6bf565f1c87859d670265829e6036fc5b Mon Sep 17 00:00:00 2001 From: Atomys Date: Sun, 18 Aug 2024 04:49:06 +0200 Subject: [PATCH 441/467] 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 c09c7601..706facca 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 9a45ed0e3c1896ef3cab3e58f1e9d7569f83e612 Mon Sep 17 00:00:00 2001 From: Abe Nonym Date: Sun, 18 Aug 2024 04:51:38 +0200 Subject: [PATCH 442/467] Added dft (#5374) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 706facca..0e2be311 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 f40772faeb0db40df9aefe1718c6030278a368ef Mon Sep 17 00:00:00 2001 From: Mohamad Fadhil Date: Wed, 21 Aug 2024 15:06:05 +0800 Subject: [PATCH 443/467] 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 0e2be311..77454be1 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 5085d9e44a89a670e6379a4cc3a7a9d78dbbe66e Mon Sep 17 00:00:00 2001 From: Mitar Date: Wed, 21 Aug 2024 09:08:34 +0200 Subject: [PATCH 444/467] 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 77454be1..45e65c5d 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 82ad9ab38fcabcad3f3f49312a7e6c51728ba60b Mon Sep 17 00:00:00 2001 From: Mitar Date: Wed, 21 Aug 2024 10:41:08 +0200 Subject: [PATCH 445/467] Link fix (#5390) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 45e65c5d..d8af2d35 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 5f2aec0109ecfd68c50dad9bf29e0c490fcb49f5 Mon Sep 17 00:00:00 2001 From: Feego Date: Thu, 22 Aug 2024 10:02:33 +0800 Subject: [PATCH 446/467] Add goenum (#5138) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d8af2d35..10a52890 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 31a672d535fecda9e7e99b76427e422f0ba2aebe Mon Sep 17 00:00:00 2001 From: invzhi Date: Fri, 23 Aug 2024 23:07:10 +0800 Subject: [PATCH 447/467] Remove https://github.com/kirillDanshin/nulltime (#5391) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 10a52890..84bbc960 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 138c67b67b8ad5101b8d7651e61d07f43c5b82b2 Mon Sep 17 00:00:00 2001 From: presbrey Date: Tue, 27 Aug 2024 07:49:50 -0400 Subject: [PATCH 448/467] Update README.md (#5392) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84bbc960..65530d88 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 3f2b36214cc60f3a2e559a688d863afc2e450848 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 449/467] Sort cli homonymes (#5393) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 65530d88..b752391c 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 1e389b787fab31519f2679d80d132ab24a6b0260 Mon Sep 17 00:00:00 2001 From: Davide Oggioni Date: Tue, 27 Aug 2024 17:26:40 +0200 Subject: [PATCH 450/467] 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 b752391c..6f896884 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 eafd57e3ea50348815c11e029be6b8ee8d76345a Mon Sep 17 00:00:00 2001 From: Pathawee Ngoenthai Date: Thu, 29 Aug 2024 19:52:59 +0700 Subject: [PATCH 451/467] 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 6f896884..d1239ced 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 462ff1d84cf74ba5b2d981134e7dfaa538d95155 Mon Sep 17 00:00:00 2001 From: Adrian Shum Date: Fri, 30 Aug 2024 19:39:34 +0800 Subject: [PATCH 452/467] 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 d1239ced..8c1dbd3e 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 c2e492f31c562d5f47a66aec361835b9e3ca3c9e Mon Sep 17 00:00:00 2001 From: charles Date: Fri, 30 Aug 2024 16:08:55 +0300 Subject: [PATCH 453/467] 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 8c1dbd3e..e9e3ba64 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 a62c0712e27883e738f69ac6683d1af53ad483a5 Mon Sep 17 00:00:00 2001 From: Jason Lyu Date: Fri, 30 Aug 2024 22:20:15 +0800 Subject: [PATCH 454/467] 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 e9e3ba64..ad0b7e1d 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 cdce2c4a2079b81e5d68e2cffe5c3a15282ebd4d Mon Sep 17 00:00:00 2001 From: Fatih Baltaci Date: Mon, 2 Sep 2024 14:35:05 +0300 Subject: [PATCH 455/467] 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 ad0b7e1d..a72bc1e5 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 9d17e9b8d86ae3e17579e065ae9db30c6cbf89ce Mon Sep 17 00:00:00 2001 From: Jan Date: Mon, 2 Sep 2024 15:27:46 +0200 Subject: [PATCH 456/467] 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 a72bc1e5..321c86c4 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 9eec7c7dba6fda8304d888d259a07e88fdacbc20 Mon Sep 17 00:00:00 2001 From: Mostafa Moradian Date: Tue, 3 Sep 2024 12:31:01 +0330 Subject: [PATCH 457/467] Add GatewayD (#5315) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 321c86c4..7af49f70 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 d740c09e38b8223a9b75b755c8dc80efffec43d4 Mon Sep 17 00:00:00 2001 From: Simon Waldherr Date: Tue, 3 Sep 2024 16:42:29 +0200 Subject: [PATCH 458/467] add SimonWaldherr/golang-examples (#4494) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7af49f70..4a0ef956 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 6f37ff32f4ec50e4555c4e1e39c0e8f60446c31a Mon Sep 17 00:00:00 2001 From: Yassine Benaid Date: Tue, 3 Sep 2024 17:20:46 +0100 Subject: [PATCH 459/467] Update README.md (#5398) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a0ef956..d9f689ff 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 5fb1abd5abc19c4eecde7417eedb1bff1b6f7d08 Mon Sep 17 00:00:00 2001 From: Panji Ahmad Nurhusni Date: Wed, 4 Sep 2024 15:14:59 +0700 Subject: [PATCH 460/467] 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 d9f689ff..46ac71ab 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 a7521a82c84ab89c0abe42073426333bf02fc6ff 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 461/467] 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 46ac71ab..35ace381 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 af9c38cc363b0f1163f4a2eab4456c361bdeab0b Mon Sep 17 00:00:00 2001 From: arjunyel Date: Thu, 5 Sep 2024 03:10:30 -0500 Subject: [PATCH 462/467] add GraphQL with Go tutorial (#4560) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 35ace381..80d5642b 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 5112294b7b544edcabf6271c81a2f4345dc12489 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 463/467] 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 80d5642b..4a390831 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 c7482f30c333177b8b0812d93e334dc4c0e62fd9 Mon Sep 17 00:00:00 2001 From: Sadiq Rahmati Date: Mon, 9 Sep 2024 17:31:40 +0330 Subject: [PATCH 464/467] Add effdsl (#5400) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4a390831..2d315330 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 3c1d25c4cba4a8e4ff429eddea43facec64eb392 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 465/467] Add Componego (#5370) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2d315330..ed8ee6d2 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 3f7f61b4b011c39904e92d42fd3bd2498ccc39a9 Mon Sep 17 00:00:00 2001 From: tiendc Date: Mon, 9 Sep 2024 23:41:25 +0700 Subject: [PATCH 466/467] Add DI autowire (#5399) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed8ee6d2..df3f3307 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 68fd3f9a49efc8d86dd48f39938038f8081366f9 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 467/467] add envite (#5214) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index df3f3307..a09e5276 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.