mirror of
https://github.com/avelino/awesome-go.git
synced 2025-02-07 04:58:41 +00:00
Merge remote-tracking branch 'upstream/main' into go18ds
This commit is contained in:
commit
0a522b6f1f
@ -7,9 +7,9 @@ generate a code coverage report without one of those services.
|
||||
|
||||
This yaml file will run tests on multiple system configurations, but will produce
|
||||
a code coverage report on only one of those. It will then create a code coverage badge
|
||||
and add it to the Readme file.
|
||||
and add it to the README file.
|
||||
|
||||
This file should be put in the .github/workflows directory of your repo.
|
||||
This file should be put in the `.github/workflows` directory of your repo.
|
||||
|
||||
```yaml
|
||||
name: Go # The name of the workflow that will appear on Github
|
||||
|
33
README.md
33
README.md
@ -211,11 +211,9 @@ _Libraries for manipulating audio._
|
||||
- [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go.
|
||||
- [malgo](https://github.com/gen2brain/malgo) - Mini audio library.
|
||||
- [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library.
|
||||
- [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps.
|
||||
- [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go.
|
||||
- [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms.
|
||||
- [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library.
|
||||
- [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi.
|
||||
|
||||
**[⬆ back to top](#contents)**
|
||||
|
||||
@ -496,6 +494,7 @@ _Libraries for preprocessing CSS files._
|
||||
|
||||
_Generic datastructures and algorithms in Go._
|
||||
|
||||
- [2q](https://github.com/floatdrop/2q) - 2Q in-memory cache implementation.
|
||||
- [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study.
|
||||
- [bingo](https://github.com/iancmcc/bingo) - Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes.
|
||||
- [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream.
|
||||
@ -528,6 +527,7 @@ _Generic datastructures and algorithms in Go._
|
||||
- [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index.
|
||||
- [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches.
|
||||
- [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding.
|
||||
- [go-tuple](https://github.com/barweiss/go-tuple) - Generic tuple implementation for Go 1.18+.
|
||||
- [go18ds](https://github.com/daichi-m/go18ds) - Go Data Structures using Go 1.18 generics.
|
||||
- [gocache](https://github.com/eko/gocache) - A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more.
|
||||
- [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue.
|
||||
@ -666,6 +666,7 @@ _Database tools._
|
||||
- [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser.
|
||||
- [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code.
|
||||
- [pREST](https://github.com/prest/prest) - Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new.
|
||||
- [rdb](https://github.com/HDT3213/rdb) - Redis RDB file parser for secondary development and memory analysis.
|
||||
- [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup.
|
||||
- [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.
|
||||
|
||||
@ -687,6 +688,7 @@ _SQL query builder, libraries for building and using SQL._
|
||||
- [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities.
|
||||
- [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries.
|
||||
- [sq](https://github.com/bokwoon95/go-structured-query) - Type-safe SQL builder and struct mapper for Go.
|
||||
- [sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL.
|
||||
- [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder.
|
||||
- [sqlingo](https://github.com/lqs/sqlingo) - A lightweight DSL to build SQL in Go.
|
||||
- [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance.
|
||||
@ -701,6 +703,7 @@ _SQL query builder, libraries for building and using SQL._
|
||||
_Libraries for connecting and operating databases._
|
||||
|
||||
- Relational Databases
|
||||
|
||||
- [avatica](https://github.com/apache/calcite-avatica-go) - Apache Avatica/Phoenix SQL driver for database/sql.
|
||||
- [bgc](https://github.com/viant/bgc) - Datastore Connectivity for BigQuery for go.
|
||||
- [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go.
|
||||
@ -718,6 +721,7 @@ _Libraries for connecting and operating databases._
|
||||
- [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver.
|
||||
|
||||
- NoSQL Databases
|
||||
|
||||
- [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language.
|
||||
- [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB.
|
||||
- [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go.
|
||||
@ -747,6 +751,7 @@ _Libraries for connecting and operating databases._
|
||||
- [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client.
|
||||
|
||||
- Search and Analytic Databases.
|
||||
|
||||
- [bleve](https://github.com/blevesearch/bleve) - Modern text indexing library for go.
|
||||
- [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go.
|
||||
- [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go.
|
||||
@ -1079,6 +1084,7 @@ _Geographic tools and servers_
|
||||
- [S2 geometry](https://github.com/golang/geo) - S2 geometry library in Go.
|
||||
- [simplefeatures](https://github.com/peterstace/simplefeatures) - simplesfeatures is a 2D geometry library that provides Go types that model geometries, as well as algorithms that operate on them.
|
||||
- [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing.
|
||||
- [Web-Mercator-Projection](https://github.com/jorelosorio/web-mercator-projection) A project to easily use and convert LonLat, Point and Tile to display info, markers, etc, in a map using the Web Mercator Projection.
|
||||
- [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM).
|
||||
|
||||
**[⬆ back to top](#contents)**
|
||||
@ -1155,6 +1161,7 @@ _Toolkits_
|
||||
- [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron).
|
||||
- [go-gtk](https://mattn.github.io/go-gtk/) - Go bindings for GTK.
|
||||
- [go-sciter](https://github.com/sciter-sdk/go-sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. Cross platform.
|
||||
- [goradd/html5tag](https://github.com/goradd/html5tag) - Library for outputting HTML5 tags.
|
||||
- [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3.
|
||||
- [gowd](https://github.com/dtylman/gowd) - Rapid and simple desktop UI development with GO, HTML, CSS and NW.js. Cross platform.
|
||||
- [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi).
|
||||
@ -1368,7 +1375,7 @@ _Libraries for generating and working with log files._
|
||||
- [rollingwriter](https://github.com/arthurkiller/rollingWriter) - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation.
|
||||
- [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting.
|
||||
- [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging.
|
||||
- [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing *sql.DB stdlib usage.
|
||||
- [sqldb-logger](https://github.com/simukti/sqldb-logger) - A logger for Go SQL database driver without modify existing \*sql.DB stdlib usage.
|
||||
- [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs.
|
||||
- [structy/log](https://github.com/structy/log) - A simple to use log system, minimalist but with features for debugging and differentiation of messages.
|
||||
- [tail](https://github.com/hpcloud/tail) - Go package striving to emulate the features of the BSD tail program.
|
||||
@ -1517,7 +1524,7 @@ _Libraries for working with dependency injection._
|
||||
- [HnH/di](https://github.com/HnH/di) - DI container library that is focused on clean API and flexibility.
|
||||
- [kinit](https://github.com/go-kata/kinit) - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization.
|
||||
- [linker](https://github.com/logrange/linker) - A reflection based dependency injection and inversion of control library with components lifecycle support.
|
||||
- [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, and http endpoints, and service startup.
|
||||
- [nject](https://github.com/muir/nject) - A type safe, reflective framework for libraries, tests, http endpoints, and service startup.
|
||||
- [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang.
|
||||
|
||||
**[⬆ back to top](#contents)**
|
||||
@ -1770,6 +1777,7 @@ _Libraries for making HTTP requests._
|
||||
- [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library.
|
||||
- [go-cleanhttp](https://github.com/hashicorp/go-cleanhttp) - Get easily stdlib HTTP client, which does not share any state with other clients.
|
||||
- [go-http-client](https://github.com/bozd4g/go-http-client) - Make http calls simply and easily.
|
||||
- [go-otelroundtripper](https://github.com/NdoleStudio/go-otelroundtripper) - Go http.RoundTripper that emits open telemetry metrics for HTTP requests.
|
||||
- [go-req](https://github.com/wenerme/go-req) - Declarative golang HTTP client.
|
||||
- [go-retryablehttp](https://github.com/hashicorp/go-retryablehttp) - Retryable HTTP client in Go.
|
||||
- [grequests](https://github.com/levigross/grequests) - A Go "clone" of the great and famous Requests library.
|
||||
@ -1957,6 +1965,7 @@ _Libraries that are used to help make your application more secure._
|
||||
- [Cameradar](https://github.com/Ullaakut/cameradar) - Tool and library to remotely hack RTSP streams from surveillance cameras.
|
||||
- [certificates](https://github.com/mvmaasakkers/certificates) - An opinionated tool for generating tls certificates.
|
||||
- [CertMagic](https://github.com/caddyserver/certmagic) - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal.
|
||||
- [Coraza](https://github.com/corazawaf/coraza) - Enterprise-ready, modsecurity and OWASP CRS compatible WAF library.
|
||||
- [dongle](https://github.com/golang-module/dongle) - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption.
|
||||
- [firewalld-rest](https://github.com/prashantgupta24/firewalld-rest) - A rest application to dynamically update firewalld rules on a linux server.
|
||||
- [go-generate-password](https://github.com/m1/go-generate-password) - Password generator that can be used on the cli or as a library.
|
||||
@ -1971,7 +1980,7 @@ _Libraries that are used to help make your application more secure._
|
||||
- [nacl](https://github.com/kevinburke/nacl) - Go implementation of the NaCL set of API's.
|
||||
- [optimus-go](https://github.com/pjebs/optimus-go) - ID hashing and Obfuscation using Knuth's Algorithm.
|
||||
- [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library.
|
||||
- [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std* etc.
|
||||
- [secret](https://github.com/rsjethani/secret) - Prevent your secrets from leaking into logs, std\* etc.
|
||||
- [secure](https://github.com/unrolled/secure) - HTTP middleware for Go that facilitates some quick security wins.
|
||||
- [secureio](https://github.com/xaionaro-go/secureio) - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519.
|
||||
- [simple-scrypt](https://github.com/elithrar/simple-scrypt) - Scrypt package with a simple, obvious API and automatic cost calibration built-in.
|
||||
@ -2082,6 +2091,7 @@ _Libraries and tools for templating and lexing._
|
||||
_Libraries for testing codebases and generating test data._
|
||||
|
||||
- Testing Frameworks
|
||||
|
||||
- [apitest](https://apitest.dev) - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams.
|
||||
- [assert](https://github.com/go-playground/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions.
|
||||
- [badio](https://github.com/cavaliercoder/badio) - Extensions to Go's `testing/iotest` package.
|
||||
@ -2121,6 +2131,7 @@ _Libraries for testing codebases and generating test data._
|
||||
- [GoSpec](https://github.com/orfjackal/gospec) - BDD-style testing framework for the Go programming language.
|
||||
- [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.
|
||||
@ -2141,6 +2152,7 @@ _Libraries for testing codebases and generating test data._
|
||||
- [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler.
|
||||
|
||||
- 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.
|
||||
@ -2158,11 +2170,13 @@ _Libraries for testing codebases and generating test data._
|
||||
- [timex](https://github.com/cabify/timex) - A test-friendly replacement for the native `time` package.
|
||||
|
||||
- Fuzzing and delta-debugging/reducing/shrinking.
|
||||
|
||||
- [go-fuzz](https://github.com/dvyukov/go-fuzz) - Randomized testing system.
|
||||
- [gofuzz](https://github.com/google/gofuzz) - Library for populating go objects with random values.
|
||||
- [Tavor](https://github.com/zimmski/tavor) - Generic fuzzing and delta-debugging framework.
|
||||
|
||||
- Selenium and browser control tools.
|
||||
|
||||
- [cdp](https://github.com/mafredri/cdp) - Type-safe bindings for the Chrome Debugging Protocol that can be used with browsers or other debug targets that implement it.
|
||||
- [chromedp](https://github.com/knq/chromedp) - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol.
|
||||
- [ggr](https://github.com/aerokube/ggr) - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs.
|
||||
@ -2491,8 +2505,10 @@ _General utilities and tools to make your life easier._
|
||||
- [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool.
|
||||
- [pgo](https://github.com/arthurkushman/pgo) - Convenient functions for PHP community.
|
||||
- [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API.
|
||||
- [pointer](https://github.com/xorcare/pointer) - Package pointer contains helper routines for simplifying the creation of optional fields of basic type.
|
||||
- [ptr](https://github.com/gotidy/ptr) - Package that provide functions for simplified creation of pointers from constants of basic types.
|
||||
- [rclient](https://github.com/zpatrick/rclient) - Readable, flexible, simple-to-use client for REST APIs.
|
||||
- [reflectutils](https://github.com/muir/reflectutils) - Helpers for working with reflection: struct tag parsing; recursive walking; fill value from string.
|
||||
- [repeat](https://github.com/ssgreg/repeat) - Go implementation of different backoff strategies useful for retrying operations and heartbeating.
|
||||
- [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™.
|
||||
- [rerate](https://github.com/abo/rerate) - Redis-based rate counter and rate limiter for Go.
|
||||
@ -2613,6 +2629,7 @@ _Full stack web frameworks._
|
||||
- [aah](https://aahframework.org) - Scalable, performant, rapid development Web framework for Go.
|
||||
- [Aero](https://github.com/aerogo/aero) - High-performance web framework for Go, reaches top scores in Lighthouse.
|
||||
- [Air](https://github.com/aofei/air) - An ideally refined web framework for Go.
|
||||
- [anoweb](https://github.com/go-the-way/anoweb) - The lightweight and powerful web framework using the new way for Go.Another go the way.
|
||||
- [appy](https://github.com/appist/appy) - An opinionated productive web framework that helps scaling business easier.
|
||||
- [Banjo](https://github.com/nsheremet/banjo) - Very simple and fast web framework for Go.
|
||||
- [Beego](https://github.com/beego/beego) - beego is an open-source, high-performance web framework for the Go programming language.
|
||||
@ -2715,9 +2732,11 @@ _Full stack web frameworks._
|
||||
- [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter.
|
||||
- [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks.
|
||||
- [mux](https://github.com/gorilla/mux) - Powerful URL router and dispatcher for golang.
|
||||
- [nchi](https://github.com/muir/nchi) - chi-like router built on httprouter with dependency injection based middleware wrappers
|
||||
- [ngamux](https://github.com/ngamux/ngamux) - Simple HTTP router for Go.
|
||||
- [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - An extremely fast Go (golang) HTTP router that supports regular expression route matching. Comes with full support for building RESTful APIs.
|
||||
- [pure](https://github.com/go-playground/pure) - Is a lightweight HTTP router that sticks to the std "net/http" implementation.
|
||||
- [router](https://github.com/golobby/router) - GoLobby Router is a lightweight yet powerful HTTP router for the Go programming language.
|
||||
- [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers.
|
||||
- [vestigo](https://github.com/husobee/vestigo) - Performant, stand-alone, HTTP compliant URL Router for go web applications.
|
||||
- [violetear](https://github.com/nbari/violetear) - Go HTTP router.
|
||||
@ -2912,6 +2931,7 @@ _Software written in Go._
|
||||
- [jcli](https://github.com/jenkins-zh/jenkins-cli) - Jenkins CLI allows you manage your Jenkins as an easy way.
|
||||
- [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler.
|
||||
- [kcli](https://github.com/cswank/kcli) - Command line tool for inspecting kafka topics/partitions/messages.
|
||||
- [ko](https://github.com/google/ko) - Command line tool for building and deploying Go applications on Kubernetes
|
||||
- [kool](https://github.com/kool-dev/kool) - Command line tool for managing Docker environments as an easy way.
|
||||
- [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google.
|
||||
- [kwatch](https://github.com/abahmed/kwatch) - Monitor & detect crashes in your Kubernetes(K8s) cluster instantly.
|
||||
@ -3178,7 +3198,7 @@ _Where to discover new Go libraries._
|
||||
- [Utah Go User Group](https://www.meetup.com/utahgophers/)
|
||||
- [Women Who Go - San Francisco, CA](https://www.meetup.com/Women-Who-Go/)
|
||||
|
||||
*Add the group of your city/country here (send **PR**)*
|
||||
_Add the group of your city/country here (send **PR**)_
|
||||
|
||||
**[⬆ back to top](#contents)**
|
||||
|
||||
@ -3290,6 +3310,7 @@ _Where to discover new Go libraries._
|
||||
- [How to Benchmark: dbq vs sqlx vs GORM](https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5) - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM.
|
||||
- [How To Deploy a Go Web Application with Docker](https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker) - Learn how to use Docker for Go development and how to build production Docker images.
|
||||
- [How to Use Godog for Behavior-driven Development in Go](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) - Get started with Godog — a Behavior-driven development framework for building and testing Go applications.
|
||||
- [Implementing CRUD in Golang REST API with Mux & GORM](https://codewithmukesh.com/blog/implementing-crud-in-golang-rest-api/) - Building a CRUD Golang REST API from scratch using MUX, GORM, MySQL, Viper and clean folder seperation. Entire source code is also included!
|
||||
- [Learn Go with 1000+ Exercises](https://github.com/inancgumus/learngo) - Learn Go with thousands of examples, exercises, and quizzes.
|
||||
- [Learn Go with TDD](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development.
|
||||
- [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example.
|
||||
|
Loading…
Reference in New Issue
Block a user