Added a 'back to top' to the README.md. You can find it after every section that starts with ## and ###

This commit is contained in:
Ben Asaf 2021-09-14 19:39:34 +09:00 committed by Avelino
parent fa64ff8e4a
commit 6bcffbc0f1

183
README.md
View File

@ -8,6 +8,7 @@
<a href="https://www.producthunt.com/posts/awesome-go?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-awesome-go" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=291535&theme=light" alt="awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
## Sponsorships
> [![Digital Ocean](https://avelino.run/sponsors/do_logo_horizontal_blue-210.png)](https://m.do.co/c/bd3b723c0a36?utm_medium=opensource&utm_source=awesome-go)
@ -119,6 +120,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
- [Websites](#websites)
- [Tutorials](#tutorials)
**[⬆ back to top](#contents)**
## Audio and Music
*Libraries for manipulating audio.*
@ -137,7 +140,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi.
* [vorbis](https://github.com/mccoyst/vorbis) - "Native" Go Vorbis decoder (uses CGO, but has no dependencies).
## Authentication and OAuth
##
*Libraries for implementing authentications schemes.*
@ -175,7 +179,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package.
* [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser.
## Blockchain
##
*Tools for building blockchains.*
@ -186,6 +191,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
**[⬆ back to top](#contents)**
## Bot Building
*Libraries for building and working with bots.*
@ -212,6 +219,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client.
* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging.
**[⬆ back to top](#contents)**
## Build Automation
*Libraries and tools helping with build automation.*
@ -226,6 +235,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [Task](https://github.com/go-task/task) - simple "Make" alternative.
* [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner.
**[⬆ back to top](#contents)**
## Command Line
### Standard CLI
@ -273,6 +284,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency.
* [wmenu](https://github.com/dixonwille/wmenu) - Easy to use menu structure for cli applications that prompts users to make choices.
**[⬆ back to top](#contents)**
### Advanced Console UIs
*Libraries for building Console Applications and Console User Interfaces.*
@ -310,6 +323,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data.
* [yacspin](https://github.com/theckman/yacspin) - Yet Another CLi Spinner package, for working with terminal spinners.
**[⬆ back to top](#contents)**
## Configuration
*Libraries for configuration parsing.*
@ -363,6 +378,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html).
* [ini](https://github.com/wlevene/ini) - INI Parser & Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file.
**[⬆ back to top](#contents)**
## Continuous Integration
*Tools for help with continuous integration.*
@ -376,6 +393,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls.
* [roveralls](https://github.com/LawrenceWoodman/roveralls) - Recursive coverage testing tool.
**[⬆ back to top](#contents)**
## CSS Preprocessors
*Libraries for preprocessing CSS files.*
@ -383,6 +402,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [gcss](https://github.com/yosssi/gcss) - Pure Go CSS Preprocessor.
* [go-libsass](https://github.com/wellington/go-libsass) - Go wrapper to the 100% Sass compatible libsass project.
**[⬆ back to top](#contents)**
## Data Structures
*Generic datastructures and algorithms in Go.*
@ -455,6 +476,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures.
* [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters.
**[⬆ back to top](#contents)**
## Database
*Databases implemented in Go.*
@ -570,6 +593,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries.
* [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.
**[⬆ back to top](#contents)**
## Database Drivers
*Libraries for connecting and operating databases.*
@ -634,6 +659,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [dsc](https://github.com/viant/dsc) - Datastore connectivity for SQL, NoSQL, structured files.
* [gokv](https://github.com/philippgille/gokv) - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more).
**[⬆ back to top](#contents)**
## Date and Time
*Libraries for working with dates and times.*
@ -659,6 +686,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package.
* [tuesday](https://github.com/osteele/tuesday) - Ruby-compatible Strftime function.
**[⬆ back to top](#contents)**
## Distributed Systems
*Packages that help with building Distributed Systems.*
@ -712,6 +741,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [sleuth](https://github.com/ursiform/sleuth) - Library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq)).
* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package.
**[⬆ back to top](#contents)**
## Dynamic DNS
*Tools for updating dynamic DNS records.*
@ -720,6 +751,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [dyndns](https://gitlab.com/alcastle/dyndns) - Background Go process to regularly and automatically check your IP Address and make updates to (one or many) Dynamic DNS records for Google domains whenever your address changes.
* [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go.
**[⬆ back to top](#contents)**
## Email
*Libraries and tools that implement email creation and sending.*
@ -742,6 +775,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [SendGrid](https://github.com/sendgrid/sendgrid-go) - SendGrid's Go library for sending email.
* [smtp](https://github.com/mailhog/smtp) - SMTP server protocol state machine.
**[⬆ back to top](#contents)**
## Embeddable Scripting Languages
*Embedding other languages inside your go code.*
@ -765,6 +800,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go.
* [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go.
**[⬆ back to top](#contents)**
## Error Handling
*Libraries for handling errors.*
@ -782,6 +819,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error.
* [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments.
**[⬆ back to top](#contents)**
## File Handling
*Libraries for handling files and file systems.*
@ -811,6 +850,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [*todo.txt*](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [*todo.txt* format](https://github.com/todotxt/todo.txt).
* [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS.
**[⬆ back to top](#contents)**
## Financial
*Packages for accounting and finance.*
@ -835,6 +876,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode.
* [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates.
**[⬆ back to top](#contents)**
## Forms
*Libraries for working with forms.*
@ -850,6 +893,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [qs](https://github.com/sonh/qs) - Go module for encoding structs into URL query parameters.
* [queryparam](https://github.com/tomwright/queryparam) - Decode `url.Values` into usable struct values of standard or custom types.
**[⬆ back to top](#contents)**
## Functional
*Packages to support functional programming in Go.*
@ -859,6 +904,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities.
* [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang.
**[⬆ back to top](#contents)**
## Game Development
*Awesome game development libraries.*
@ -882,6 +929,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox.
* [tile](https://github.com/kelindar/tile) - Data-oriented and cache-friendly 2D Grid library (TileMap), includes pathfinding, observers and import/export.
**[⬆ back to top](#contents)**
## Generation and Generics
*Tools to enhance the language with features like generics via code generation.*
@ -901,6 +950,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [pkgreflect](https://github.com/ungerik/pkgreflect) - Go preprocessor for package scoped reflection.
* [typeregistry](https://github.com/xiaoxin01/typeregistry) - A library to create type dynamically.
**[⬆ back to top](#contents)**
## Geographic
*Geographic tools and servers*
@ -916,6 +967,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [Tile38](https://github.com/tidwall/tile38) - Geolocation DB with spatial index and realtime geofencing.
* [WGS84](https://github.com/wroge/wgs84) - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM).
**[⬆ back to top](#contents)**
## Go Compilers
*Tools for compiling Go to other languages.*
@ -925,6 +978,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [gopherjs](https://github.com/gopherjs/gopherjs) - Compiler from Go to JavaScript.
* [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler.
**[⬆ back to top](#contents)**
## Goroutines
*Tools for managing and working with Goroutines.*
@ -972,6 +1027,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [worker-pool](https://github.com/vardius/worker-pool) - goworker is a Go simple async worker pool.
* [workerpool](https://github.com/gammazero/workerpool) - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued.
**[⬆ back to top](#contents)**
## GUI
*Libraries for building GUI Applications.*
@ -1003,12 +1060,16 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [zenity](https://github.com/ncruces/zenity) - Cross-platform Go library and CLI to create simple dialogs that interact graphically with the user.
**[⬆ back to top](#contents)**
## Hardware
*Libraries, tools, and tutorials for interacting with hardware.*
See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive list.
**[⬆ back to top](#contents)**
## Images
*Libraries for manipulating images.*
@ -1056,6 +1117,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder.
* [webp-server](https://github.com/mehdipourfar/webp-server) - Simple and minimal image server capable of storing, resizing, converting and caching images.
**[⬆ back to top](#contents)**
## IoT (Internet of Things)
*Libraries for programming devices of the IoT.*
@ -1072,6 +1135,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [periph](https://periph.io/) - Peripherals I/O to interface with low-level board facilities.
* [sensorbee](https://github.com/sensorbee/sensorbee) - Lightweight stream processing engine for IoT.
**[⬆ back to top](#contents)**
## Job Scheduler
*Libraries for scheduling jobs.*
@ -1089,6 +1154,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy.
* [tasks](https://github.com/madflojo/tasks) - An easy to use in-process scheduler for recurring tasks in Go.
**[⬆ back to top](#contents)**
## JSON
*Libraries for working with JSON.*
@ -1125,6 +1192,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [ujson](https://github.com/olvrng/ujson) - Fast and minimal JSON parser and transformer that works on unstructured JSON.
* [vjson](https://github.com/miladibra10/vjson) - Go package for validating JSON objects with declaring a JSON schema with fluent API.
**[⬆ back to top](#contents)**
## Logging
*Libraries for generating and working with log files.*
@ -1180,6 +1249,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [zerolog](https://github.com/rs/zerolog) - Zero-allocation JSON logger.
* [zkits-logger](https://github.com/edoger/zkits-logger) - A powerful zero-dependency JSON logger.
**[⬆ back to top](#contents)**
## Machine Learning
*Libraries for Machine Learning.*
@ -1223,6 +1294,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [tfgo](https://github.com/galeone/tfgo) - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python.
* [Varis](https://github.com/Xamber/Varis) - Golang Neural Network.
**[⬆ back to top](#contents)**
## Messaging
*Libraries that implement messaging systems.*
@ -1277,6 +1350,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [Uniqush-Push](https://github.com/uniqush/uniqush-push) - Redis backed unified push service for server-side notifications to mobile devices.
* [zmq4](https://github.com/pebbe/zmq4) - Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2).
**[⬆ back to top](#contents)**
## Microsoft Office
* [unioffice](https://github.com/unidoc/unioffice) - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents.
@ -1291,6 +1366,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs.
* [xlsx](https://github.com/plandem/xlsx) - Fast and safe way to read/update your existing Microsoft Excel files in Go programs.
**[⬆ back to top](#contents)**
## Miscellaneous
### Dependency Injection
@ -1310,6 +1387,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [nject/npoint](https://github.com/BlueOwlOpenSource/nject) - A type safe, reflective framework based on types for libraries, tests, and endpoints.
* [wire](https://github.com/Fs02/wire) - Strict Runtime Dependency Injection for Golang.
**[⬆ back to top](#contents)**
### Project Layout
_**Unofficial** set of patterns for structuring projects._
@ -1326,6 +1405,8 @@ _**Unofficial** set of patterns for structuring projects._
* [scaffold](https://github.com/catchplay/scaffold) - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented.
* [wangyoucao577/go-project-layout](https://github.com/wangyoucao577/go-project-layout) - Set of practices and discussions on how to structure Go project layout.
**[⬆ back to top](#contents)**
### Strings
*Libraries for working with strings.*
@ -1336,6 +1417,8 @@ _**Unofficial** set of patterns for structuring projects._
* [strutil](https://github.com/ozgio/strutil) - String utilities.
* [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages.
**[⬆ back to top](#contents)**
### Uncategorized
*These libraries were placed here because none of the other categories seemed to fit.*
@ -1391,6 +1474,8 @@ _**Unofficial** set of patterns for structuring projects._
* [xdg](https://github.com/rkoesters/xdg) - FreeDesktop.org (xdg) Specs implemented in Go.
* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber.
**[⬆ back to top](#contents)**
## Natural Language Processing
*Libraries for working with human languages.*
@ -1437,6 +1522,8 @@ _**Unofficial** set of patterns for structuring projects._
* [whatlanggo](https://github.com/abadojack/whatlanggo) - Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc).
* [when](https://github.com/olebedev/when) - Natural EN and RU language date/time parser with pluggable rules.
**[⬆ back to top](#contents)**
## Networking
*Libraries for working with various layers of the network.*
@ -1505,6 +1592,8 @@ _**Unofficial** set of patterns for structuring projects._
* [winrm](https://github.com/masterzen/winrm) - Go WinRM client to remotely execute commands on Windows machines.
* [xtcp](https://github.com/xfxdev/xtcp) - TCP Server Framework with simultaneous full duplex communication, graceful shutdown, and custom protocol.
**[⬆ back to top](#contents)**
### HTTP Clients
*Libraries for making HTTP requests.*
@ -1523,6 +1612,8 @@ _**Unofficial** set of patterns for structuring projects._
* [rq](https://github.com/ddo/rq) - A nicer interface for golang stdlib HTTP client.
* [sling](https://github.com/dghubble/sling) - Sling is a Go HTTP client library for creating and sending API requests.
**[⬆ back to top](#contents)**
## OpenGL
*Libraries for using OpenGL in Go.*
@ -1534,6 +1625,8 @@ _**Unofficial** set of patterns for structuring projects._
* [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events.
* [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM.
**[⬆ back to top](#contents)**
## ORM
*Libraries that implement Object-Relational Mapping or datamapping techniques.*
@ -1560,6 +1653,8 @@ _**Unofficial** set of patterns for structuring projects._
* [XORM](https://gitea.com/xorm/xorm) - Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle).
* [Zoom](https://github.com/albrow/zoom) - Blazing-fast datastore and querying engine built on Redis.
**[⬆ back to top](#contents)**
## Package Management
*Official tooling for dependency and package management*
@ -1587,6 +1682,8 @@ _**Unofficial** set of patterns for structuring projects._
* [nut](https://github.com/jingweno/nut) - Vendor Go dependencies.
* [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments.
**[⬆ back to top](#contents)**
## Performance
* [jaeger](https://github.com/jaegertracing/jaeger) - A distributed tracing system.
@ -1595,6 +1692,8 @@ _**Unofficial** set of patterns for structuring projects._
* [statsviz](https://github.com/arl/statsviz) - Live visualization of your Go application runtime statistics.
* [tracer](https://github.com/kamilsk/tracer) - Simple, lightweight tracing.
**[⬆ back to top](#contents)**
## Query Language
* [api-fu](https://github.com/ccbrown/api-fu) - Comprehensive GraphQL implementation.
@ -1612,6 +1711,8 @@ _**Unofficial** set of patterns for structuring projects._
* [rqp](https://github.com/timsolov/rest-query-parser) - Query Parser for REST API. Filtering, validations, both `AND`, `OR` operations are supported directly in the query.
* [straf](https://github.com/SonicRoshan/straf) - Easily Convert Golang structs to GraphQL objects.
**[⬆ back to top](#contents)**
## Resource Embedding
* [debme](https://github.com/leaanthony/debme) - Create an `embed.FS` from an existing `embed.FS` subdirectory.
@ -1627,6 +1728,8 @@ _**Unofficial** set of patterns for structuring projects._
* [templify](https://github.com/wlbr/templify) - Embed external template files into Go code to create single file binaries.
* [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem.
**[⬆ back to top](#contents)**
## Science and Data Analysis
*Libraries for scientific computing and data analyzing.*
@ -1665,6 +1768,8 @@ _**Unofficial** set of patterns for structuring projects._
* [TextRank](https://github.com/DavidBelicza/TextRank) - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support.
* [triangolatte](https://github.com/tchayen/triangolatte) - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs.
**[⬆ back to top](#contents)**
## Security
*Libraries that are used to help make your application more secure.*
@ -1698,6 +1803,8 @@ _**Unofficial** set of patterns for structuring projects._
* [themis](https://github.com/cossacklabs/themis) - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps.
**[⬆ back to top](#contents)**
## Serialization
*Libraries and tools for binary serialization.*
@ -1724,6 +1831,8 @@ _**Unofficial** set of patterns for structuring projects._
* [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures.
* [unitpacking](https://github.com/recolude/unitpacking) - Library to pack unit vectors into as fewest bytes as possible.
**[⬆ back to top](#contents)**
## Server Applications
* [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber.
@ -1755,6 +1864,8 @@ _**Unofficial** set of patterns for structuring projects._
* [Trickster](https://github.com/tricksterproxy/trickster) - HTTP reverse proxy cache and time series accelerator.
**[⬆ back to top](#contents)**
## Stream Processing
*Libraries and tools for stream processing and reactive programming.*
@ -1763,6 +1874,8 @@ _**Unofficial** set of patterns for structuring projects._
* [machine](https://github.com/whitaker-io/machine) - Go library for writing and generating stream workers with built in metrics and traceability.
* [stream](https://github.com/youthlin/stream) - Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce...
**[⬆ back to top](#contents)**
## Template Engines
*Libraries and tools for templating and lexing.*
@ -1791,6 +1904,8 @@ _**Unofficial** set of patterns for structuring projects._
* [tbd](https://github.com/lucasepe/tbd) - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata
* [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go.
**[⬆ back to top](#contents)**
## Testing
*Libraries for testing codebases and generating test data.*
@ -1881,6 +1996,8 @@ _**Unofficial** set of patterns for structuring projects._
* Fail injection
* [failpoint](https://github.com/pingcap/failpoint) - An implementation of [failpoints](http://www.freebsd.org/cgi/man.cgi?query=fail) for Golang.
**[⬆ back to top](#contents)**
## Text Processing
*Libraries for parsing and manipulating texts.*
@ -1952,6 +2069,8 @@ _**Unofficial** set of patterns for structuring projects._
* [xj2go](https://github.com/stackerzzq/xj2go) - Convert xml or json to go struct.
* [xurls](https://github.com/mvdan/xurls) - Extract urls from text.
**[⬆ back to top](#contents)**
## Third-party APIs
*Libraries for accessing third party APIs.*
@ -2048,6 +2167,8 @@ _**Unofficial** set of patterns for structuring projects._
* [ynab](https://github.com/brunomvsouza/ynab.go) - Go wrapper for the YNAB API.
* [zooz](https://github.com/gojuno/go-zooz) - Go client for the Zooz API.
**[⬆ back to top](#contents)**
## Utilities
*General utilities and tools to make your life easier.*
@ -2202,6 +2323,8 @@ _**Unofficial** set of patterns for structuring projects._
* [wuzz](https://github.com/asciimoo/wuzz) - Interactive cli tool for HTTP inspection.
* [xferspdy](https://github.com/monmohan/xferspdy) - Xferspdy provides binary diff and patch library in golang.
**[⬆ back to top](#contents)**
## UUID
*Libraries for working with UUIDs.*
@ -2218,6 +2341,8 @@ _**Unofficial** set of patterns for structuring projects._
* [uuid](https://github.com/google/uuid) - Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.
* [wuid](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID.
**[⬆ back to top](#contents)**
## Validation
*Libraries for validation.*
@ -2234,6 +2359,8 @@ _**Unofficial** set of patterns for structuring projects._
* [validate](https://github.com/gobuffalo/validate) - This package provides a framework for writing validations for Go applications.
* [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving.
**[⬆ back to top](#contents)**
## Version Control
*Libraries for version control.*
@ -2246,6 +2373,8 @@ _**Unofficial** set of patterns for structuring projects._
* [hercules](https://github.com/src-d/hercules) - gaining advanced insights from Git repository history.
* [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories.
**[⬆ back to top](#contents)**
## Video
*Libraries for manipulating video.*
@ -2263,6 +2392,8 @@ _**Unofficial** set of patterns for structuring projects._
* [m3u8](https://github.com/grafov/m3u8) - Parser and generator library of M3U8 playlists for Apple HLS.
* [v4l](https://github.com/korandiz/v4l) - Video capture library for Linux, written in Go.
**[⬆ back to top](#contents)**
## Web Frameworks
*Full stack web frameworks.*
@ -2315,6 +2446,8 @@ _**Unofficial** set of patterns for structuring projects._
* [WebGo](https://github.com/bnkamalesh/webgo) - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc).
* [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way.
**[⬆ back to top](#contents)**
### Middlewares
#### Actual middlewares
@ -2347,6 +2480,8 @@ _**Unofficial** set of patterns for structuring projects._
* [rye](https://github.com/InVisionApp/rye) - Tiny Go middleware library (with canned Middlewares) that supports JWT, CORS, Statsd, and Go 1.7 context.
* [stats](https://github.com/thoas/stats) - Go middleware that stores various information about your web application.
**[⬆ back to top](#contents)**
### Routers
* [alien](https://github.com/gernest/alien) - Lightweight and fast http router from outer space.
@ -2373,6 +2508,8 @@ _**Unofficial** set of patterns for structuring projects._
* [xmux](https://github.com/rs/xmux) - High performance muxer based on `httprouter` with `net/context` support.
* [xujiajun/gorouter](https://github.com/xujiajun/gorouter) - A simple and fast HTTP router for Go.
**[⬆ back to top](#contents)**
## WebAssembly
* [dom](https://github.com/dennwc/dom) - DOM library.
@ -2382,12 +2519,16 @@ _**Unofficial** set of patterns for structuring projects._
* [wasmbrowsertest](https://github.com/agnivade/wasmbrowsertest) - Run Go WASM tests in your browser.
* [webapi](https://github.com/gowebapi/webapi) - Bindings for DOM and HTML generated from WebIDL.
**[⬆ back to top](#contents)**
## Windows
* [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9.
* [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang.
* [gosddl](https://github.com/MonaxGT/gosddl) - Converter from SDDL-string to user-friendly JSON. SDDL consist of four part: Owner, Primary Group, DACL, SACL.
**[⬆ back to top](#contents)**
## XML
*Libraries and tools for manipulating XML.*
@ -2403,6 +2544,8 @@ _**Unofficial** set of patterns for structuring projects._
*Go software and plugins.*
**[⬆ back to top](#contents)**
## Code Analysis
* [apicompat](https://github.com/bradleyfalzon/apicompat) - Checks recent changes to a Go project for backwards incompatible changes.
@ -2434,6 +2577,8 @@ _**Unofficial** set of patterns for structuring projects._
* [unused](https://github.com/dominikh/go-tools/tree/master/cmd/unused) - unused checks Go code for unused constants, variables, functions and types.
* [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags.
**[⬆ back to top](#contents)**
## Editor Plugins
* [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs.
@ -2451,6 +2596,8 @@ _**Unofficial** set of patterns for structuring projects._
* [vscode-go](https://github.com/golang/vscode-go) - Extension for Visual Studio Code (VS Code) which provides support for the Go language.
* [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes.
**[⬆ back to top](#contents)**
## Go Generate Tools
* [generic](https://github.com/usk81/generic) - flexible data type for Go.
@ -2464,6 +2611,8 @@ _**Unofficial** set of patterns for structuring projects._
* [TOML-to-Go](https://xuri.me/toml-to-go) - Translates TOML into a Go type in the browser instantly.
* [xgen](https://github.com/xuri/xgen) - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator.
**[⬆ back to top](#contents)**
## Go Tools
* [colorgo](https://github.com/songgao/colorgo) - Wrapper around `go` command for colorized `go build` output.
@ -2484,10 +2633,14 @@ _**Unofficial** set of patterns for structuring projects._
* [rts](https://github.com/galeone/rts) - RTS: response to struct. Generates Go structs from server responses.
* [typex](https://github.com/dtgorski/typex) - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration.
**[⬆ back to top](#contents)**
## Software Packages
*Software written in Go.*
**[⬆ back to top](#contents)**
### DevOps Tools
* [abbreviate](https://github.com/dnnrly/abbreviate) - abbreviate is a tool turning long strings in to shorter ones with configurable seperaters, for example to embed branch names in to deployment stack IDs.
@ -2556,6 +2709,8 @@ _**Unofficial** set of patterns for structuring projects._
* [Wide](https://wide.b3log.org/login) - Web-based IDE for Teams using Golang.
* [winrm-cli](https://github.com/masterzen/winrm-cli) - Cli tool to remotely execute commands on Windows machines.
**[⬆ back to top](#contents)**
### Other Software
* [Better Go Playground](https://goplay.tools) - Go playground with syntax highlight, code completion and other features.
@ -2616,10 +2771,14 @@ _**Unofficial** set of patterns for structuring projects._
* [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass).
* [woke](https://github.com/get-woke/woke) - Detect non-inclusive language in your source code.
**[⬆ back to top](#contents)**
# Resources
*Where to discover new Go libraries.*
**[⬆ back to top](#contents)**
## Benchmarks
* [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions.
@ -2637,6 +2796,8 @@ _**Unofficial** set of patterns for structuring projects._
* [skynet](https://github.com/atemerev/skynet) - Skynet 1M threads microbenchmark.
* [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language.
**[⬆ back to top](#contents)**
## Conferences
* [Capital Go](http://www.capitalgolang.com) - Washington, D.C., USA.
@ -2658,6 +2819,8 @@ _**Unofficial** set of patterns for structuring projects._
* [GothamGo](http://gothamgo.com/) - New York City, USA.
* [GoWayFest](https://goway.io/) - Minsk, Belarus.
**[⬆ back to top](#contents)**
## E-Books
* [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read)
@ -2680,6 +2843,8 @@ _**Unofficial** set of patterns for structuring projects._
* [Writing A Compiler In Go](https://compilerbook.com)
* [Writing An Interpreter In Go](https://interpreterbook.com)
**[⬆ back to top](#contents)**
## Gophers
* [Free Gophers Pack](https://github.com/MariaLetta/free-gophers-pack) - Gopher graphics pack by Maria Letta with illustrations and emotional characters in vector and raster.
@ -2695,6 +2860,8 @@ _**Unofficial** set of patterns for structuring projects._
* [gophers](https://github.com/sillecelik/go-gopher) - Gopher amigurumi toy pattern.
* [gophers](https://github.com/scraly/gophers) - Gophers by Aurélie Vache.
**[⬆ back to top](#contents)**
## Meetups
* [Basel Go Meetup](https://www.meetup.com/Basel-Go-Meetup/)
@ -2760,6 +2927,8 @@ _**Unofficial** set of patterns for structuring projects._
*Add the group of your city/country here (send **PR**)*
**[⬆ back to top](#contents)**
## Style Guides
* [bahlo/go-styleguide](https://github.com/bahlo/go-styleguide)
@ -2771,6 +2940,8 @@ _**Unofficial** set of patterns for structuring projects._
* [Thanos](https://thanos.io/tip/contributing/coding-style-guide.md/)
* [Uber](https://github.com/uber-go/guide/blob/master/style.md)
**[⬆ back to top](#contents)**
## Social Media
### Twitter
@ -2780,9 +2951,13 @@ _**Unofficial** set of patterns for structuring projects._
* [@golangflow](https://twitter.com/golangflow)
* [@golangweekly](https://twitter.com/golangweekly)
**[⬆ back to top](#contents)**
### Reddit
* [r/golang](https://www.reddit.com/r/golang/)
**[⬆ back to top](#contents)**
## Websites
* [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox.
@ -2821,6 +2996,8 @@ _**Unofficial** set of patterns for structuring projects._
* [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries.
* [TutorialEdge - Golang](https://tutorialedge.net/course/golang/)
**[⬆ back to top](#contents)**
### Tutorials
* [50 Shades of Go](http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - Traps, Gotchas, and Common Mistakes for New Golang Devs.
@ -2861,3 +3038,5 @@ _**Unofficial** set of patterns for structuring projects._
* [Working with Go](https://github.com/mkaz/working-with-go) - Intro to go for experienced programmers.
* [Your basic Go](http://yourbasic.org/golang) - Huge collection of tutorials and how to's.
* [Learning Go by examples](https://dev.to/aurelievache/learning-go-by-examples-introduction-448n) - Serie of article in order to learn Golang language by concrete applications as example
**[⬆ back to top](#contents)**